آموزش آردوینو درایور موتور رباتیک پروژه های آردوینو

آموزش ساخت کنترلر دور و جهت موتور آرمیچر DC با ریموت IR با آردوینو

نوشته شده توسط معین صابری

در سری آموزش های کنترل دور موتور و جهت موتور DC، این بار قصد داریم تا یک موتور الکتریکی DC کوچک را از طریق ریموت IR کنترل نماییم. در آموزش های پیشین، به دو روش کنترل موتور پرداختیم. به عنوان مثال، در این آموزش(لینک آموزش، کلیک کنید)، ابتدا تحت ویندوز، یک برنامه نوشتیم و به کمک آن دور و جهت موتور را کنترل نمودیم. سپس در آموزشی دیگر، دور و جهت موتور مورد نظر را از طریق اینترنت GPRS ماژول SIM808 و به کمک یک وب سایت (لینک آموزش، کلیک کنید) که از پیش برای همین منظور طراحی نموده ایم، کنترل کردیم. در این آموزش، قصد داریم تا موتور مورد نظر را به کمک ریموت کنترل IR، کنترل نماییم. البته، در این آموزش(لینک آموزش، کلیک کنید) پیشتر همکارم به کنترل سروو موتور از طریق ریموت IR پرداخته است، اما در این آموزش ما به کنترل دور و جهت چرخش یک موتور DC معمولی کوچک، می پردازیم.

ریموت کنترل های IR، یکی از پرکاربردترین ریموت ها در صنایع و وسایل الکترونیکی هستند. این ریموت ها در تلویزیون ها، هود ها، رایدو پخش ها و… به وفور در حال استفاده هستند. در این آموزش، از این ریموت برای کنترل دور و جهت موتور الکتریکی، استفاده خواهیم نمود. در ادامه با مرجع تخصصی آردوینو به زیان فارسی دیجی اسپارک همراه باشید.

 


معرفی ریموت IR و کاربردهای آن


ریموت کنترل های IR، ریموت کنترل هایی با اندازه و ابعاد مختلفی هستند که برای کنترل وسایل مختلف، نظیر وسایل صوتی و تصویری، سیستم های گرمایشی و سرمایشی، هود های صنعتی و یا خانگی و…. به کار می روند. تکنولوژی این ریموت ها بر مبنای مادون قرمز بوده و با فشرده شدن هر کلید، کد مخصوص آن کلید از سنسور IR به گیرنده ارسال خواهد شد. در سمت گیرنده، با دریافت کد مخصوص ارسال شده، می توان عمل مورد نظر را انجام داد. همچنین، گیرنده های ریموت IR در صورت تطابق فرکانس، می توانند کدهای ریموت های تلویزیون و سایر دستگاه ها نظیر کنترل هود را بخوانند.

ریموت کنترل مادون قرمز IR - دیجی اسپارک

در این آموزش قصد داریم تا به طراحی و پیاده سازی کنترل موتور از طریق ریموت بپردازیم.به این ترتیب می توانیم با ساختار کنترل موتور در دستگاه مختلف نظیر کولرهای گازی، هودهای آشپزخانه و … آشنا شده و در پروزه های خود، از این قابلیت استفاده نماییم. در این آموزش، از یک  کنترل ریموت IR به همراه گیرنده آن استفاده کرده ایم. گیرنده این ریموت دارای یک پایه در خروجی بوده که می تواند کد دریافت شده را به برد آردویینو انتقال دهد. همچنین، برای این ماژول کتابخانه مخصوص آردویینو وجود داشته که می توان به سادگی از آن در آردویینو استفاده نمود.گیرنده مادن قرمز IR آردوینو - دیجی اسپارک

 


درایور موتور L298D


همانطور که بیان شد، هدف این آموزش، کنترل دور و جهت موتور از طریق ریموت مادون قرمز است. روال کلی کار به این صورت است که پس از دریافت کد ارسال شده از ریموت، ابتدا کد دیکد شده و بر مبنای دکمه فشرده شده، دور و جهت موتور کنترل خواهد شد. اما با توجه به جریان پایین آردویینو، نمی توان موتور را مستقیما توسط پایه های خروجی GPIO کنترل نمود. بنابراین، نیاز به یک تقویت کننده جریان خواهیم داشت. به همین منظور، از ماژول درایور موتور L298 استفاده می نماییم.

ماژول درایور موتور L298D و کنترل دور موتور - دیجی اسپارک

ماژول L298 قادر است تا دو آمپر به خروجی بار دهد. همچنین، این ماژول دارای دو کانال بوده که می تواند به صورت جداگانه، دور و چهت چرخش دو موتور را کنترل نماید. برای کنترل دور موتور، پالس PWM را به پایه EN اعمال می کنیم. این ماژول دارای دو پایه ENA و ENB به ترتیب برای کنترل دور دو کانال A و B است. همچنین، کنترل جهت موتور، از طریق پایه های IN1، IN2، IN3 و IN4 صورت می گیرد. دو پایه IN1 و IN2 برای کنترل جهت کانال شماره یک و دو پایه IN3 و IN4 به منظور کنترل جهت کانال شماره ۲ به کار می رود.

 


نصب کتابخانه ریموت کنترل در آردویینو


در این قسمت به بررسی نحوه نصب کتابخانه IR REMOTE می پردازیم. برای این منظور، ابتدا در منوی Tools نرم افزار آردویینو، بر روی گزینه manage libraries کلیک نمایید. در ادامه با تصویر زیر رو به رو خواهید شد.

در قسمت جستجو که با فلش مشخص شده، عبارت ir remoter را تایپ نمایید. پس از جستجو کتابخانه در مخازن آردویینو، لطفا کتابخانه مشخص شده در تصویر را انتخاب و نصب نمایید.

 

 


شماتیک و اتصالات مدار کنترل دور موتور


در تصویر زیر، شماتیک مدار را مشاهده می نمایید. مدار را مطابق تصویر زیر، ببندید.

برای اتصالات مدار فوق، روال زیر را در پیش بگیرید. در ابتدا، ماژول درایور موتور L298 را به شکل زیر سیم کشی نمایید.

اتصال پایه ENA به پایه GPIO6 (توجه کنید، در صورتیکه بر روی این پایه جامپر وجود دارد، این جامپر را برداشته و پایه ای که به سمت بیرون است را به پایه GPIO6 متصل کنید)

اتصال پایه IN1 به پایه GPIO4

اتصال پایه IN2 به پایه GPIO5

اتصال پایه GND به GND تغذیه و GND آردویینو

اتصال پایه ۵V به ۵V تغذیه

کابل های تغذیه موتور را به پایه های ترمینال دار OUT1 و OUT2 متصل نمایید. همچنین تفاوتی در اتصال کابل های تغذیه موتور به پایه های OUT1 و OUT2 وجود ندارد.

توجه: لطفا تغذیه ماژول L298 را از تغذیه ای غیر از تغذیه لپ تاپ، تامین نمایید.

برای اتصالات ماژول گیرنده IR، به شرح زیر عمل نمایید.

پایه GND به پایه GND آردویینو

پایه VCC به پایه ۵ ولت آردویینو

پایه دیتا به پایه GPIO7

اتصالات پروژه کنترل دور و جهت موتور آرمیچر DC با ریموت مادون قرمز آردوینو - دیجی اسپارک

 


کدهای پروژه کنترل دور موتور


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

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

 


اجرای پروژه کنترل دور موتور


در این قسمت، به اجرای پروژه می پردازیم در این پروژه، به کمک دکمه + دور موتور را افزایش، به کمک دکمه – دور موتور کاهش و به کمک دکمه های جلو و عقب، جهت موتور را کنترل خواهیم نمود. همچنین با انتخاب هر دکمه، عملی که می بایست انجام پذیرد، در سریال مانیتور به نمایش در می آید.

وضعیت خروجی سریال مانیتور آردوینو کنترل دور موتور - دیجی اسپارک

همانطور که در تصویر فوق مشاهده می نمایید، با فشردن هر دکمه، کد آن دکمه به نمایش در می آید. همچنین، با فشردن دکمه های زیاد و یا کم، دور موتور کم وزیاد شده و با انتخاب دکمه های جلو و عقب بر روی ریموت کنترل، جهت گردش موتور تغییر خواهد یافت.

تعریف کلیدهای ریموت مادون قرمز IR در برد آردوینو - دیجی اسپارک

 


تحلیل کدهای پروژه کنترل موتور با ریموت IR


در این قسمت، به بررسی کدهای به کار رفته در پروژه ریموت کنترل می پردازیم. در قسمت کدها به طور کامل در باره هر خط کد، توضیح کامل داده شده است. در اینجا، به طور خلاصه، عملکرد کدها را در جدول زیر خلاصه می نماییم. در جدول زیر، کلید ها نماینده کلید های ریموت کنترل هستند.

 


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


برد آردویینو UNO

ماژول درایور موتور L2984

ماژول گیرنده ریموت IR

موتور متناسب با کاربرد

 


جمع بندی


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

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۹ دیدگاه

  • سلام مرسی از شما
    یه سوالی دارم، فرکانس ریموتهای آی آر باهم متفاوت هستند؟ از کجا باید تشخیص بدیم که ریموت ما با گیرنده سازگاری داره؟

    • سلام
      خواهش میکنم
      معمولا ریموت ها فرکانس یکسان دارند. من ریموت های مختلفی نظیر ریموت تلویزیون، هود و … را با این گیرنده تست کرده و کد کلید را دریافت کرده ام. برای تست کافیست ریموت را جلوی گیرنده قرار داده و یک دمه را فشار دهید. در صورت سازگاری، کد ریموت دریافت و نمایش داده می شود.

    • باسلام و درود
      مهندس میخاستم بدونم دوتا ارمیچر رو تو این برده وصل بشه دوتاشو میشه کنترل کرد؟؟ بعد اینکه با همین ریموت مثلا دکمه ۱ رو بزنیم ارمیچر اولی و با دکمه ۲ ارمیچر دومی کار کنه میشه؟؟

      • سلام
        بله کاملا امکان پذیر هست. ماژول درایور موتور این پروژه دو کاناله هست.

    • سلام و خسته نباشید
      من میخاستم ۵ تا موتور رو کنترل کنم باید ماژول l298رو زیادتر کنم؟؟ مثلا چندتا یا اگه امکان داره قطعات مورد نیازشو برام بگین ممنون میشم

  • سلام
    عالی بود
    متشکرم، از ریموت های معمولی مثلا مال اسپیلیت میتونیم برای این منظور استفاده کنیم؟

    • سلام
      متشکرم
      بله، باید قابلیت استفاده داشته باشد. چراکه اکثر ریموت ها در یک فرکانس کار کرده و توسط مازول گیرنده قابلیت دیکد شدن دارند.

  • آیا میشه توسط آردینو استپ موتور رو علاوه بر کنترل حرکت رفت و برگشتی طوری کنترل کنیم که مثلا اگر قراره ۵ دور به راست و ۵ دور به چپ بگرده هروقت در بین راه مثلا دور دوم گردش کلید رو خاموش کردیم موتور برگرده و در ابتدای مسیر متوقف بشه.(اگر حرکت رو آسانسوری یا مثل برف پاکن ماشین در نظر بگیریم و هرجا که کلید خاموش شد بعد از کامل کردن سیکل حرکتیش بیاد و در ابتدای مسیر متوقف بشه و در بین مسیر متوقف نشه.)ممنون میشم راهنماییم کنید

    • این مورد قابل اجرا به نظر می رسد. اما در این زمینه اطلاعی ندارم. اگر دیگر دوستان اطلاع دارند، در بحث شرکت کنند.

  • سلام خسته نباشید برای ساخت این پروژه میشه از درایور موتور l۲۹۳ استفاده کرد در این صورت کدنویسی تغییر میکنه یا خیر

    • سلام و عذرخواهی بابت تاخیر در پاسخ
      من با درایور L293 کار نکرده ام، اما به نظر می رسد که کدها یکسان باشد.

  • باسلام و درود
    مهندس میخاستم بدونم دوتا ارمیچر رو تو این برده وصل بشه دوتاشو میشه کنترل کرد؟؟ بعد اینکه با همین ریموت مثلا دکمه ۱ رو بزنیم ارمیچر اولی و با دکمه ۲ ارمیچر دومی کار کنه میشه؟؟

  • سلام مهندس من میخاستم کنترل دور موتور دی سی که تعداد چهارتاست رو کنترل کنم فقط سرعتشونو کمو زیاد کنمبه این روشی که گفام برا یه ارمیچره برا چهارتا چجوریه . میتونین تو واتساپ جوابمو بدین ممنون میشم ************ اسماعیل نژاد

    • سلام
      هر ماژول درایور موتور دو موتور را می تواند درایو کند. پس کافیست از دو ماژول درایور موتور استفاده کنید. همچنین توجه داشته باشید پرسش و پاسخ تنها از طریق کامنت در صفحه ممکن است.

  • سلام. جناب من میخوام دوتا استپ موتور رو هم جهت و هم سرعت رو با ریموت کنترل کنم.
    سرعت گردش خیلی کمه و دقتم باید بالا باشه.
    چه استپ موتور و چه بورد و استارتری بگیرم.
    لطفا راهنمایی کنید

  • سلام در این برد میشه دو آرمیچر را که برای پهباد هستند را استفاده کرد اگر بله میشه آرمیچر ها را سری کرد