اطلاعیه

Collapse
No announcement yet.

مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

    ممنونم ازت :applause:ولی برنامه من مشکلش کجاست :eek:جایی خطا دارم :sad:
    { خلاف قوانین - پاک شد }

    دیدگاه


      #17
      پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

      برنامه من کارکرد؟
      شما اومدی مقدار رو خوندی بعد ضربدر 5 کردی بعد تقسیم بر 10 :-??
      چرا؟ :-/
      پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

      دیدگاه


        #18
        پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

        من یه برنامه از همین سایت گرفتم که این کارو کرده بود منم فکر کردم شاید درست تر باشه راستش ساعتای قبلموتقسیم به2میکردم نمیدونم یعنی این اشتباهه؟مال شمارو هنوز تست نکردم ولی حتما جواب میده استاد مایید خودمم دیدم مشکلی نداره :applause:تست میکنم راستی منavccروبه5وصل میکنم اگه رفرنسو داخلی بذارمavccرو چه کنم و اصلا تو دقتش فرقی داره؟ ضمناممنون از وقتی که در اختیار من گداشتید
        { خلاف قوانین - پاک شد }

        دیدگاه


          #19
          پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

          نوشته اصلی توسط r-el
          من یه برنامه از همین سایت گرفتم که این کارو کرده بود منم فکر کردم شاید درست تر باشه راستش ساعتای قبلموتقسیم به2میکردم نمیدونم یعنی این اشتباهه؟مال شمارو هنوز تست نکردم ولی حتما جواب میده استاد مایید خودمم دیدم مشکلی نداره :applause:تست میکنم راستی منavccروبه5وصل میکنم اگه رفرنسو داخلی بذارمavccرو چه کنم و اصلا تو دقتش فرقی داره؟ ضمناممنون از وقتی که در اختیار من گداشتید
          AVCC در همه حالات باید به 5 ولت وصل باشه
          اگر رفرنس داخلی هم تنظیم کنید دقت تغییری نمیکنه
          اگر دقت براتون مهمه هم از تکنیکهای کاهش نویز استفاده کنید و هم از سنسورهایی با دقت بالاتر
          پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

          دیدگاه


            #20
            پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

            ممنون ولی منظورتون از تکنیکهای کاهش نویز چیه و اگه منظورتون idelو...است چطوریه
            راستی شما باds1307کار میکنید؟من ساعتام خیلی هنگ میکنه البته فقطdsرو نمیخونه و بقیه کارا رو درست انجام میده من فکر کردم مشکل فقطdsهست نه چیز دیگه
            البته این برا بعضی ساعتاس که هر کاری کردم درست نمیشه و بعد چندبار خاموشو روشن دیگهdsرونمیخونه :angry: :angry: :angry:اینم برنامه
            '-------------------------------------------------------------------------------
            $regfile = "m8def.dat"
            $crystal = 1000000

            $lib "mcsbyte.lbx" ' for smaller code
            $lib "ds1307clock.lib"

            '$framesize = 16
            '$hwstack = 24
            '$swstack = 16 ' modified lib

            Config Sda = Portb.6
            Config Scl = Portb.7

            Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
            Const Ds1307r = &HD1

            Config Portd = Output

            Config Portb.0 = Output

            Config Pinb.1 = Input
            Config Pinb.2 = Input
            Config Pinb.3 = Input
            Config Pinb.4 = Input

            Config Portc.0 = Output
            Config Portc.1 = Output
            Config Portc.2 = Output
            Config Portc.3 = Output
            Config Portc.4 = Output

            'Enable Interrupts

            Config Clock = User

            Config Watchdog = 2048

            Config Adc = Single , Prescaler = Auto ', Reference = Internal_2.56
            'Enable Adc

            Dim Weekday As Byte

            'Time$ = "1859" ' to watch the day changing value
            'Date$ = "89-01-06"
            'i2cstart
            Dim S As Byte , M As Byte , H As Word , Ma As Word , Mlb As Byte , Hl1 As Word
            Dim A As Byte , B As Byte , Mha As Word , Mla As Word , Lm As Word , Sl As Byte
            Dim Mh As Byte , Yh As Byte , Yl As Byte , Monh As Byte , Monl As Byte , Jumptemp As Byte
            Dim Ml As Byte , Dh As Byte , Dl As Byte , Jump As Word , Jump1 As Word
            Dim Hh As Byte , Of As Byte , R As Byte , Yyh As Byte , Yyl As Byte , Day1 As Word
            Dim Hl As Byte , Hh1 As Word , L As Word , L1 As Byte , Lm1 As Word , Da As Word
            Dim Moh As Byte , Mol As Byte , Y As Byte , Monha As Word , Monla As Word , Mona As Word
            Dim Dha As Word , Dla As Word , Aa As Byte , T As Byte , C As Byte , Gettemp As Byte
            Dim Ad2 As Byte , S1 As Byte , W As Word , Sh As Byte , Sa As Byte , Sla As Byte , Sm As Byte , Sha As Byte
            Dim Ad1 As Word
            Dim Ad As Word , Ad3 As Byte

            _set Alias Pinb.4
            Down Alias Pinb.3
            Up Alias Pinb.2
            Ok Alias Pinb.1
            Dot Alias Portc.4
            Slash Alias Portd.7
            Dama Alias Portb.0
            A1 Alias Portc.0
            A2 Alias Portc.1
            A3 Alias Portc.2
            A4 Alias Portc.3

            '*********************************** start ***********************************
            Hom:
            Start Watchdog
            Stop Adc
            Reset Slash
            Reset Dama

            Jump1 = 0
            ' 13 november 2002
            Do

            Gosub Getdatetime
            Gosub Getdatetime
            T = _min + _hour
            T = T + _sec
            If T = 0 Then Incr _day

            If _month < 7 Then

            If _day = 32 Then
            _day = 1
            Incr _month
            Gosub Setdating
            End If

            End If

            If _month > 6 And _month < 12 Then

            If _day = 31 Then
            _day = 1
            Incr _month
            Gosub Setdating
            End If

            End If

            If _month = 12 Then

            If _year = 91 Or _year = 95 Or _year = 99 Then

            If _day = 31 Then
            _day = 1
            Incr _month
            Gosub Setdating
            End If

            Else

            If _day = 30 Then
            _day = 1
            Incr _month
            Gosub Setdating
            End If

            End If

            End If

            If _month = 13 Then
            _month = 1
            Incr _year
            Gosub Setdating
            End If

            Dh = _day / 10
            Dl = _day Mod 10
            Monh = _month / 10
            Monl = _month Mod 10
            Mh = _min / 10
            Ml = _min Mod 10
            Hh = _hour / 10
            Hl = _hour Mod 10
            S1 = _sec Mod 10

            Portd = Lookup(hh , Test)
            Set A1
            Waitms 4
            Reset A1

            Portd = Lookup(hl , Test)
            Set A2
            Waitms 4
            Reset A2

            Portd = Lookup(mh , Test)
            Set A3
            Waitms 4
            Reset A3

            Portd = Lookup(ml , Test)
            Set A4
            Waitms 4
            Reset A4

            If S1 = 1 Or S1 = 3 Or S1 = 5 Or S1 = 7 Or S1 = 9 Then
            Set Dot
            Else
            Reset Dot
            End If

            Incr Jump1
            If Ok = 0 Then
            While Ok = 0
            Wend
            Waitms 20
            Goto Settime
            End If

            If _set = 0 Then
            While _set = 0
            Wend
            Waitms 20
            Goto Setdate
            End If

            If Jump1 = 1800 Then Goto Dat

            Reset Watchdog

            Loop
            '************************************* dat ***********************************
            Dat:

            Jump1 = 0
            Set Slash
            Reset Dot

            Do

            'Incr Jump1

            Dh = _day / 10
            Dl = _day Mod 10
            Monh = _month / 10
            Monl = _month Mod 10

            Portd = Lookup(monh , Test1)
            Set A1
            Waitms 2
            Reset A1

            Portd = Lookup(monl , Test1)
            Set A2
            Waitms 2
            Reset A2

            Portd = Lookup(dh , Test1)
            Set A3
            Waitms 2
            Reset A3

            Portd = Lookup(dl , Test1)
            Set A4
            Waitms 2
            Reset A4

            '(
            If Jump1 = 50 Then

            Incr Jumptemp
            Gosub Gettemp
            If Jumptemp = 5 Then Goto Temp

            End If
            &#039
            Reset Watchdog
            Wait 1
            Reset Watchdog
            Wait 1
            Reset Watchdog
            Wait 1
            Reset Watchdog
            Wait 1
            Reset Watchdog

            Goto Hom

            Loop
            واچ داگ هم کاری نمیکنه گفتم شاید زیادdsرو میخونم،waitهم گذاشتم فایده نداشت و باز هنگ میکنه :cry:نمیفهممممممممممم
            { خلاف قوانین - پاک شد }

            دیدگاه


              #21
              پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

              حالا چطور دقت دمارو بالا ببرم و دوم اینکهicساعت چیر دیگه سراغ ندارید که بعض dsباشه؟من خسارت زیادی دادم :cry2:
              { خلاف قوانین - پاک شد }

              دیدگاه


                #22
                پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

                نوشته اصلی توسط r-el
                حالا چطور دقت دمارو بالا ببرم و دوم اینکهicساعت چیر دیگه سراغ ندارید که بعض dsباشه؟من خسارت زیادی دادم :cry2:
                همین DS خیلی خوبه و هیچ مشکلی نداره
                نکته جالبی که توی برنامه شما به چشمم خورد این بود که ظاهرا شما تقویم رو خودتون محاسبه کردین (روز ماه و سال ..)
                نیاز به این کار نیست و خود DS همه رو با تشخیص سال کبیسه داره
                به هرحال دنبال جنس خوب باش و تکنیکهای کاهش نویز رو هم اعمال کن (توجه کن که DS به تغذیش حساسه و اشکال در تغذیه یعنی از دست دادن ساعت)
                تاپیکی در مورد همین تکنیکهای کاهش نویز در مدارات میکرو کنترلری هست (جزو تاپیکهای مهم هم هست) اون رو بخون و سعی کن مواردش رو تا جایی که میتونی رعایت کنی
                من با از DS توی تابلو روان استفاده میکنم خدا رو شاهد میگیرم الان حدود و شایدم بیشتر از 2 ساله که در محیط بیرون گرما و سرما یکسره و بدون خاموشی مگر به دلیل قطع برق(که اونم به ندرت پیش اومده) داره کار میکنه و حتی 30 ثانیه هم عقب جلو نیفتاده!
                پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                دیدگاه


                  #23
                  پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

                  یک خازن 330 میکروفارد 25 ولت در مدارت قرار بده تا عدد lm35 دقیقتر و ثابت بشه.

                  دیدگاه


                    #24
                    پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

                    منظورتون خازن از خروجی به زمینه؟اگه اون باشه که تو دیتاشیط نوشته1میکرو سری به یه مقاومت75اهمه
                    For best results in such cases,
                    a bypass capacitor from VIN to ground and a series R-C
                    damper such as 75W in series with 0.2 or 1 μF from output to
                    ground are often useful. These are shown in Figure 13,
                    Figure 14, and Figure 16
                    نمیدونم واقعا تاثیر داره؟یحرحال ممنون امتحان میکنم
                    { خلاف قوانین - پاک شد }

                    دیدگاه


                      #25
                      پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟


                      نکته جالبی که توی برنامه شما به چشمم خورد این بود که ظاهرا شما تقویم رو خودتون محاسبه کردین (روز ماه و سال ..)
                      نیاز به این کار نیست و خود DS همه رو با تشخیص سال کبیسه داره


                      راستش من یه بار گذاشتم به عهده حودش ولی ماههای 31روزه رو 30روزه عوض کرد و اخر هرماه یه بار تنظیمش میکردم که بعد از 2بار این برنامه رو نوشتم :redface:
                      راستی دوتا سوال دیگه اول اینکه اگه زیادDSروبخونیم تو برنامه،خطا میده و اشتباه کنه یا هنگ کنه؟و دوم اینکه روزای هقته رو چطور مشخص میکنه خوندم که رجیستر داره ولی نفهمیدم چطوری باش کلر کنم و روزای هفته رو چجوری مشحص میکنه البنه ببخشید من اینقد سوال میپرسما بهرحال از شما ممنونم برای راهنماییها
                      { خلاف قوانین - پاک شد }

                      دیدگاه


                        #26
                        پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

                        نوشته اصلی توسط r-el
                        نکته جالبی که توی برنامه شما به چشمم خورد این بود که ظاهرا شما تقویم رو خودتون محاسبه کردین (روز ماه و سال ..)
                        نیاز به این کار نیست و خود DS همه رو با تشخیص سال کبیسه داره


                        راستش من یه بار گذاشتم به عهده حودش ولی ماههای 31روزه رو 30روزه عوض کرد و اخر هرماه یه بار تنظیمش میکردم که بعد از 2بار این برنامه رو نوشتم :redface:
                        راستی دوتا سوال دیگه اول اینکه اگه زیادDSروبخونیم تو برنامه،خطا میده و اشتباه کنه یا هنگ کنه؟و دوم اینکه روزای هقته رو چطور مشخص میکنه خوندم که رجیستر داره ولی نفهمیدم چطوری باش کلر کنم و روزای هفته رو چجوری مشحص میکنه البنه ببخشید من اینقد سوال میپرسما بهرحال از شما ممنونم برای راهنماییها
                        خوب DS تاریخ رو میلادی حساب میکنه و احتمالا شما شمسی میخوای که باید از تابع تبدیل میلادی به شمسی استفاده کنید
                        نه زیاد خوندن مشکلی پیش نمیاره ولی حداقل سعی کن بینش یکم تاخیر ایجاد کنی
                        روز هفته رو DS نمیتونه خودش حساب کنه فقط میتونه یک شمارنده بین 1 تا 7 داشته باشه که ساعت 24 یکی به این شمارنده اضافه کنه اینطوری یعنی شما یک بار روز هفته رو تنظیم میکنی و DS براتون میشماره(خودش تشخیص نمیده چند شنبه ست)
                        پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                        دیدگاه


                          #27
                          پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

                          متوجهم ولی میدونید که چطور این شمارنده کار میکنه و میشه فعالش کردو ازش استفاده کرد
                          { خلاف قوانین - پاک شد }

                          دیدگاه


                            #28
                            پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

                            :wow: :wow: :wow:وای باورنکردنی بود :applause:خازن رو گذاشتم دمااز18درجه اومد رو12درجه و باورنکردنی بود ممنون ممنون علی جان
                            راستی امیرجان چطور این شمارنده کار میکنه و میشه فعالش کردو ازش استفاده کرد واسه روزای هفته رو میگم ممنون میشم راهنمایی کنی :nerd:
                            { خلاف قوانین - پاک شد }

                            دیدگاه


                              #29
                              پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

                              نوشته اصلی توسط r-el
                              :wow: :wow: :wow:وای باورنکردنی بود :applause:خازن رو گذاشتم دمااز18درجه اومد رو12درجه و باورنکردنی بود ممنون ممنون علی جان
                              راستی امیرجان چطور این شمارنده کار میکنه و میشه فعالش کردو ازش استفاده کرد واسه روزای هفته رو میگم ممنون میشم راهنمایی کنی :nerd:
                              خوش حالم که مشکلت حل شد.ولی چون چیزی درباره دقت نگفتی من فکر میکردم قبلا مشکلت حل شده بوده!
                              برای راه اندازی روز هفته کار خاصی نمیخواد بکنی فقط به weekday که در برنامت تعریف هم کردی یک مقدار زیر هفت بده و به زیر برنامه settime برو و از این به بعد مقدار این متغیر ساعت 24 افزایش پیدا میکنه(در زیر برنامه Getdatetime این متغیر مقدار جدید رو بخودش میگیره)
                              پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                              دیدگاه


                                #30
                                پاسخ : مشکل دقت هنگام کار با سنسور lm35؟؟؟؟

                                :applause:ممن.نم ازت حالا اگه من به این متغیر مقدار مثلا3بدم هربار که این ساعت برنامه رو از اول شروع میکنه و مثلا برق میره و میاد مقدارش 3میشه؟
                                یا باید برم داخل تنظیمات و اینطوری کنم
                                _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)

                                I2cstart ' Generate start code
                                I2cwbyte Ds1307w ' send address
                                I2cwbyte 4 ' starting address in 1307
                                I2cwbyte _day ' Send test to SECONDS
                                I2cwbyte _month ' MINUTES
                                I2cwbyte _year
                                I2cwbyte WEEKDAY ' Hours
                                I2cstop

                                Return
                                ایجوری خودش مقدار میگیره؟
                                { خلاف قوانین - پاک شد }

                                دیدگاه

                                لطفا صبر کنید...
                                X