به نام خدا
آموزش پروژه محور رسپبری پای – جلسه ششم کنترل موتور DC
در این جلسه از آموزش پروژه محور رسپبری پای میخواهیم یک موتور DC را توسط روش PWM که در جلسه قبل آموزش داده شد کنترل کنیم . همان طور که در جلسه پیش گفتیم ، PWM یا همان مدولاسیون پهنای پالس یک روش برای کنترل ولتاژ میانگین است .
برای توضیحات مربوط به پین های رسپبری پای میتوانید به جلسه های قبل مراجعه کنید .
بر روی برد رسپبری پای ولتاژ ۵ ولت ( پین ۲ و ۴ ) و ۳٫۳ ولت ( پین ۱ و ۱۷ ) برای اتصال به ماژول ها و سنسور ها وجود دارد . این پین ها به طور موازی با پاور پردازنده قرار دارند بنابراین کشیدن جریان زیاد از این پین ها بر روی پردازنده تاثیر میگذارد . از پین ۳٫۳ ولت میتونیم با خیال راحت ۱۰۰ میلی آمپر بکشیم .
ما موتور خود را به پین ۳٫۳ ولت وصل کرده ایم ، اگر شما هم میخواهید از ۳٫۳ ولت برد رسپبری پای برای موتور خود استفاده کنید باید از یک موتور با جریان مصرفی پایین استفاده کنید . اگر خواستی از موتور های با توان بالاتر استفاده کنی باید از مدار های درایور موتور استفاده کنی .
قطعات مورد نیاز :
ما از برد رسپبری پای ۲ مدل B استفاده میکنیم ، همان طور که در جلسه های پیش گفته شد کار با این برد با برد های دیگر رسپبری پای به خصوص رسپبری پای ۳ فرق چندانی ندارد . سیستم عامل ما رسپبین میباشد . زبان برنامه نویسی ما هم پایتون میباشد .
- تعدادی سیم
- مقاومت ۲۲۰ اهم یا یک کیلو اهم سه عدد
- موتور DC کوچک
- میکروسوئیچ دو عدد
- ترانزیستور ۲N2222
- دیود ۱N4007
- خازن ۱۰۰۰ میکرو فاراد
- بردبورد
توضیحات مدار :
از آن جا که پین های ورودی و خروجی رسپبری پای نمیتوانند بیشتر از ۱۵ میلی آمپر بدهند ، برای ایجاد سیگنال PWM برای موتور از ترانزیستور استفاده میکنیم . سیگنال PWM خود را به بیس ترانزیستور اعمال میکنیم تا ترانزیستور قطع و وصل شود .
علاوه بر این برای جلوگیری از اثر القایی موتور و برگشتن ولتاژ به مدار منطقی ما ، از یک دیو استفاده کرده ایم .
برای جلوگیری از نوسان ولتاز نیز از یک خازن که آن را به دو سر تغذیه زده ایم استفاده میشود .
توضیحات نحوه کار پروژه :
حالا که مدار ما آماده است ، برد رسپبری پای را روشن میکنیم و برنامه را در آن میریزیم .
چند دستور مهم برنامه را توضیح میدهیم .
ابتدا فایل GPIO را از کتابخانه فراخوانی میکنیم . تابع زیر ، پین های GPIO ( ورودی و خروجی ) رسپبری پای را فعال میکند . نام GPIO را به IO تغییر میدهیم .
import RPi.GPIO as IO
برای اشاره کردن به پین های رسپبری پای میتونیم از شماره پایه ان یا شماره GPIO آن استفاده کنیم .
IO.setmode (IO.BCM)
پین مورد نظر خود را به عنوان خروجی تعریف میکنیم . GPIO19 یا همان پین ۳۵ برد رسپبری پای را برای ایجاد سیگنال PWM استفاده میکنیم .
IO.setup(19,IO.IN)
حالا باید خروجی PWM خود را تنظیم کنیم . در دستور بالا کانال و فرکانس سیگنال PWM را در برد رسپبری پای تنظیم میکنیم . P یک متغیر است . ما از GPIO19 استفاده کرده ایم و فرکانس PWM را ۱۰۰ هرتز گذاشته ایم . به خاطر فرکانس بالا ( سرعت زیاد ) نمیتوانیم روشن خاموش شدن ال ای دی را ببینیم و فقط تغییر شدت نور آن را میبینیم .
p = IO.PWM(output channel , frequency of PWM signal)
در دستور زیر سیگنال PWM شروع به کار میکند . در این خط ما دیوتی سایکل یا همان نرخ روشن بودن را مشخص میکنیم . دیوتی سایکل ۰ به معنی این است که ۰% زمان روشن است ، دیوتی سایکل ۳۰ به معنی روشن بودن در ۳۰ % زمان است و … .
p.start(DUTYCYCLE)
با فشار دادن میکروسوئیچ پین متصل شده به میکروسوئیچ ، Low خواهد شد . خط زیر به این منظورست که اگر پین مربوطه ( ۲۶ ) صفر ( Low ) شود حلقه if اجرا شود و اگر صفر نباشد حلقه اجرا نمیشود .
if(IO.input(26) == False):
در برنامه ای که پایین تر میبینید ، یک حلقه با افزایش دیوتی سایکل سرعت موتور را افزایش می دهد و یک حلقه هم با کاهش دیوتی سایکل سرعت موتور کاهش می یابد .
کد های برنامه :
برای دانلود کد های برنامه بر روی لینک زیر کلیک کنید .
دانلود فایل
دیدگاهها (0)