به نام خدا
آموزش پروژه محور رسپبری پای – جلسه پنجم کار با PWM
در این جلسه میخواهیم PWM رسپبری پای را راه اندازی کنیم . همان طور که میدانید PWM همان مدولاسیون پهنای پالس است یعنی در یک فرکانس مشخص مدت زمان یک و صفر بودن تغییر میکند که توسط این نوع مدولاسیون میتوانیم یک ولتاژ متغیر در خروجی داشته باشیم ، مثلا برای کنترل سرعت موتور های الکتریکی . امروز میخواهیم موج PWM را از طریق تغییر روشنایی ال ای دی ( تغییر ولتاژ دو سر ال ای دی ) به شما نشان دهیم .
مدولاسیون پهنای پالس :
مدولاسیون پهنای پالس یا همان PWM در خیلی از پست های سایت ما توضیح داده شده است .
در مدار بالا یک کلید را میبینید که میتواند جریان را قطع و وصل کند . اگر این کلید نیم ثانیه وصل باشد و نیم ثانیه قطع باشد میتوان گفت در کل مدت زمان روشن و خاموش شدن ، به طور میانگین نصف ولتاژ باتری به ال ای دی میرسد . این همان دیوتی سایکل ( Duty Cycle ) است . دیتوی سایکل برابر است با مدت زمان روشن بودن به کل مدت زمان روشن و خاموش بودن .
Duty Cycle =Turn ON time/ (Turn ON time + Turn OFF time)
Duty Cycle = (0.5/ (0.5+0.5)) = 50%
اگر ۰٫۲ ثانیه روشن باشد و ۰٫۸ خاموش باشد ، دیوتی سایکل ۲۰% خواهد شد . دیوتی سایکل ضربدر ولتاژ باتری ، ولتاژی است که به طور میانگین به ال ای دی میرسد . در این مثال فرکانس ما یک هرتز است . میتوان فرکانس را افزایش داد یعنی این عمل روشن و خاموش شدن به تعداد بیشتری در یک ثانیه انجام شود ، مثلا ۵۰ بار در ثانیه .
ولتاژ میانگین رسیده به LED برابر می شود با ولتاژی که در دو سر LED قرار دارد ضربدر دیوتی سایکل . به عنوان مثال در مدار بالا که به ۳ ولت وصل است میانگین ولتاژ رسیده به موتور با دیوتی سایکل مثلا %۴۰ برابر با ۱٫۲ ولت خواهد بود .
ال ای دی را میتوانیم به هر یک از پین های زرد نشان داده شده در شکل بالا وصل کنیم .
قطعات مورد نیاز :
ما از برد رسپبری پای ۲ مدل B استفاده میکنیم هر چند که قبلا گفته شده فرق چندانی بین رسپبری پای های مختلف به خصوص ۲ و ۳ نیست . سیستم عامل ما هم رسپبین میباشد .
- تعدادی سیم
- مقاومت یک کیلو اهم یا ۲۲۰ اهم
- LED
- بردبورد
توضیحات مدار :
همان طور که در شکل بالا میبینید ال ای دی را به پین شماره ۳۵ رسپبری پای یعنی GPIO19 وصل کرده ایم . همان طور که قبلا گفته شد ، نمیتوانیم از این پین های رسپبری پای بیشتر از ۱۵ میلی آمپر جریان بکشیم . بنابریا برای محدود کردن جریان از مقاومت استفاده میکنیم .
توصیف عملکرد :
خب همه چیز را وصل کرده ایم و حالا میتونیم برد رسپبری پای را روشن کرده و پایتون را اجرا کنیم . چند تا از دستورات مهم برنامه را توضیح میدهیم .
در ابتدای برنامه فایل GPIO را از کتابخانه فراخوانی میکنیم . این کتابخانه برای فعال سازی پین های ورودی خروجی رسپبری پای است .
همچنین نام GPIO را به IO عوض میکنیم . با این کار در برنامه هر موقع که خواستیم به GPIO اشاره کنیم از کلمه IO استفاده میکنیم .
import RPi.GPIO as IO
برای اشاره کردن به پین های رسپبری پای میتونیم از شماره پایه ان یا شماره GPIO آن استفاده کنیم .
IO.setmode (IO.BCM)
پین مورد نظر خود را به عنوان خروجی تعریف میکنیم . کا از این پین خروجی PWM میگیریم .
IO.setup(19,IO.IN)
حالا باید خروجی PWM خود را تنظیم کنیم .
p = IO.PWM(output channel , frequency of PWM signal)
در دستور بالا کانال و فرکانس سیگنال PWM را در برد رسپبری پای تنظیم میکنیم . P یک متغیر است . ما از GPIO19 استفاده کرده ایم و فرکانس PWM را ۱۰۰ هرتز گذاشته ایم . به خاطر فرکانس بالا ( سرعت زیاد ) نمیتوانیم روشن خاموش شدن ال ای دی را ببینیم و فقط تغییر شدت نور آن را میبینیم .
در دستور زیر سیگنال PWM شروع به کار میکند . در این خط ما دیوتی سایکل یا همان نرخ روشن بودن را مشخص میکنیم . دیوتی سایکل ۰ به معنی این است که ۰% زمان روشن است ، دیوتی سایکل ۳۰ به معنی روشن بودن در ۳۰ % زمان است و … .
p.start(DUTYCYCLE)
دستور زیر حلقه را ۵۰ بار تکرار میکند . X از ۰ تا ۴۹ میتواند افزایش یابد .
for x in range (50):
حلقه While 1 یک حلقه بی نهایت است که مدام اجرا میشود .
در این برنامه دیوتی سایکل سیگنال PWM افزایش یافته و سپس کاهش می یابد . با این کار روشنایی ال ای دی را کم و زیاد میکنیم .
کد های برنامه :
برای دانلود کد های برنامه بر روی لینک زیر کلیک کنید .
دانلود فایل
فیلم عملکرد پروژه :
دیدگاهها (0)