آموزش BASCOM AVR – بسکام – جلسه چهاردهم
خیلی خب 🌟
حالا میریم سراغ جلسه چهاردهم و این بار هم مفصل و کامل مینویسم تا شبیه یک فصل آموزشی باشه.
📘 آموزش BASCOM AVR – بسکام – جلسه چهاردهم
پروژه کنترل دما هوشمند (Smart Temperature Control)
۱. مقدمه
در جلسه یازدهم یاد گرفتیم چطور دما را با سنسور LM35 بخوانیم و روی LCD نمایش دهیم. حالا میخواهیم یک پروژه پیشرفتهتر بسازیم: کنترل دما هوشمند. در این پروژه اگر دما از حد مشخصی بالاتر رفت، یک فن یا رله روشن میشود و وقتی دما پایین آمد، خاموش میشود. این پروژه ترکیبی از مباحث قبلی است:
- ADC برای خواندن دما
- LCD کاراکتری برای نمایش دما
- رله یا ترانزیستور برای کنترل بار
- شرطها برای تصمیمگیری
۲. اجزای مورد نیاز
- میکروکنترلر ATmega32
- سنسور LM35
- LCD کاراکتری ۲×۱۶
- رله ۵ ولت یا ترانزیستور برای کنترل فن/هیتر
- مقاومت و سیمهای اتصال
۳. الگوریتم کار
- دما توسط سنسور LM35 خوانده میشود.
- مقدار دما روی LCD نمایش داده میشود.
- اگر دما بیشتر از ۳۰ درجه شد، فن روشن میشود.
- اگر دما کمتر از ۳۰ درجه شد، فن خاموش میشود.
- میتوان مقدار آستانه دما را با کیپد تغییر داد و در EEPROM ذخیره کرد.
۴. کدنویسی در BASCOM
کد پایه:
' پروژه کنترل دما هوشمند
$regfile = "m32def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Value As Word
Dim Temp As Single
Dim Threshold As Byte
Threshold = 30
Do
Value = Getadc(0)
Temp = Value * 5 / 1024 * 100
Locate 1 , 1
Lcd "Temp=" ; Temp ; "C"
If Temp > Threshold Then
Set PORTA.0
Locate 2 , 1
Lcd "Fan=ON "
Else
Reset PORTA.0
Locate 2 , 1
Lcd "Fan=OFF"
End If
Wait 1
Loop
End
۵. توضیح خطبهخط کد
Threshold = 30→ آستانه دما روی ۳۰ درجه تنظیم شده است.Getadc(0)→ خواندن مقدار دما از کانال ADC0.- تبدیل مقدار به دما:
(Value × 5 ÷ 1024) × 100. - اگر دما بیشتر از آستانه باشد، فن روشن میشود.
- اگر کمتر باشد، فن خاموش میشود.
۶. پروژه پیشرفته: تنظیم آستانه با کیپد
میتوان مقدار آستانه دما را با کیپد وارد کرد و در EEPROM ذخیره کرد.
کد:
Dim InputVal As Byte
' خواندن آستانه از EEPROM
Readeeprom Threshold , 0
Do
InputVal = Getkbd()
If InputVal <> 0 Then
Threshold = InputVal
Writeeeprom Threshold , 0
End If
Loop
End
۷. نکات عملی
- برای کنترل فن یا هیتر باید از رله یا ماسفت استفاده کنید؛ خروجی مستقیم میکرو توان کافی ندارد.
- برای جلوگیری از نویز، بهتر است از دیود هرزگرد (Flyback Diode) کنار رله استفاده کنید.
- میتوانید هیسترزیس اضافه کنید (مثلاً فن وقتی دما بالای ۳۰ روشن شود و وقتی زیر ۲۸ خاموش شود) تا از روشن/خاموش شدن سریع جلوگیری شود.
۸. تمرینها
- برنامهای بنویسید که آستانه دما را با کیپد تغییر دهد و روی LCD نمایش دهد.
- یک سیستم دوحالته بسازید: اگر دما پایین بود، هیتر روشن شود؛ اگر بالا بود، فن روشن شود.
- مقدار آستانه را در EEPROM ذخیره کنید تا بعد از قطع برق باقی بماند.
نتیجه جلسه چهاردهم
در این جلسه یاد گرفتیم:
- طراحی سیستم کنترل دما هوشمند با سنسور LM35.
- استفاده از شرطها برای کنترل فن یا هیتر.
- پروژه پیشرفته تنظیم آستانه با کیپد و ذخیره در EEPROM.
🔹 جلسه پانزدهم: پروژه پایانی سیستم کنترل خانگی هوشمند با ترکیب LCD، کیپد، تایمر، وقفه، EEPROM، سنسور و رله.