به نام خدا
پروژه ی ساخت مدار ژنراتور SPWM با استفاده از آردوینو
در این پست قصد داریم تا یاد بگیریم که چگونه یک مدولاسیون پهنای پالس سینوسی و یا به اختصار spwm ایجاد کنیم. از این مدار می توان به عنوان ژنراتور کاربردی SPWM استفاده کرد.
SPWM
به نوعی مدولاسیون پالس که حاوی اطلاعات یک موج سینوسی می باشد. این پالس ها با موج سینوسی مورد نظر هم فاز هستند که تغییر ولتاژ بسیار حساس است. از SPWM برای راه اندازی ترانزیستور های ماسفت و یا بی جی تی در مبدل ها استفاده می شود. با استفاده از این روش مدولاسیون ، هنگام تفیییر ولتاژ مورد نظر مطمئن هستیم که تغییر ولتاژ به صورت ناگهانی رخ نمی دهد و با شیب کم مطلوبی رخ می دهد. تفاوت SPWM با PWM ، همانطور که از نامش مشخص است در رفتار سینوسی SPWM می باشد.
ایجاد SPWM با آردوینو :
همانطور که در بالا توضیح داده شد ، SPWM از تعداد قطعات دی سی زیادی تشکیل شده است. با استفاده از آردوینو می توانید تعداد این قطعات را بالا ببرید تا دقت بیشتر شود. کد زیر برای ایجاد یک SPWM توسط آردوینو می باشد.
دانلود برنامه ی ژنراتور SPWM با استفاده از آردوینو :
void setup(){ pinMode(8, OUTPUT); pinMode(9, OUTPUT); } void loop(){ digitalWrite(8, HIGH); delayMicroseconds(500); digitalWrite(8, LOW); delayMicroseconds(500); digitalWrite(8, HIGH); delayMicroseconds(750); digitalWrite(8, LOW); delayMicroseconds(500); digitalWrite(8, HIGH); delayMicroseconds(1250); digitalWrite(8, LOW); delayMicroseconds(500); digitalWrite(8, HIGH); delayMicroseconds(2000); digitalWrite(8, LOW); delayMicroseconds(500); digitalWrite(8, HIGH); delayMicroseconds(1250); digitalWrite(8, LOW); delayMicroseconds(500); digitalWrite(8, HIGH); delayMicroseconds(750); digitalWrite(8, LOW); delayMicroseconds(500); digitalWrite(8, HIGH); delayMicroseconds(500); digitalWrite(8, LOW); //...... digitalWrite(9, HIGH); delayMicroseconds(500); digitalWrite(9, LOW); delayMicroseconds(500); digitalWrite(9, HIGH); delayMicroseconds(750); digitalWrite(9, LOW); delayMicroseconds(500); digitalWrite(9, HIGH); delayMicroseconds(1250); digitalWrite(9, LOW); delayMicroseconds(500); digitalWrite(9, HIGH); delayMicroseconds(2000); digitalWrite(9, LOW); delayMicroseconds(500); digitalWrite(9, HIGH); delayMicroseconds(1250); digitalWrite(9, LOW); delayMicroseconds(500); digitalWrite(9, HIGH); delayMicroseconds(750); digitalWrite(9, LOW); delayMicroseconds(500); digitalWrite(9, HIGH); delayMicroseconds(500); digitalWrite(9, LOW); } //-------------------------------------//
دیدگاهها (0)