منو
09103690034

مدولاسیون پهنای پالس (PWM) با AVR

مدولاسیون پهنای پالس (PWM) با AVR

مدولاسیون پهنای پالس (PWM=Pulse Width Modulation) نسبتاً یک روش کلید زنی برای ارائه مقدار توان الکتریکی بین سطوح کاملاً روشن و کاملاً خاموش است. معمولاً، پالس دیجیتال دارای دوره زمانی روشن و خاموش یکسان است، اما در برخی از شرایط نیاز به پالس دیجیتال برای زمان روش/خاموش بیشتر/کمتر داریم. در روش PWM، ما پالس‌های دیجیتال را با مقدار نابرابر از حالات روشن و خاموش برای رسیدن به مقادیر آنی ولتاژ مورد نیاز استفاده می‌کنیم.

چرخه کاری چیست(duty cycle

چرخه کاری به صورت درصد مدت زمان ولتاژ بالا در پالس دیجیتال کامل تعریف می‌شود. چرخه کاری به صورت زیر محاسبه می‌شود:

اگر چرخه کاری برابر با 50% باشد، در این صورت برای مدت زمان نصف دوره زمانی کل پالس دیجیتال روشن باقی می‌ماند.

pwm 50% duty cycle

 

توجه کنید که چرخه کاری، عامل کاری و نرخ تکرار پالس پارامترهای موج‌های مستطیلی هستند و در مدارهای دیجیتال بسیار اهمیت دارند. چرخه کاری نسبت پهنای پالس به دوره سیگنال است که به صورت درصد بیان می‌شود. عامل کاری همان چرخه کاری است با این تفاوت که به صورت ده‌دهی بیان می‌شود، نه به صورت درصد. اگر چرخه کاری 50% باشد، عامل کاری 0.5 است. نرخ تکرار می‌گوید که قطار پالس‌ها چند وقت یک‌بار در ثانیه رخ می‌دهد و اغلب برای شرح برخی از شکل موج‌ها استفاده می‌شود.

pwm square wave

برای درک اصول کاری PWM، به مثال بالا نگاه کنید. اینجا یک موج مربعی با نسبت روشن و خاموش(صفر ویک) برابر به عنوان خروجی در دسترس است(شکل اول). اگر این شکل موج به ترمینال بیس ترانزیستور در پیکربندی امیتر مشترک داده شود، ترانزیستور برای دوره‌های برابر در حالت اشباع یا قطع هست، بنابراین، ولتاژ متوسط در کلکتور نصف ولتاژ تغذیه است. اگر نسبت قسمت روشن(یک) به قسمت خاموش (صفر)افزایش یابد آنگاه ولتاژ متوسط افزایش می‌یابد. و زمانی که نسبت قسمت روشن(یک) به قسمت خاموش(صفر) کاهش یابد، ولتاژ خروجی کاهش خواهد یافت.

خلاصه، مدولاتور پهنای پالس اساساً اسیلاتور (نوسان‌ساز) موج مربعی است که خروجی نسبت روشن/خاموش می‌تواند با ولتاژ خروجی تغییر یابد.

 

 

PWM و AVR

برای ایجاد مدولاسیون پهنای پالس، AVR شامل سخت‌افزار جدا است! با استفاده از این، CPU به سخت‌افزار دستور می‌دهد تا PWM با چرخه کاری معین تولید کند.

ATmega8 دارای 3 خروجی PWM، دو تا در کانتر/تایمر1 (16 بیتی) و یکی در کانتر/تایمر2 (8 بیتی) واقع شده است.کانتر/تایمر2 توانایی اجرای دو حالت را دارد، حالت مدولاسیون پهنای پالس سریع و حالت مدولاسیون پهنای پالس فاز اصلاح شده. هر یک از این حالت‌ها می‌تواند معکوس شود.همچنین توجه داشته باشید که سه روش وجود دارد که به وسیله آن می‌توان مدولاسیون پهنای پالس را از AVR TIMER 1 ایجاد کرد.

  • PWM سریع
  • PWM فاز و فرکانس اصلاح شده
  • PWM فاز اصلاح شده

Real world PWM signals from ATmega8

 

در ادامه کد ATmega8 ساده برای راه‌اندازی TIMER 1 برای 4 کیلوهرتز، 10 بیت، مدولاسیون پهنای پالس فاز اصلاح شده در کلاک 16 مگاهرتز وجود دارد.

#include 
int main(void)
{
   DDRB |= (1 << DDB1);
   // PB1 as output
   OCR1A = 0x01FF;
   // set PWM for 50% duty cycle at 10bit
   TCCR1A |= (1 << COM1A1);
   // set non-inverting mode
   TCCR1A |= (1 << WGM11) | (1 << WGM10);
   // set 10bit phase corrected PWM Mode
   TCCR1B |= (1 << CS11);
   // set prescaler to 8 and starts PWM
   while (1)
   {
   }
}

 

 

بله، دیدیم که مدولاسیون پهنای پالس می‌تواند از کانتر/تایمر شماره یک 16 بیتی یا کانتر/تایمر شماره دو 8 بیتی ایجاد شود. اینجا مثالی از کد حالت PWM سریع تایمر شماره دو هشت بیتی (8 کیلوهرتز) در کلاک 16 مگاهرتز آورده شده است:

#include 
int main(void)
{
   DDRB |= (1 << DDB3);
   // PB3 as output
   OCR2 = 128;
   // set PWM for 50% duty cycle
   TCCR2 |= (1 << COM21);
   // set non-inverting mode
   TCCR2 |= (1 << WGM21) | (1 << WGM20);
   // set fast PWM Mode
   TCCR2 |= (1 << CS21);
   // set prescaler to 8 and starts PWM
   while (1)
   {
   }
}

 

مطالب مرتبط
3 دقیقه

برد توسعه ATmega و پروگرامر

آقای نویسنده

برد توسعه ATmega و آداپتور (تبدیل کننده) برنامه یا پروگرامر بله، منبع تغذیه 5 ولت DC سازگار با برِدبُرد را در پست قبل آموزش دادیم(برای مطالعه اینجا کلیک کنید) گام بعدی چیست؟ مورد بعدی راه‌اندازی ساده‌ترین برد توسعه ATmega است. محل‌های مختلفی وجود دارد که می‌توانید برد توسعه آماده بخرید. اما، در این بخش، من […]

3 دقیقه

مقدمه‌ای بر میکروکنترلر AVR

آقای نویسنده

مقدمه‌ای بر میکروکنترلر(microcontroller) AVR   AVR خانواده‌ای از میکرو کنترلرهای Atmel است. در اصل،میکرو کنترلر کامپیوتر بسیار کوچک در یک IC است که می‌تواند برنامه‌ریزی شود تا همه انواع کارها را انجام دهد. AVRها با لوازم جانبی داخلی نظیر پورت‌های دیجیتال ورودی و خروجی (I/O)، تایمرها، مبدل‌های آنالوگ به دیجیتال (ADC)، واسط‌ های سریال، مدولاسیون […]

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

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

سبد خرید
Subtotal 0 تومان