با اتصال آی سی پل 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 ثانیه در خلاف جهت عقربه های ساعت
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
با سلام
چجوری میشه اینو ریموت وصل کرد؟
اگر موتور 24 ولت داشته یاشیم میتونیم از منبع تغذیه 24 ولت استفاده کنیم؟
سلام برای کل مدار که نه برای L298 باید اینکار را بکنی که اول از همه باید بررسی کنه که آیا L298 جواب میدهد یا نه. تا جایی که من دیدم OPERATING SUPPLY VOLTAGE UP TO 46 V ئشتیبانی میکنه ولی بازم بهتره خودت دقیق چک کنی و نیم نگاهی به دیتاشیت بندازی