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

آموزش BASCOM AVR – بسکام – جلسه هشتم

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


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

 

PWM و کنترل موتور / دیمر LED


۱. مقدمه

در جلسات قبل با تایمرها و وقفه‌ها آشنا شدیم. یکی از مهم‌ترین کاربردهای تایمرها تولید PWM است. PWM یا Pulse Width Modulation روشی است برای کنترل توان خروجی با تغییر نسبت زمان روشن بودن به زمان خاموش بودن یک سیگنال مربعی.

کاربردهای PWM:

  • کنترل سرعت موتورهای DC
  • کنترل شدت نور LED (دیمر)
  • تولید صدا یا موج آنالوگ با فیلتر

۲. مفهوم PWM

  • سیگنال PWM یک موج مربعی است.
  • Duty Cycle درصد زمان روشن بودن نسبت به کل دوره است.
  • مثال: اگر دوره ۱ میلی‌ثانیه باشد و ۰.۵ میلی‌ثانیه روشن باشد → Duty Cycle = 50%.
  • با تغییر Duty Cycle می‌توان توان متوسط را تغییر داد.

۳. تایمرها و PWM در AVR

  • تایمر۱ و تایمر۲ قابلیت تولید PWM دارند.
  • خروجی PWM روی پایه‌های خاصی ظاهر می‌شود:
    • OC1A، OC1B برای تایمر۱
    • OC2 برای تایمر۲

۴. کدنویسی در BASCOM

مثال: تولید PWM روی تایمر۱

' پروژه PWM برای کنترل LED
$regfile = "m32def.dat"
$crystal = 1000000

Config Timer1 = Pwm , Pwm = 8 , CompareA = Clear , Prescale = 64

Do
   Pwm1a = 128        ' Duty Cycle = 50% (128 از 255)
Loop
End

۵. توضیح خط‌به‌خط کد

  • Config Timer1 = Pwm → تایمر۱ به حالت PWM تنظیم می‌شود.
  • Pwm = 8 → رزولوشن ۸ بیتی (۰ تا ۲۵۵).
  • CompareA = Clear → حالت خروجی روی پایه OC1A.
  • Prescale = 64 → تقسیم کلاک برای تنظیم فرکانس PWM.
  • Pwm1a = 128 → مقدار Duty Cycle (نصف توان).

۶. پروژه عملی: دیمر LED

با تغییر مقدار Pwm1a می‌توان شدت نور LED را تغییر داد.

کد:

Dim I As Byte

Do
   For I = 0 To 255
      Pwm1a = I
      Waitms 10
   Next I
Loop
End

توضیح: شدت نور LED به آرامی زیاد و کم می‌شود (افکت Fade).


۷. پروژه عملی: کنترل سرعت موتور DC

  • موتور DC را با ترانزیستور یا ماسفت به پایه PWM وصل کنید.
  • با تغییر Duty Cycle سرعت موتور تغییر می‌کند.

کد:

Dim Speed As Byte

Do
   Speed = Getadc(0)        ' خواندن مقدار از پتانسیومتر
   Pwm1a = Speed            ' تنظیم Duty Cycle بر اساس ورودی
Loop
End

توضیح: با چرخاندن پتانسیومتر سرعت موتور تغییر می‌کند.


۸. نکات عملی

  • برای کنترل بارهای بزرگ (موتور یا لامپ) باید از ترانزیستور یا ماسفت استفاده کنید.
  • برای بارهای AC باید از رله یا مدارهای خاص استفاده شود.
  • فرکانس PWM باید متناسب با بار انتخاب شود (مثلاً برای LED چند کیلوهرتز، برای موتور چند صد هرتز).

۹. تمرین‌ها

  1. برنامه‌ای بنویسید که با فشار کلید Duty Cycle بین 25%، 50% و 75% تغییر کند.
  2. یک دیمر LED بسازید که شدت نور را با کی‌پد تنظیم کند.
  3. یک کنترل سرعت موتور بسازید که سرعت را روی LCD نمایش دهد.

نتیجه جلسه هشتم

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

  • مفهوم PWM و کاربرد آن.
  • نحوه تولید PWM با تایمر۱ در BASCOM.
  • پروژه‌های عملی دیمر LED و کنترل سرعت موتور.

🔹 جلسه نهم: کار با ارتباط سریال (UART) برای ارتباط میکرو با کامپیوتر یا ماژول‌های دیگر.

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

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