آموزش رزبری پای رزبری پای میکروپایتون 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 میتواند برای اندازه گیری فرکانس و دیوتی سایکل استفاده شود.

 

PWM یا مدولاسیون پهنای باند (Pulse Width Modulation) یک تکنیک در الکترونیک است که برای کنترل قدرت یا شدت یک سیگنال الکتریکی مورد استفاده قرار می‌گیرد. در این تکنیک، سیگنال مربوط به یک دستگاه یا قسمت الکترونیکی با تغییر عرض پالس‌های الکتریکی تولید می‌شود.PWM با استفاده از دو مقدار یا وضعیت تنظیم می‌شود: یک مقدار بالا (ON) و یک مقدار پایین (OFF). در دوره‌های معین زمانی، سیگنال با مقدار بالایی فعال می‌شود و در دوره‌های زمانی دیگر، به مقدار پایین تغییر می‌کند. نسبت بین زمانی که سیگنال در وضعیت بالا است به زمانی که در وضعیت پایین است، نسبت دوره به پهنای باند (Duty Cycle) نامیده می‌شود.از PWM به طور گسترده در موارد مختلف الکترونیکی استفاده می‌شود، از جمله کنترل سرعت موتورها، روشنایی در رله‌ها، کنترل بخش‌های مختلف یک مدار الکترونیکی و حتی در کنترل تراشه‌های دیجیتال. این تکنیک به امکان کنترل دقیق و متغیر قدرت یا شدت سیگنال از طریق تغییر نسبت دوره به پهنای باند اجازه می‌دهد و بسیار مفید است زمانی که نیاز به کنترل دقیق و پیچیده‌تر در سیگنال الکتریکی دارید.

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

 

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

 

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

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


روش راه اندازی pwm در رزبری پای پیکو Pico


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

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

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

 


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


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

PWM.init(\*, freq, duty_u16, duty_ns)¶

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

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

 

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

pwm.freq

 

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

for duty in range(65025):
        pwm.duty_u16(duty)

 


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


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

ال ای دی LED

برد بورد

کابل فلت 

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

 


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


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

 

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

 

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

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

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

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

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

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

۱۳ دیدگاه