مدولاسیون پهنای باند pwm یا Pulse Width Modulation، یک تکنیک برای دریافت خروجی آنالوگ از دیجیتال است. کنترل دیجیتال برای ساخت یک موج مربعی استفاده میشود. سیگنالی که بین صفر و یک سوییج شده و فقط دو حالت دارد. الگوی خاموش و روشن میتواند ولتاژ را بین ۵ ولت یا ۳٫۳ ولت تا GND شبیه سازی کند. مدت زمان سپری شده در این بازه را عرض پالس PULSE WIDTH مینامند. برای به دست آوردن مقادیر آنالوگ متفاوت، باید عرض پالس PULSE WIDTH را شبیه سازی کرد. در بخش پنجم از سری آموزش های میکروپایتون با برد رزبری پای پیکو روش استفاده از 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 در رزبری پای پیکو Pico
راه اندازی پهنای باند pwm در میکروپایتون ساده است و با چند خط کدنویسی حتی میتوانیم دیوتی سایکل و فرکانس PWM را محاسبه کنیم. کلاس PWM برای تولید خروجی PWM در میکروبیت به صورت زیر است.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
متد فراخوانی کلاس pwm میکروپایتون رزبری پای پیکو
آبجکت های PWM در این ساخنار تغییر کرده و مشخص میشود.
PWM.init(\*, freq, duty_u16, duty_ns)¶
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
توسط کلاس freq به رزبری پای پیکو اعلام میشود تا چه زمانی تغذیه را بین on , off تغییر دهد تا ال ای دی خاموش و روشن شود. با تغییر عدد ۱۰۰۰ در برنامه متوجه سرعت تغییر زمان on , off شدن ال ای دی خواهید شد.
pwm.freq
دیوتی سایکل برای ال ای دی مشخص میکند که در چه زمان هایی بایستی on باشد. برای رزبری پای پیکو در میکروپایتون این عدد بین ۰ تا ۶۵۰۲۵ است. ۶۵۰۲۵ بایستی در دیوتی سایکل ۱۰۰ درصد باشد. پس با این وجود ال ای دی روشن خواهد شد. در مقدار ۳۲۵۱۲ مشخص کننده روشن شدن در نیمی از زمان است.
for duty in range(65025): pwm.duty_u16(duty)
وسایل مورد نیاز
رزبری پای پیکو Raspberry Pi PICO
جمع بندی لیدی پای
PWM در برنامه نویسی مخفف Pulse Width Modulation است که یک تکنیک خاص برای کنترل نور چراغ، دور موتور، کنترل سرو موتور و یا هر جایی که نیاز به دریافت خروجی آنالوگ از ابزارهای دییجتال داریم، استفاده میشود. خروجی پایه های دیجیتال به صورت موج مربعی و در دو حالت ۱ و ۰ است که منظور از ۱ همان ۵ ولت و صفر همان gnd است. با یک مثال بررسی میکنیم، اگر بخواهیم شدت نور یک ال ای دی را کم و زیا کنیم، عملا با استفاده از ۵ ولت و صفر ولت امکان پذیر نیست. زیرا در یک لحظه ال ای دی خاموش و در یک لحظه در بالاترین میزان نور خواهد بود اما میتوانیم مدت زمان سیگنال را کم و زیاد کنیم. از PWM برای کنترل خروجی و روند افزایشی و کاهشی چراغ ها، کنترل دور موتور استفاده میشود. برای کدنویسی میکروپایتون برای اعمال دستورات از کلاس های گفته شده استفاده میشود که مقدار دیتا را در زمان مشخص و دیوتی سایکل در فرکانس مشخص شده نمایش میدهد.
چنانچه در مراحل راه اندازی برد میکروبیت و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
آموزش کامل درجه یک من تونسم یک موتور رو سرعتش رو با pwm کنترل کنم
ممنونم
با سلام
بسیار عالی موفق باشید
سپاس از همراهی شما کاربر گرامی
امیدوارم آموزش ها مفید واقع شود.
برای کار با pwm حتما باید فرکانس را در کد اضافه کنیم؟
با سلام
بله بایستی فرکانس کاری pwm را طبق کلاس pwm در کد اضافه کنید.
سلام مهندس
برای تغییر شدت نور با میکروپایتون حتما به ولوم نیاز داریم؟ نمیشه با کد فقط اجرا کرد؟
با سلام
خیر میتوانید با شرط نویسی و استفاده از range for برای روشن شدن و خاموش شدن شرط اتوماتیک بنویسید.
سلام
لطفا برای یاذگیری میکروپایتون پروژه کار کنید ودر دیجی اسپارک منتشر کنید.
ممنونم که نظر من رو بخونید
با سلام
کاربر گرامی
سپاس از همراهی شما بررسی و به زودی پروژه ها منتشر خواهد شد.
سلام همان مفهوم pwm اینجا هم برای پیکو تکرار شده و همان کاربرد رو داره ؟
سلام
بله کاملا مفاهیم یکسان است.
بر چه اساسی باید به دیوتی سایکل و فرکانس مقداردهی کنیم؟
با سلام
کاربر گرامی سوال شما شفاف نیست با توجه به نیاز پروژه دیوتی سایکل را تغییر دهید.
با سلام. من میخوام با رزپبری پای پیکو یک سلنویید والو ۱۱۰ ولت را بصورت پالسی باز و بسته کنم. اگر میشه راهنمایی فرمایید. با تشکر
با سلام
کاربر گرامی در این خصوص بایستی از ماژول رله به عنوان رابط بین پیکو و سلونوئید استفاده کنید.