با اتصال آی سی پل L298 به آردینو میتوانید یک موتور DC را کنترل کنید.
مقدمه
موتور جریان مستقیم یا DC متداول ترین نوع موتور است. موتو dc دو سر دارد یک سر مثبت و یک سر منفی دارد. اگر این دو سر را مستقیم به باتری متصل کنیم موتور شروع به چرخیدن میکند. اگر جای مثبت و منفی را عوض کنید موتور بر عکس میچرخد.
برای کنترل جهت چرخش موتور بدون جا به جا کردن دو سر موتور میتوان از مدار که به آن پل H میگویند استفاده کرد. پل H یک مدار الکترونیکی است که با آن میتوان موتور را به هردو جهت هدایت کرد.
پل H
پل H در مدارات مختلفی به کا ر میرود یکی از انها کنترل موتورها در رباتها است. به این علت پل H میگویند که چهار ترانزیستور به نحوی قرار داده شده که شکل شماتیک ان شبیه حرف H است.
میتوان از ترانزیستورهای مجزا برای درست کردن این مدار استفاده کنید. اما در اینجا از L298 h BRIDGE استفاده میکنیم. L298 میتواند سرعت و جهت موتور DC و استپر موتور را کنترل کند.
رنج جریان 2 آمپر برای هر موتور است. در این جریانها چه بسا باید از HEAT SINK استفاده کرد.
شکل پایههای L298 در شکل زیر نمایان است.
سخت افزار مورد نیاز:
- L298 BRIDGE IC
- DC MOTOR
- ARDUINO MEGA 2560
- BREADBOARD
- 10 * سیم جامپر
شماتیک بالا نشان میدهد که آی سی L298 برای کنترل موتور چگونه متصل شده است.
سه پین ورودی برای هر موتور وجود دارد که شامل ورودی 1 IN1, ورودی دوم IN2 پایه ی ENABLE 1 برای موتور اول و ورودی 3 و ورودی 4 و ENABLE 2 برای موتور دوم است.
تا زمانی که در این آزمایش یک موتور را کنترل میکنیم ما آردوینو را به In1 , in2 ,enable1 آی سی L298 متصل میکنیم.
جدول زیر نشان میدهد که موتور به کدام سمت میچرخد براساس مقادیر in1 , in2
پین in1 از آی سی l298 به پایه 8 اردوینو متصل شده و in2 به پین 9 متصل شده است.
این دو پین دیجیتال آردوینو جهت موتور را مشخص میکنند. پین EN A آی سی به pwm (pin2) آردوینو متصل شده است. این سرعت موتور را کنترل میکند.
برای تنظیم مقادیر پین 8 و 9 آردوینو ما از توابع دیجیتال استفاده میکنیم و برای تنظیم مقادیر پین 2 از توابع آنالوگ استفاده میکنیم.
کد:
const int pwm = 2 ; //initializing pin 2 as pwm
const int in_1 = 8 ;
const int in_2 = 9 ;
//For providing logic to L298 IC to choose the direction of the DC motor
void setup()
{
pinMode(pwm,OUTPUT) ; //we have to set PWM pin as output
pinMode(in_1,OUTPUT) ; //Logic pins are also set as output
pinMode(in_2,OUTPUT) ;
}
void loop()
{
//For Clock wise motion , in_1 = High , in_2 = Low
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,LOW) ;
analogWrite(pwm,255) ;
/*setting pwm of the motor to 255
we can change the speed of rotaion
by chaning pwm input but we are only
using arduino so we are using higest
value to driver the motor */
//Clockwise for 3 secs
delay(3000) ;
//For brake
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,HIGH) ;
delay(1000) ;
//For Anti Clock-wise motion – IN_1 = LOW , IN_2 = HIGH
digitalWrite(in_1,LOW) ;
digitalWrite(in_2,HIGH) ;
delay(3000) ;
//For brake
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,HIGH) ;
delay(1000) ;
}
تنظیمات :
- اتصال تغذیه 5 ولت و زمین آی سی به زمین و تغذیه آردوینو
- اتصال موتور به پین 2 و 3 آی سی
- اتصال IN 1 آی سی به پین 8 آردوینو
- اتصال IN2 آی سی به پین 8 آردوینو
- اتصال sens a آی سی به زمین .
- اتصال EN1 آی سی به پین 2 آردوینو
- اتصال آردوینو با استفاده از کابل usb آردوینو و آپلود کردن برنامه به آردوینو با استفاده از نرم افزار IDE آردوینو
- فراهم کردن تغذیه برد آردوینو با استفاده از منبع تغذیه و باتری و یا کابل USB
موتور ابتدا باید به مدت 3 ثانیه در جهت عقربههای ساعت بچرخد سپس باید به مدت 3 ثانیه در خلاف جهت عقربههای ساعت.