1、L298N介紹
先來講講電機驅動,驅動一般使用L298N,L298N 是一種雙H橋電機驅動芯片,其中每個H橋可以提供2A的電流,功率部分的供電電壓范圍是2.5-48v,邏輯部分5v供電,接受5vTTL電平。現在有很多成品模塊賣,而且價格也不貴,很適合大家diy智能小車。L298N模塊多數都是長下邊這個樣子,這里要注意,L298N模塊12v是給模塊供電,5v是輸出,意思就是L298N的模塊接入12V電源,同時輸出5V電源可以給其他模塊供電。
圖:
接線
輸出A和輸出B: 連接小車電機
12V + : 接電池盒子的正極
GND: 接電池盒子的負極(如連了USB進行調試時,不接方形電池的DC線扣的原型)
5v+: 因為板載5V是使能的,通過杜邦線連接方形電池的DC線扣的方形部分
IN1 ~ IN4: 按順序接 Anrduin UNO 2,3,4,5 pin 口
需要注意的一點是arduino必須和驅動板為同一電壓源輸入,例如我這里就是12v的電池輸入,當然除了DC口也可以通過arduino上的vim口輸入(在兩個接地口下方)
或者
如果L298N和arduino使用不同的電源供電的話,那么需要將arduino的GND和模塊上的GND連接在一起,只有這樣單片機上過來的邏輯信號才有個參考0點。此點非常重要
我的代碼是:
int in1 = 2;
int in2 = 3;
int in3 = 4;
int in4 = 5;
int row_speed = 100; //輪子的轉速
void setup() {
// put your setup code here, to run once:
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
car_stop();
}
void loop() {
// put your main code here, to run repeatedly:
go();
delay(2000);
back();
delay(2000);
go_left();
delay(2000);
go_right();
delay(2000);
car_stop();
delay(2000);
}
void car_stop()
{
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
void go()
{
digitalWrite(in1,HIGH);
analogWrite(in2,row_speed);
//digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
//digitalWrite(in4,HIGH);
analogWrite(in4,row_speed);
}
void back()
{
digitalWrite(in1,LOW);
analogWrite(in2,row_speed);
digitalWrite(in3,HIGH);
analogWrite(in4,row_speed);
}
void go_left()
{
digitalWrite(in1,HIGH);
analogWrite(in2,row_speed);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
void go_right()
{
digitalWrite(in1,LOW);
analogWrite(in2,LOW);
digitalWrite(in3,HIGH);
analogWrite(in4,row_speed);
}
References
- arduino產生pwm波+l298n驅動小車電機的三種方式 擔心車速塊,那么3,5 的2個就可以通過PWM波的方式減慢車速
- Arduino 平衡車 MPU6050 L298N
- Arduino+L298N小車實例教程
- 微型直流電機控制基本方法 L298N模塊