دسته‌بندی نشده

آموزش BASCOM AVR – بسکام – جلسه چهاردهم

خیلی خب 🌟
حالا می‌ریم سراغ جلسه چهاردهم و این بار هم مفصل و کامل می‌نویسم تا شبیه یک فصل آموزشی باشه.


📘 آموزش BASCOM AVR – بسکام – جلسه چهاردهم

 

پروژه کنترل دما هوشمند (Smart Temperature Control)


۱. مقدمه

در جلسه یازدهم یاد گرفتیم چطور دما را با سنسور LM35 بخوانیم و روی LCD نمایش دهیم. حالا می‌خواهیم یک پروژه پیشرفته‌تر بسازیم: کنترل دما هوشمند. در این پروژه اگر دما از حد مشخصی بالاتر رفت، یک فن یا رله روشن می‌شود و وقتی دما پایین آمد، خاموش می‌شود. این پروژه ترکیبی از مباحث قبلی است:

  • ADC برای خواندن دما
  • LCD کاراکتری برای نمایش دما
  • رله یا ترانزیستور برای کنترل بار
  • شرط‌ها برای تصمیم‌گیری

۲. اجزای مورد نیاز

  • میکروکنترلر ATmega32
  • سنسور LM35
  • LCD کاراکتری ۲×۱۶
  • رله ۵ ولت یا ترانزیستور برای کنترل فن/هیتر
  • مقاومت و سیم‌های اتصال

۳. الگوریتم کار

  1. دما توسط سنسور LM35 خوانده می‌شود.
  2. مقدار دما روی LCD نمایش داده می‌شود.
  3. اگر دما بیشتر از ۳۰ درجه شد، فن روشن می‌شود.
  4. اگر دما کمتر از ۳۰ درجه شد، فن خاموش می‌شود.
  5. می‌توان مقدار آستانه دما را با کی‌پد تغییر داد و در 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) کنار رله استفاده کنید.
  • می‌توانید هیسترزیس اضافه کنید (مثلاً فن وقتی دما بالای ۳۰ روشن شود و وقتی زیر ۲۸ خاموش شود) تا از روشن/خاموش شدن سریع جلوگیری شود.

۸. تمرین‌ها

  1. برنامه‌ای بنویسید که آستانه دما را با کی‌پد تغییر دهد و روی LCD نمایش دهد.
  2. یک سیستم دوحالته بسازید: اگر دما پایین بود، هیتر روشن شود؛ اگر بالا بود، فن روشن شود.
  3. مقدار آستانه را در EEPROM ذخیره کنید تا بعد از قطع برق باقی بماند.

نتیجه جلسه چهاردهم

در این جلسه یاد گرفتیم:

  • طراحی سیستم کنترل دما هوشمند با سنسور LM35.
  • استفاده از شرط‌ها برای کنترل فن یا هیتر.
  • پروژه پیشرفته تنظیم آستانه با کی‌پد و ذخیره در EEPROM.

🔹 جلسه پانزدهم: پروژه پایانی سیستم کنترل خانگی هوشمند با ترکیب LCD، کی‌پد، تایمر، وقفه، EEPROM، سنسور و رله.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *