رباتیک و هوافضا

آموزش پروژه محور رسپبری پای – جلسه ششم کنترل موتور DC

به نام خدا

آموزش پروژه محور رسپبری پای – جلسه ششم کنترل موتور DC

controlling-dc-motor-using-raspberry-pi_0

 

در این جلسه از آموزش پروژه محور رسپبری پای میخواهیم یک موتور DC را توسط روش PWM که در جلسه قبل آموزش داده شد کنترل کنیم . همان طور که در جلسه پیش گفتیم ، PWM یا همان مدولاسیون پهنای پالس یک روش برای کنترل ولتاژ میانگین است .

برای توضیحات مربوط به پین های رسپبری پای میتوانید به جلسه های قبل مراجعه کنید .

بر روی برد رسپبری پای ولتاژ ۵ ولت ( پین ۲ و ۴ ) و ۳٫۳ ولت ( پین ۱ و ۱۷ ) برای اتصال به ماژول ها و سنسور ها وجود دارد . این پین ها به طور موازی با پاور پردازنده قرار دارند بنابراین کشیدن جریان زیاد از این پین ها بر روی پردازنده تاثیر میگذارد . از پین ۳٫۳ ولت میتونیم با خیال راحت ۱۰۰ میلی آمپر بکشیم .

ما موتور خود را به پین ۳٫۳ ولت وصل کرده ایم ، اگر شما هم میخواهید از ۳٫۳ ولت برد رسپبری پای برای موتور خود استفاده کنید باید از یک موتور با جریان مصرفی پایین استفاده کنید . اگر خواستی از موتور های با توان بالاتر استفاده کنی باید از مدار های درایور موتور استفاده کنی .

قطعات مورد نیاز :

ما از برد رسپبری پای ۲ مدل B استفاده میکنیم ، همان طور که در جلسه های پیش گفته شد کار با این برد با برد های دیگر رسپبری پای به خصوص رسپبری پای ۳ فرق چندانی ندارد . سیستم عامل ما رسپبین میباشد . زبان برنامه نویسی ما هم پایتون میباشد .

  • تعدادی سیم
  • مقاومت ۲۲۰ اهم یا یک کیلو اهم سه عدد
  • موتور DC کوچک
  • میکروسوئیچ دو عدد
  • ترانزیستور ۲N2222
  • دیود ۱N4007
  • خازن ۱۰۰۰ میکرو فاراد
  • بردبورد
بیشتر بخوانید...  آموزش پروژه محور رزبری پای – جلسه نهم ADC
توضیحات مدار :

DC-motor-control-with-raspberry-pi-circuit-diagram

 

از آن جا که پین های ورودی و خروجی رسپبری پای نمیتوانند بیشتر از ۱۵ میلی آمپر بدهند ، برای ایجاد سیگنال 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)

*
*