آموزش پروژه محور رسپبری پای – جلسه پنجم کار با PWM
به نام خدا
آموزش پروژه محور رسپبری پای – جلسه پنجم کار با 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%
اگر 0.2 ثانیه روشن باشد و 0.8 خاموش باشد ، دیوتی سایکل 20% خواهد شد . دیوتی سایکل ضربدر ولتاژ باتری ، ولتاژی است که به طور میانگین به ال ای دی میرسد . در این مثال فرکانس ما یک هرتز است . میتوان فرکانس را افزایش داد یعنی این عمل روشن و خاموش شدن به تعداد بیشتری در یک ثانیه انجام شود ، مثلا 50 بار در ثانیه .
ولتاژ میانگین رسیده به LED برابر می شود با ولتاژی که در دو سر LED قرار دارد ضربدر دیوتی سایکل . به عنوان مثال در مدار بالا که به 3 ولت وصل است میانگین ولتاژ رسیده به موتور با دیوتی سایکل مثلا %40 برابر با 1.2 ولت خواهد بود .
ال ای دی را میتوانیم به هر یک از پین های زرد نشان داده شده در شکل بالا وصل کنیم .
قطعات مورد نیاز :
ما از برد رسپبری پای 2 مدل B استفاده میکنیم هر چند که قبلا گفته شده فرق چندانی بین رسپبری پای های مختلف به خصوص 2 و 3 نیست . سیستم عامل ما هم رسپبین میباشد .
- تعدادی سیم
- مقاومت یک کیلو اهم یا 220 اهم
- LED
- بردبورد
توضیحات مدار :
همان طور که در شکل بالا میبینید ال ای دی را به پین شماره 35 رسپبری پای یعنی GPIO19 وصل کرده ایم . همان طور که قبلا گفته شد ، نمیتوانیم از این پین های رسپبری پای بیشتر از 15 میلی آمپر جریان بکشیم . بنابریا برای محدود کردن جریان از مقاومت استفاده میکنیم .
توصیف عملکرد :
خب همه چیز را وصل کرده ایم و حالا میتونیم برد رسپبری پای را روشن کرده و پایتون را اجرا کنیم . چند تا از دستورات مهم برنامه را توضیح میدهیم .
در ابتدای برنامه فایل 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 را 100 هرتز گذاشته ایم . به خاطر فرکانس بالا ( سرعت زیاد ) نمیتوانیم روشن خاموش شدن ال ای دی را ببینیم و فقط تغییر شدت نور آن را میبینیم .
در دستور زیر سیگنال PWM شروع به کار میکند . در این خط ما دیوتی سایکل یا همان نرخ روشن بودن را مشخص میکنیم . دیوتی سایکل 0 به معنی این است که 0% زمان روشن است ، دیوتی سایکل 30 به معنی روشن بودن در 30 % زمان است و … .
p.start(DUTYCYCLE)
دستور زیر حلقه را 50 بار تکرار میکند . X از 0 تا 49 میتواند افزایش یابد .
for x in range (50):
حلقه While 1 یک حلقه بی نهایت است که مدام اجرا میشود .
در این برنامه دیوتی سایکل سیگنال PWM افزایش یافته و سپس کاهش می یابد . با این کار روشنایی ال ای دی را کم و زیاد میکنیم .
کد های برنامه :
برای دانلود کد های برنامه بر روی لینک زیر کلیک کنید .
[maxbutton id=”31″ url=”http://avatrobo.ir/wp-content/uploads/2015/11/LED-PWM.txt” text=”دانلود فایل” ]
فیلم عملکرد پروژه :
پست های مرتبط
آبان 3, 1396
دیدگاهتان را بنویسید