درس ۹۵: استفاده از شیلد موتور DC ۴ کاناله L293D | دوره آموزشی گام به گام آردوینو
در این آموزش، ما بررسی خواهیم کرد که چگونه چهار موتور DC را با استفاده از شیلد موتور L293D به کمک آردوینو کنترل کنیم. این تنظیمات بهویژه برای برنامههای رباتیک، مانند ساخت یک خودروی رباتیک که در آن کنترل دقیق موتور ضروری است، مفید است. در پایان این درس، شما یک مدل کاری خواهید داشت که میتواند چندین موتور را بهطور همزمان راهاندازی کند.

شیلد موتور L293D فرآیند سیمکشی را ساده میکند و به شما امکان میدهد که موتورها را تنها با چند اتصال کنترل کنید. شما یاد خواهید گرفت که چگونه شیلد را به آردوینو متصل کنید، شِفر (کود) را تنظیم کنید و دستورات کنترل موتور را بهطور مؤثر اجرا کنید. برای توضیحات بصریتر، میتوانید به ویدیو در زمانهای مشخص برای جزییات سیمکشی و کدنویسی مراجعه کنید (در ویدیو در mm:ss).
سختافزار توضیح داده شده
جزء اصلی این پروژه، شیلد موتور L293D است که یک درایور موتور نیمپل چهارگانه H-bridge است. این بدان معناست که میتواند دو موتور را در هر دو جهت کنترل کند و کنترل کاملی بر چرخش موتور فراهم میکند. شیلد بهطور مستقیم به آردوینو متصل میشود و این امکان را میدهد که بهراحتی قدرت و سیگنالهای کنترلی را بدون سیمکشی شلوغ مدیریت کنیم.
هر تراشه L293D میتواند تا 600 میلیامپر جریان را در هر کانال مدیریت کند و در ولتاژهای بین 4.5 ولت تا 36 ولت کار میکند. این دامنه آن را برای انواع موتورهای DC مناسب میسازد. علاوه بر این، سپر دارای یک جامپر است که به شما این امکان را میدهد که هم موتورها و هم آردوینو را از یک منبع تغذیه خارجی واحد تأمین کنید.
مشخصات دیتاشیت
| تولیدکننده | تگزاس اینسترومنتس |
|---|---|
| شماره قطعه | L293D |
| ولتاژ منطق/ورودی-خروجی | ۵ ولت |
| ولتاژ تغذیه | ۴.۵ - ۳۶ ولت |
| جریان خروجی (برای هر کانال) | 600 میلی آمپر |
| جریان اوج (در هر کانال) | ۱.۲ الف |
| راهنمای فرکانس PWM | ۱ کیلوهرتز - ۲۰ کیلوهرتز |
| آستانههای منطقی ورودی | ۲ ولت حداقل (بالا)، ۰.۸ ولت حداکثر (پایین) |
| افت ولتاژ / RDS(on)سیر ناپذیری | ۱.۵ ولت حداکثر |
| محدودیتهای حرارتی | ۱۵۰ درجه سانتیگراد |
| بسته | 16-دیپ |
| یادداشتها / واریانتها | پیکربندی دوگانه پل H |
- اطمینان حاصل کنید که موتورها از 600 میلیآمپر تجاوز نکنند تا از آسیب جلوگیری شود.
- برای برنامههای جریان بالا از سیستمهای خنککننده مناسب استفاده کنید.
- قبل از روشن کردن آردوینو، منبع برق خارجی را متصل کنید.
- جایگاه جامپر را برای تأمین برق شیلد و آردوینو بررسی کنید.
- جهت موتور را با تعویض اتصالات در صورت لزوم آزمایش کنید.
دستورالعملهای سیمکشی

ابتدا ماجیول موتور L293D را به آردوینو Uno یا Mega خود متصل کنید. پایههای ماجیول را با سرهای آردوینو همراستا کرده و بهطور محکم فشار دهید. سپس، موتورها DC خود را به پایههای مشخص شده متصل کنید.M1,M2,M3, andM4روی سپر. هر موتور به دو پایه نیاز دارد، بنابراین حتماً آنها را به درستی متصل کنید تا جهت چرخش صحیح باشد.
برای تأمین انرژی، یک باتری خارجی یا منبع تغذیه را به پایههای ورودی تغذیه شیلد وصل کنید و از اینکه ولتاژ در محدوده ۴.۵ ولت تا ۳۶ ولت باشد، اطمینان حاصل کنید. فراموش نکنید که جامپر موجود بر روی شیلد را وصل کنید تا انرژی به آردوینو منتقل شود. در نهایت، زمین منبع تغذیه را به پایه زمین آردوینو متصل کنید تا مدار کامل شود.
کتابخانه مورد نیاز را نصب کنید
بر روی نماد کتابخانه کلیک کنید و جستجو کنید برای:Adafruit Motor Sheild Libraryو روی نصب کلیک کنید تا آن را نصب کنید.
نمونههای شِفر (کود) و راهنما
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);در شِفر (کود)، ما چهار شی موتور را راهاندازی میکنیم:motor1,motor2,motor3انتظار میرود کهmotor4هر موتور یک شماره کانال اختصاص داده شده است که با اتصالات پایه شیلد موتور مطابقت دارد. این امکان را به ما میدهد که هر موتوری را به طور جداگانه کنترل کنیم.
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Robojax L293D Example");
}متن:setup()تابع ارتباط سریال را راهاندازی میکند و به ما اجازه میدهد پیامها را از IDE آردوینو ارسال و دریافت کنیم. این برای اشکالزدایی و نظارت بر فرآیند کنترل موتور مفید است.
motor1.setSpeed(speed(50)); //set speed for motor 1 at 50%
motor1.run(FORWARD); //send motor 1 to Forward rotationبرای کنترل موتورها، سرعت را با استفاده از تنظیم میکنیمsetSpeed()روش، که مقداری بین ۰ و ۲۵۵ میگیرد. run()سپس متد موتور را در جهت مشخص شده شروع میکند، مانندFORWARDیاBACKWARDسرعت میتواند به صورت پویا بر اساس نیاز تنظیم شود.
نمایشگاه / چه چیزی را انتظار داشته باشیم
زمانی که همه چیز سیمکشی شده و شِفر (کود) آپلود شد، باید ببینید که موتورها طبق دستورات موجود در شِفر (کود) میچرخند. ابتدا یکی از موتورها روشن میشود و سپس دیگر موتورها به ترتیب روشن میشوند، هر کدام به مدت مشخصی کار میکنند. اگر موتورها طبق انتظار عمل نکردند، سیمکشی خود را بررسی کنید، اطمینان حاصل کنید که جامپر متصل است، و تأیید کنید که منبع تغذیه کافی است (در ویدیو در mm:ss).
زمانبندی ویدیو
- :00 مقدمه
- 03:00 دیتاشیت برای L293D
- 03:56 توضیح سیمکشی
- ۰۷:۲۱ شِفر (کود) و کتابخانه
- کنترل ۴ موتور در ساعت ۱۳:۵۱
/*
* Lesson 95: Control 4 DC Motors for a Smart Car using a Motor Shield
* This code works with Arduino UNO and Arduino Mega.
* Wiring diagram and how to wire and connect the power supply is shown in the video.
Watch full video instruction: https://youtu.be/0XihwdulmDQ
* Download this code from: http://robojax.com
*
* Written by Ahmad Shamshiri for Robojax.com on Jan 09, 2022
* in Ajax, Ontario, Canada
This video is part of an Arduino Step by Step Course which starts here: https://youtu.be/-6qSrDUA5a8
If you found this tutorial helpful, please support me so I can continue creating content like this
and make a donation using PayPal http://robojax.com/L/?id=64
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
* Library location: https://github.com/adafruit/Adafruit-Motor-Shield-library
Adafruit Motor shield library
// copyright Adafruit Industries LLC, 2009
// this code is public domain, enjoy!
*/
#include <AFMotor.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Robojax L293D Example");
}
void loop() {
motor1.setSpeed( speed(50) ); //set speed for motor 1 at 50%
motor1.run(FORWARD);//send motor 1 to Foarward rotation
delay(2000);//wait for 2 seconds
motor2.setSpeed( speed(100) );//set speed for motor 2 at 100%
motor2.run(BACKWARD);//send motor 2 to Foarward rotation
delay(2000);
motor3.setSpeed( speed(70) );
motor3.run(FORWARD);
delay(2000);
motor4.setSpeed( speed(90) );
motor4.run(FORWARD);
delay(2000);
motor1.run(BRAKE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
delay(2000);
motor1.setSpeed(speed(100));
motor1.run(BACKWARD);
delay(2000);
motor1.run(RELEASE);
delay(1000);
}
/*
* speed percent to speed converter
* receives value between 0 to 100 and converts it to value between
* 0 to 255 which are 8 bits Arduino PWM value
* www.Robojax.com
Watch full video instruction: https://youtu.be/0XihwdulmDQ
*/
int speed(int percent)
{
return map(percent, 0, 100, 0, 255);
}
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازون
-
آمازون
-
ایبی
-
علیاکسپرسشیلد موتور L293D را از علیاکسپرس بخریدs.click.aliexpress.com
منابع و مراجع
-
خارجی
فایلها📁
هیچ فایلی موجود نیست.