ساخت دماسنج و ترموستات دیجیتالی
در این بخش دانلود پروژه ساخت دماسنج و ترموستات دیجیتالی با آی سی LM35 و AVR, توسط تیم الکترونیک و برنامه نویسی الکترونیک ۹۸ برای شما علاقه مندان به پروژه های میکروکنترلر AVR آماده شده است. در این پروژه با استفاده از سنسور دمای LM35 از دمای محیط و یا یک جسم خاص نمونه برداری می شود و سپس بعد از اندازه گیری دما توسط میکروکنترلر ATmega32 با توجه به داده های دریافتی از سنسور دمای LM35, میزان دما بر روی یک ال سی دی کارکتری 2 در 16 نمایش داده می شود.از قابلیت های ویژه این مدار قابلیت کنترل انواع وسایل برقی نسبت به دمای محیط می باشد که می توان از این قابلیت به نام ترموستات دیجیتالی نام برد.
نقشه شماتیک پروژه ساخت دماسنج و ترموستات دیجیتالی
در طراحی مدار پروژه از دو کلید به نام های UP و DOWN استفاده شده است که با فشار دادن هریک از کلید ها می توانید وارد منوی تنظیمات دمای بالا و یا دمای پایین شوید, سپس می توانید با چرخاندن پتانسیومتر RV1 عدد مورد نظرتان را برای دمای بالا و یا دمای پایین تعیین نمائید. به این ترتیب در صورتی که دمای محیط بین بازه تعیین شده شما, یا همان دمای بالا و دمای پایین قرار داشته باشد رله RLY توسط میکروکنترلر AVR فعال می شود, همچنین با خارج شدن دمای محیط از بازه تعیین شده رله RLY توسط میکروکنترلر AVR غیر فعال می شود. در ادامه به تشریح عملکرد سنسور دمای LM35 می پردازیم.
راه اندازی سنسور دمای LM35
اگر می خواهید دما را توسط سنسور LM35 اندازه گیری کنید, باید به چگونگی اتصال آن به منبع تغذیه توجه کنید, در غیر اینصورت حسگر شما صدمه می بیند. شکل زیر ترتیب پایه های حسگر LM35DZ را نشان می دهد.
سنسور LM35 توانایی اندازه گیری دمای بین 2 تا 150 درجه سانتی گراد را دارد و به ازای هر درجه افزایش دما, 10 میلی ولت افزایش ولتاژ در خروجی خود نشان می دهد. از آنجا که مبدل آنالوگ به دیجیتال میکروکنترلر ATmega32 ده بیتی است و ولتاژ بین صفر تا 5 ولت, به 1024 بخش (از صفر تا 1023) تقسیم می شود. هر 10 میلی ولت در آن معادل 2.046 واحد است, به عبارت دیگر اگر عدد خروجی مبدل آنالوگ به دیجیتال را بر 2.046 واحد است, به عبارت دیگر اگر عدد خروجی مبدل آنالوگ به دیجیتال را بر 2.046 تقسیم کنید, دمای پیرامون سنسور بر حسب سانتی گراد به دست می آورید.
توجه : مقدار دمای به دست آمده , دو درجه کمتر از مقدار واقعی است, چراکه LM35DZ دمای بین 2 تا 150 درجه سانتی گراد را اندازه گیری می کند. اگر دما 2 درجه سانتی گراد باشد, ولتاژ خروجی آن صفر خواهد بود, بنابراین پس از محاسبه دما به روشی که گفته شد, اگر از سنسور دمای LM35DZ برای اندازه گیری دما استفاده کرده اید, دو واحد به آن بیفزایید تا دمای واقعی به دست آید.
برنامه میکروکنترلر در محیط نرم افزار Bascom AVR
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
$regfile = "M32def.dat" $crystal = 8000000 Config Adc = Single , Prescaler = Auto Start Adc Config Lcdpin = Pin , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = Pinb.7 , Rs = Pinb.2 , E = Pinb.3 Config Lcd = 16 * 2 Config Portd = Input Config Portc = Output Dim Din As Word Dim Dama As Single Dim Tmax As Single Dim Tmin As Single Cursor Off St1: Cls Waitms 150 Do Din = Getadc(7) Dama = Din / 2.04 Locate 1 , 1 Lcd "Temp =" ; Fusing(dama , "#.##") ; " C " Locate 2 , 1 Lcd "T-ON:" ; Fusing(tmin , "#.##") ; "_" ; Fusing(tmax , "#.##") If Dama >= Tmin And Dama <= Tmax Then Set Portc.7 Else Reset Portc.7 End If If Pind.7 = 1 Then Goto Tmax If Pind.6 = 1 Then Goto Tmin Loop Tmin: Cls Locate 1 , 1 Lcd "MIN Temperature?" Waitms 150 Tmin2: Do Din = Getadc(0) Tmin = Din / 10.23 Locate 2 , 1 If Tmin <= Tmax Then Lcd Fusing(tmin , "#.##") ; " C " Else Lcd "ERROR: TMIN>TMAX" Goto Tmin2 End If If Pind.7 = 1 Then Goto Tmax If Pind.6 = 1 Then Goto St1 Loop Tmax: Cls Locate 1 , 1 Lcd "MAX Temperature?" Waitms 150 Tmax2: Do Din = Getadc(0) Tmax = Din / 10.23 Locate 2 , 1 If Tmax >= Tmin Then Lcd Fusing(tmax , "#.##") ; " C " Else Lcd "ERROR: TMAX<TMIN" Goto Tmax2 End If If Pind.7 = 1 Then Goto St1 If Pind.6 = 1 Then Goto Tmin Loop End |
سلام ببخشید هنگام تست مدار LCD کارکتر های مربع مربعی نشان می دهد میخواستم ببینم مشکل از کجاست. و اشکال نداره بجای BC107 از TIP 41 استفاده کنیم
سلام دوست عزیز
این مشکل می تواند به علت عدم اتصال صحیح نمایشگر به میکروکنترلر و یا عدم پروگرام کردن صحیح میکروکنترلر باشد.
برای استفاده از ترانزیستور مشابه، لطفا دیتاشیت ترانزیستور مذکور را از لحاظ مشخصات فنی با ترانزیستور BC107 مقایسه فرمایید و در صورت مشابه بودن مشخصات فنی می توانید استفاده کنید.
سلام ببخشید این پروژه واقعا عملی هست؟
برنامه اشکال داره پروگرام نمیشه
با سلام و احترام
بله پروژه عملی است، برای ویرایش و کامپایل کردن برنامه لطفا از ورژن قدیمی بسکام که در سایت الکترونیک98 قرار داده شده است استفاده کنید.
Error369را میده یکی سطر ۳۸ و عبارت Tmin
و دیگری همان Error و سطر ۶۱ و عبارت Tmax چطور حل کنم
از کدام ورژن نرم افزار بسکام برای کامپایل کردن استفاده می کنید؟
سلام وقت بخیر
سوال اول : در شماتیک نقشه مدار پایه 30 و 32 ای سی به مثبت 5 ولت نشان داده شده ولی پایه منفی مشخص نشده ایا پایه 31 به منفی متصل شود ؟
سوال دوم : در شماتیک ای سی پایه 10 مثبت و پایه 11 منفی هست ایا متصل کنم ؟
در شماتیک نقشه مدار (LCD ) پای های 3 به منفی مشخص و پایه 1 و 5 به همدیگر متصل و پایه 2 به مثبت 5 ولت نشان داده شده
سوال سوم : برای تنظیم نور LCD مگر نباید از پتانسیومتر استفاده کرد
و در شماتیک LCD پایه 1 و 5 و 16 به همدیگر (منفی )
پایه 15 و 2 به همدیگر ( مثبت 5 ولت )
متصل و نشان داده شده
لطفا راهنمایی کنید
با تشکر
با سلام و احترام
1- بله پایه 31 یعنی GND به منفی متصل می شود.
2- پایه های تغذیه میکروکنترلر باید به یک منبع تغذیه 5 ولتی متصل شوند. پایه GND به منفی و پایه VCC به مثبت تغذیه.
3- در نمایشگر پایه های 1 و 3 و 5 به منفی تغذیه متصل می شوند. همچنین استفاده از پتانسیومتر اختیاری است، اگر قصد کنترل کنتراست نمایشگر را دارید می توانید از یک پتانسیومتر در مسیر پایه سوم نمایشگر استفاده کنید.
همچنین لازم به ذکر است در LCD کاراکتری پایه های 15 و 16 مربوط به پلاریته مثبت و منفی چراغ پس زمینه نمایشگر می باشد که می توانید توسط یک مقاومت 220 اهمی آنرا به منبع تغذیه 5v متصل کنید.