آموزش رزبری پای رزبری پای میکروپایتون Micropython

آموزش میکروپایتون با رزبری پای پیکو بخش پنجم: مدولاسیون پهنای باند PWM

getting-started-with-raspberry-pi-pico-micropython-part-five-pwm-digispark
نوشته شده توسط پریسا پوربلورچیان

مدولاسیون پهنای باند pwm یا Pulse Width Modulation، یک تکنیک برای دریافت خروجی آنالوگ از دیجیتال است. کنترل دیجیتال برای ساخت یک موج مربعی استفاده می‌شود. سیگنالی که بین صفر و یک سوییج شده و فقط دو حالت دارد. الگوی خاموش و روشن میتواند ولتاژ را بین ۵ ولت یا ۳٫۳ ولت تا GND شبیه سازی کند. مدت زمان سپری شده در این بازه را عرض پالس PULSE WIDTH می‌نامند. برای به دست آوردن مقادیر آنالوگ متفاوت، باید عرض پالس PULSE WIDTH را شبیه سازی کرد. در بخش پنجم از سری آموزش های میکروپایتون با برد رزبری پای پیکو روش استفاده از PWM در پیکو را فرا خواهیم گرفت. در ادامه با مرجع تخصصی میکروپایتون با رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.

مدولاسیون پهنای باند PWM با رزبری پای پیکو - دیجی اسپارک

 


مدولاسیون پهنای باند pwm


PWM ) Pulse Width Modulation) مدولاسیون پهنای باند روشی برای به دست آوردن خروجی آنالوگ روی پین دیجیتال است. PWM به دو پارامتر فرکانس و دیوتی سایکل وابسته است. در PWM عرض سیگنال مدام در حال تغییر است اما فرکانس ثابت ادامه میدهد. در صورتیکه سیگنال PWM در یک فرکانس ثابت کار کند، با تغییر زمان، زمانیکه دامنه سیگنال High باشد، زمان دامنه سیگنال پایین را تغییر داده می‌شود. به این بازه ی زمانی پهنای پالس گفته می‌شود. پهنای پالس که وابسته به دوره ی سیگنال است، دیوتی سایکل Duty Cycle گفته می شود. دوره زمانی سیگنال (T) که به پریود زمانی نیز گفته می شود از لحظه افزایش پله ی سیگنال موج مربعی شروع شده و به میزان شروع فزایش بعدی طول می کشد. تراشه RP2040 از هشت پایه PWM دو کاناله به صورت A B تشکیل شده است. به صورتی که پایه B میتواند برای اندازه گیری فرکانس و دیوتی سایکل استفاده شود.

 اما نکته ی قابل توجه اینجاست! تمامی پایه های GPIO برد رزبری پای پیکو میتوانند ماهیت PWM داشته باشند. 

PWM مدولاسیون پهنای باند رزبری پای پیکو - دیجی اسپارک

 

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

پایه های رزبری پای پیکو کد نویسی میکروپایتون micropython - دیجی اسپارک


Pico PWM & MicroPython


راه اندازی پهنای باند pwm در میکروپایتون ساده است و با چند خط کدنویسی حتی میتوانیم دیوتی سایکل و فرکانس PWM را محاسبه کنیم. کلاس PWM برای تولید خروجی PWM در میکروبیت به صورت زیر است.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

برنامه نویسی میکروپایتون با رزبری پای پیکو - دیجی اسپارک

 

متد فراخوانی کلاس pwm

آبجکت های PWM در این ساخنار تغییر کرده و مشخص می‌شود.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

فرمان PWM با میکروپایتون رزبری پای پیکو pico و ال ای دی - دیجی اسپارک

 

توسط کلاس freq به رزبری پای پیکو اعلام می‌شود تا چه زمانی تغذیه را بین on , off تغییر دهد تا ال ای دی خاموش و روشن شود. با تغییر عدد ۱۰۰۰ در برنامه متوجه سرعت تغییر زمان on , off شدن ال ای دی خواهید شد.

 

دیوتی سایکل برای ال ای دی مشخص می‌کند که در چه زمان هایی بایستی on باشد. برای رزبری پای پیکو در میکروپایتون این عدد بین ۰ تا ۶۵۰۲۵ است. ۶۵۰۲۵ بایستی در دیوتی سایکل ۱۰۰ درصد باشد. پس با این وجود ال ای دی روشن خواهد شد. در مقدار ۳۲۵۱۲ مشخص کننده روشن شدن در نیمی از زمان است.

 


وسایل مورد نیاز


رزبری پای پیکو Raspberry Pi PICO

ال ای دی LED

برد بورد

کابل فلت 

کد نویسی میکروپایتون با رزبری پای پیکو قسمت پنجم PWM - دیجی اسپارک

 


جمع بندی لیدی پای


PWM در برنامه نویسی مخفف Pulse Width Modulation است که یک تکنیک خاص برای کنترل نور چراغ، دور موتور، کنترل سرو موتور و یا هر جایی که نیاز به دریافت خروجی آنالوگ از ابزارهای دییجتال داریم، استفاده می‌شود. خروجی پایه های دیجیتال به صورت موج مربعی و در دو حالت ۱ و ۰ است که منظور از ۱ همان ۵ ولت و صفر همان gnd است. با یک مثال بررسی می‌کنیم، اگر بخواهیم شدت نور یک ال ای دی را کم و زیا کنیم، عملا با استفاده از ۵ ولت و صفر ولت امکان پذیر نیست. زیرا در یک لحظه ال ای دی خاموش و در یک لحظه در بالاترین میزان نور خواهد بود اما میتوانیم مدت زمان سیگنال را کم و زیاد کنیم.  از PWM برای کنترل خروجی و روند افزایشی و کاهشی چراغ ها، کنترل دور موتور استفاده می‌شود. برای کدنویسی میکروپایتون برای اعمال دستورات از کلاس های گفته شده استفاده می‌شود که مقدار دیتا را در زمان مشخص و دیوتی سایکل در فرکانس مشخص شده نمایش میدهد.

 

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

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه