درس 1

⚙️ کنترل دور موتور DC با AVR و درایور L298

در این درس یاد می‌گیریم چگونه با استفاده از میکروکنترلر ATmega16 و درایور L298 سرعت و جهت چرخش موتور DC را با PWM کنترل کنیم.


🎯 اهداف درس

  • آشنایی با PWM و مفهوم Duty Cycle
  • کنترل سرعت موتور DC با ATmega16
  • استفاده از درایور L298 برای کنترل جریان موتور
  • خواندن مقدار پتانسیومتر با ADC
پیشرفت آموزش — ۶۰٪

🔋 PWM چیست؟

مفهوم PWM

PWM یا Pulse Width Modulation یک موج مربعی است که بین ۰ و ۱ تغییر می‌کند.
با تغییر Duty Cycle — یعنی مدت زمان روشن بودن نسبت به کل دوره — می‌توان توان موتور را مدیریت کرد.


🔌 درایور L298

چرا از L298 استفاده می‌کنیم؟

در این پروژه با PWM در AVR، کنترل جهت و سرعت موتور و درایور L298 آشنا شدیم. این پروژه پایه بسیاری از سیستم‌های رباتیک و صنعتی است.


📐 شماتیک کلی پروژه

  • سه کلید برای راست‌گرد، چپ‌گرد و توقف
  • یک پتانسیومتر برای کنترل سرعت
  • خروجی PWM از پین OC2 → ورودی ENA در L298
  • تغذیه موتور ۱۲ ولت، تغذیه منطقی ۵ ولت

⚠️ نکته مهم


🧾 تنظیمات در CodeVision

  • خروجی‌ها: PC0, PC1 (جهت)، PD7 (PWM)
  • ورودی‌ها: PB0, PB1, PB2 (کلید‌ها), ADC0 (پتانسیومتر)
  • PWM: تایمر ۲ → خروجی OC2
  • ADC: حالت ۸ بیت → استفاده به‌عنوان سرعت موتور

💻 کد کامل پروژه


🧠 جمع‌بندی

در این پروژه با PWM در AVR، کنترل جهت و سرعت موتور و درایور L298 آشنا شدیم.
این پروژه پایه بسیاری از سیستم‌های رباتیک و صنعتی می‌باشد.

درس قبلی وجود ندارد
خانهپروفایلتماس