اطلاعیه

Collapse
No announcement yet.

ساعت و دما با سون سگمنت با باتری بک پ

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

    #16
    پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

    میشه زخمت کد نویسی بسکامشو بکشی
    ممنونت میشم

    دیدگاه


      #17
      پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

      من بسکام رو خیلی
      دست و پا شکسته بلدم
      ولی سعی می کنم
      انشا الله که بتونم

      دیدگاه


        #18
        پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

        خدا خیرت بده :agree:

        دیدگاه


          #19
          پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

          خب
          من یکمی
          اطلاعات کسب کردم
          شروع کن ببینم چی کار می کنی
          این مدار و نقشه رو آقای حامد رحیمی گذاشتند
          خیلی آسون هست



          Dim A As Word
          Dim B As Word
          Dim C As Single
          Dim D As Byte

          D = 1
          Start Adc

          Cursor Off
          Cls


          Do

          A = Getadc(3)
          B = Getadc(4)
          C = A - B
          C = C / 4
          Locate 1 , 1
          Lcd "temp =" ; C ; Chr(0) ; "c "
          Locate 1 , 16
          Lcd Chr(d)
          Waitms 500
          Incr D
          If D > 6 Then D = 1
          Print "temp: " ; C

          Loop

          End

          نمایش دمای +و منفی رو هم نشون میده خودمم هم میدونم جملم درست نیست
          یعنی این که هم مثبت نشون میده هم منفی اگه سنسورو بزاری تو فریزر میره منفی
          ببین طریقه وصل کردن پایه هارو به adc میکرو از دیتا شیت lm35 بردار اون قسمت که دو تا دیود و یدونه مقاومت 10 کیلو داره ها شماتیک کشیده تو فایل دیتاشیت lm35 بخونی متوجه می شی چه خبره
          توضیحات اینکه ولتاژ رو سعی کن بیشتر از 5 ولت بدی
          بعدش سعی کن که تو دوتا چایه خروجی خازن بزاری با زمین لا اقل 104 واسه اینکه عدد رو ال سی دی زیاد جابه جا نشه
          (نویز نیفته رو مدارت )
          بعدش اون مقاومت 1 کیلو ابتکار خودم بود تو دمای منفی 2 تا مثبت 2 درجه قاطی میکرد درستش کردم
          خروجی ها یکی به ای دی سی 3 ئ یکی به 4 میره
          adc 3 به مثبت خروجی
          adc 4 به منفی خروجی
          اگه عددت قاطی پاتی بود جای دو تا + و منفی رو عوض کن من همین مدارو 100 جا تست کردم درسته ولی الان دقیقا این دوتا پایه یادم نیست چی به چیه

          دیدگاه


            #20
            پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

            اما ادامه بحث
            نگا کن پس متوجه شدی که این سنسورخروجی آنالوگ داره
            یعنی هر درجه افزایش 1 صدم ولت افزایش
            ما برای فهموندن این به آی سی از adc استفاده می کنیم
            در واقع ما یه میلی ولتمتر می سازیم
            اصلا همانطور که گفتیم lm35 اطلاعات رو به صورت آنالوگ به ما می ده
            آیسی دیجیتال می فهمه
            پس ما باید آنالوگ رو به دیجیتال تبدیل کنیم
            به کلمه adc توجه کن
            analog to digital converter
            یعنی مبدل آنالوگ به دیجیتال
            خب adc یه ولتاژ مرجعی داره
            ولتاژ رفرنس
            که می تونه برابر ولتاژ پایه های aref در میکرو اعمال بشه
            راحت بگم adc رو روشن می کنه
            البته یه gnd هم داره که باید اون هم به زمین وصل شه
            آی سی می آد ولتاژ وردی به پایه تعریف شده رو می گیره و با ولتاژ مرجع مقایسه می کنه
            مثلا تصور کن من به پایه aref که تو میکرو هست 5 ولت دادم
            و دمای محیط 25 درجه هست
            در نتیجه سنسور 25 صدم ولت خروجی می ده
            حالا adc می آد این رو می خونه و مثلا عدد 50 رو بر می گردونه
            ما این عدد رو ضرب در 5/1024 می کنی0.0048828125 (این یه فرمول هست و 5 هم ولتاژ مرجع هست و 1024 هم ماگزیمم عدد adc )
            حاصل هر چی شد ولتاژ سر پایه ماست
            خب مسلما جواب باید 25 صدم بشه
            که ما اون رو ضرب در 100 می کنیم
            و به عنوان دما رو ال سی دی نمایش می دیم

            دیدگاه


              #21
              پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

              ممنونم
              مرسی
              دارم روش کار میکنم با ال سی دی راش بیندازم؟

              فایلی که من دوست دارم روش کار کنم
              رمز : mobah
              http://www.4shared.com/zip/Cx2df54-/Bahman_Time-ds1307.html
              ال سی دی خوبه ولی من سون سگمنت میخوام؟
              پایه 23 از پورت C خالیه شاید بشه ازش استفاده کرد
              یه نگاه بینداز

              دیدگاه


                #22
                پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

                اره نگا کردم
                خوبه

                دیدگاه


                  #23
                  پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

                  کاری که گفتی انجام دادم
                  دما رو 13 نمایش مدیه....ال ام رو 25.0 هست
                  -------------
                  برای نمایش درست چکار کنم؟
                  برای نمایش در سون سگمنت چکار کنم؟

                  دیدگاه


                    #24
                    پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

                    خب خدا رو شکر
                    خسته نباشی داداش :applause: :applause:
                    هنوز کارای زیادی مونده
                    خب این عدد مسلما غیر واقعی هست
                    شما بیا 13 رو در1.923 ضرب کن تا عدد 25 رو در خروجی ببینی
                    حالا دما رو زیاد و کم کن ببین که آیا همواره عدد درست رو نشون می ده یا ته
                    اگه درست بود مرحله اول تمومه
                    مرحله دوم
                    adc میکرو کلا با سنسور lm35 مشکل داره
                    از این رو به خاطر (نویز و اینجور مسائل ) دائما عدد تغییر می کنه
                    مثلا اعدادی رو که این سنسور در یه اتاق با دمای 25 درجه نشون می ده روی ال سی دی رو اینجا برات می نویسم
                    25 24 28 24 28 25 23 28 27 27 25 25 23 24 25
                    خب ما 15 عدد رو از adc خوندیم و روی ال سی دی نمایش دادیم
                    یعنی اعداد بالا به سرعت روی ال سی دی نمایش داده می شه
                    و چون خیلی متفاوته باعث نارضایتی کاربر می شه
                    به ابن پدیده اصتلاحا لرزش می گن
                    خب برای رفع این مشکل می آیم 15 دفعه نمونه برداری مون رو با هم جمع می کنیم
                    اونوقت عدد بدست اومده رو تقسیم بر 15 می کنیم (میانگین می گیریم)
                    مثلا در مثال بالا میانگین اعداد25.5 هست که فقط نیم درجه با دمای اتاق فاصله دارد و این قابل قبول هست
                    از طرفی چو عمل 15 دفعه نمونه برداری در زمان زیادی صورت می گیره (حدود 5 ثانیه ) این عدد هر 5 ثانیه عوض می شه
                    که باعث می شه تغییرات خیلی زیاد نباشه و عمل دماسنجی بسیار زیبا انجام بشه
                    مرحله سوم
                    سون سگمنت
                    خب شما که اون تاریخ رو روی سون سگمنت نمایش دادی (تو پروتئوس ) اینم مثل همون هست
                    فقط مواظب باش وقتی یه میانگین گرفتی تازمانی که میانگین بعدی رو محاسبه می کنی عدد قبلی رو پاک نکنی
                    اینجوری هر عدد 5 ثانیه نمایش داده می شه

                    دیدگاه


                      #25
                      پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

                      امیدوارم تعطیلات بهتون خوش گذشته باشه. :wow:
                      ازاین که دیر امدم ببخشید.
                      زمانی که دما رو کم یا زیاد میکنم دما به نسبت رو ال سی دی تغییر میکنه و لی
                      شما بیا 13 رو در1.923 ضرب کن تا عدد 25 رو در خروجی ببینی
                      این ضریب رو چطوری اعمال کنم

                      این موضوع که حل بشه یه مسئله هم میمونه اونم اینه که من یک پورت بیشتر خالی ندارم اونم pc0/adc0 هستش؟

                      از اینکه با حوصله بهم یاد میدی ممنونتم.

                      دیدگاه


                        #26
                        پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

                        امیدوارم تعطیلات بهتون خوش گذشته باشه
                        ممنون
                        من هم همین آرزو رو دارم
                        این ضریب رو چطوری اعمال کنم
                        A = Getadc(3)
                        B = Getadc(4)
                        C = A - B
                        C = C / 4
                        خب تا اینجای برنامه که معلومه
                        ما اومدیم دو عدد رو خوندیم و داخل c ریختیم
                        خب می دونیم که c عددی است که نمایش داده می شه
                        پس باید c رو ضرب در 1.923 کنیم
                        پس برنامه رو به این صورت می نویسیم که

                        A = Getadc(3)
                        B = Getadc(4)
                        C = A - B
                        C = C / 4
                        c=c*1.923
                        و بعد هم که c رو نمایش می دیم
                        در ضمن برای میانگین گیری هم اگر مشکلی داری بگو
                        این موضوع که حل بشه یه مسئله هم میمونه اونم اینه که من یک پورت بیشتر خالی ندارم اونم pc0/adc0 هستش؟
                        خب خیلی بد شد
                        چون در مورد زبان c اگر شما از adc استفاده کنی کل portc رو از دست می دی و از هیچ پایه ایش نمی تونی به عنوان i/o استفاده کنی
                        در مورد بسکام نمی دونم
                        خب اگه بشه خیلی عالی می شه
                        اونطوری که در پروتئوس معلومه فک کنم بشه
                        ولی باید مدارت رو به صورت زیر تغییر بدی
                        شما باید

                        از اون قسمتی که علامت + داره به اون پرتت وصل کنی و عدد adc رو بخونی
                        ولی برنامه به شکل زیر تغییر می کنه


                        A = Getadc(0)
                        a=a*x
                        این x عدد نا معلومی هست که باید به دستش بیاریم
                        برای این کار برو و با این روش ببین آیس چه عددی رو نشون می ده
                        تا بعدا به x یه مقدار بدیم (مثل همون 1.923 ) تا عدد صحیح رو نشون بده
                        ولی یادت باشه تو برنامه اون خط رو ننویسی ها
                        a=a*x
                        اون رو بعدا باید بنویسی

                        دیدگاه


                          #27
                          پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

                          مرسی این قسمتش راه افتاد درسته باکمی تغییرات عددی میشه به عدد درست دست پیدا کرد.
                          کد:
                          $regfile = "m16def.dat"
                          $crystal = 1000000
                          '*******************************************************************************
                          Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1_
                             , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
                          Config Lcd = 16 * 2
                          '*******************************************************************************
                          Config Adc = Single , Prescaler = Auto
                          '*******************************************************************************
                          Dim A As Word
                          Dim B As Word
                          Dim C As Single
                          Dim D As Byte
                          
                          D = 1
                          Start Adc
                          
                          Cursor Off
                          Cls
                          
                          
                          Do
                          
                          A = Getadc(3)
                          B = Getadc(4)
                          C = A - B
                          C = C / 4
                          C = C * 1.961
                          Locate 1 , 1
                          Lcd "temp =" ; C ; Chr(0) ; "c  "
                          Locate 1 , 16
                          Lcd Chr(d)
                          Waitms 500
                          Incr D
                          If D > 6 Then D = 1
                          Print "temp: " ; C
                          
                          Loop
                          
                          End
                          از اون قسمتی که علامت + داره به اون پرتت وصل کنی و عدد adc رو بخونی
                          ولی برنامه به شکل زیر تغییر می کنه


                          A = Getadc(0)
                          a=a*x
                          این x عدد نا معلومی هست که باید به دستش بیاریم
                          برای این کار برو و با این روش ببین آیس چه عددی رو نشون می ده
                          تا بعدا به x یه مقدار بدیم (مثل همون 1.923 ) تا عدد صحیح رو نشون بده
                          ولی یادت باشه تو برنامه اون خط رو ننویسی ها
                          a=a*x
                          اون رو بعدا باید بنویسی

                          حالا من تغییراتی ابتدایی را وارد کردم و با یک سیم به پایه 40 همان
                          ADC0/40
                          ولی دما صفره کار نمیکنه
                          اینم کدشه
                          کد:
                          $regfile = "m16def.dat"
                          $crystal = 1000000
                          '*******************************************************************************
                          Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1_
                             , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
                          Config Lcd = 16 * 2
                          '*******************************************************************************
                          Config Adc = Single , Prescaler = Auto
                          '*******************************************************************************
                          Dim A As Word
                          Dim B As Word
                          Dim C As Single
                          Dim D As Byte
                          
                          D = 1
                          Start Adc
                          
                          Cursor Off
                          Cls
                          
                          
                          Do
                          
                          A = Getadc(0)
                          A = A * 1.923
                          Locate 1 , 1
                          Lcd "temp =" ; C ; Chr(0) ; "c  "
                          Locate 1 , 16
                          Lcd Chr(d)
                          Waitms 500
                          Incr D
                          If D > 6 Then D = 1
                          Print "temp: " ; C
                          
                          Loop
                          
                          End
                          این ابتدایه
                          A = Getadc(0)
                          A = A * 1.923
                          فکر کنم درست نیست.
                          میگم اگر به ال ام35 به پایه یک +5 و به پایه سه-5 و پایه دوم به پایه 40 وصل کنیم چه میشود ساده باشه. مثل تمام شماتیک هایی که دیدیم.
                          اینطور بهتر نیست.

                          دیدگاه


                            #28
                            پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

                            میگم اگر به ال ام35 به پایه یک +5 و به پایه سه-5 و پایه دوم به پایه 40 وصل کنیم چه میشود ساده باشه. مثل تمام شماتیک هایی که دیدیم.
                            اینطور بهتر نیست.
                            اما من بار ها این روشی رو که داری می گی امتحان کردم
                            نتیجش یه دما سنج پر از خطا و لرزش هست
                            این نقشه ای که می بینی هم خودم امتحان کردم
                            مشکلی نداره
                            خوب جواب می ده
                            حتی اگه از + بگیری نباید مشکلی داشته باشی
                            می گم شاید داری اشتباه می کنی
                            من داخل برنامه جدیدی که بهت دادم پایه دریافت کنند adc رو پایه اول پرت c گذاشتم
                            اما و برنامه قبلی پورت 5 بود
                            مطمئن هستی که سیم رو انتقال دادی ؟؟؟؟؟؟
                            منظورت از پایه 40 چیه
                            حالا من تغییراتی ابتدایی را وارد کردم و با یک سیم به پایه 40 همان
                            ADC0/40
                            پایه 40 در atm16/8/32 در هیچ کدوم adc نیس
                            یه بار دیگه اتصالات رو چک کن

                            دیدگاه


                              #29
                              پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

                              پایه40 در ATMEGA16
                              من الان با سیم + از سنسور به میکرو وصل کردم ولی کار نمیکنه؟

                              دیدگاه


                                #30
                                پاسخ : ساعت و دما با سون سگمنت با باتری بک پ

                                خیلی بد شد
                                نگا کن همون مدار معمولی رو ببند
                                راستی یه خواهش
                                اگه می تونی فایل library داخل پوشه نرم افزار پروتئوست رو برام بزاری لطف می کنی
                                من لایبرری خراب شده

                                دیدگاه

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