Arduino連接L298n驅動板驅動小車的電機


1、L298N介紹

先來講講電機驅動,驅動一般使用L298N,L298N 是一種雙H橋電機驅動芯片,其中每個H橋可以提供2A的電流,功率部分的供電電壓范圍是2.5-48v,邏輯部分5v供電,接受5vTTL電平。現在有很多成品模塊賣,而且價格也不貴,很適合大家diy智能小車。L298N模塊多數都是長下邊這個樣子,這里要注意,L298N模塊12v是給模塊供電,5v是輸出,意思就是L298N的模塊接入12V電源,同時輸出5V電源可以給其他模塊供電。
圖:
uploads/200214/001.jpg

接線

輸出A和輸出B: 連接小車電機

12V + : 接電池盒子的正極

GND: 接電池盒子的負極(如連了USB進行調試時,不接方形電池的DC線扣的原型)

5v+: 因為板載5V是使能的,通過杜邦線連接方形電池的DC線扣的方形部分

IN1 ~ IN4: 按順序接 Anrduin UNO 2,3,4,5 pin 口

uploads/200214/IMG_20200214_214803.jpg

需要注意的一點是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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM