L298N是專用驅動集成電路,屬於H橋集成電路,與L293D的差別是起輸出電流增大,功率增強。其輸出電流為2A,最高電流4A,最高工作電壓50V,可以驅動感性負載,如大功率直流電機,步進電機,電磁閥等等,特別是其輸入端可以與單片機直接相連,從而很方便地受單片機控制。當驅動直流電機時,可以直接控制步進電機,並可以實現電機的正轉和反轉,實現此功能只需要改變輸入端的邏輯電平。為了避免電機對單片機的干擾,本模塊加入光耦,進行光電隔離,從而使系統能夠穩定可靠的工作。

Output A:接DC 電機 1 或步進電機的 A+和 A-;
Output B:接DC 電機 2 或步進電機的 B+和 B-;
5V Enable:如果使用輸入電源大於12V的電源,請將跳線帽移除。輸入電源小於12V時短接可以提供5V電源輸出;
+5V Power:當輸入電源小於12V時且5V Enable處於短接狀態,可以提供+5V電源輸出;(實際位置請參考驅動板上的標注)
Power Gnd:電源地;
+12V Power:連接電機電源,最大35V。輸入電壓大於12V時,為確保安全,請去除 5V Enble 針腳上的跳線帽;(實際位置請參考驅動板上的標注)
A/B Enble:可用於輸入PWM脈寬調制信號對電機進行調速控制。(如果無須調速可將兩引腳接5V,使電機工作在最高速狀態,既將短接帽短接)實現電機正反轉就更容易了,輸入信號端IN1接高電平輸入端IN2接低電平,電機M1正轉。(如果信號端IN1接低電平, IN2接高電平,電機M1反轉。)控制另一台電機是同樣的方式,輸入信號端IN3接高電平,輸入端IN4接低電平,電機M2正轉。(反之則反轉),PWM信號端A控制M1調速,PWM信號端B控制M2調速。可參考下圖表:


測試程序如下,USB接口連接電腦通過IDE上傳程序后,先拔除USB數據線,再根據上圖連接電路即可開始測試。

測試代碼:
int pinI1=9;//定義I1接口
int pinI2=8;//定義I2接口
int speedpin=10;//定義EA(PWM調速)接口
int pinI3=7;//定義I3接口
int pinI4=6;//定義I4接口
int speedpin1=5;//定義EB(PWM調速)接口
void setup()
{
pinMode(pinI1,OUTPUT);
pinMode(pinI2,OUTPUT);
pinMode(speedpin,OUTPUT);
pinMode(pinI3,OUTPUT);
pinMode(pinI4,OUTPUT);
pinMode(speedpin1,OUTPUT);
}
void loop()
{
//直走
analogWrite(speedpin,100);//輸入模擬值進行設定速度
analogWrite(speedpin1,100);
digitalWrite(pinI4,LOW);//使直流電機(右)逆時針轉
digitalWrite(pinI3,HIGH);
digitalWrite(pinI1,LOW);//使直流電機(左)順時針轉
digitalWrite(pinI2,HIGH);
delay(2000);
//后退
analogWrite(speedpin,100);//輸入模擬值進行設定速度
analogWrite(speedpin1,100);
digitalWrite(pinI4,HIGH);//使直流電機(右)順時針轉
digitalWrite(pinI3,LOW);
digitalWrite(pinI1,HIGH);//使直流電機(左)逆時針轉
digitalWrite(pinI2,LOW);
delay(2000);
//左轉
analogWrite(speedpin,60);//輸入模擬值進行設定速度
analogWrite(speedpin1,60);
digitalWrite(pinI4,LOW);//使直流電機(右)逆時針轉
digitalWrite(pinI3,HIGH);
digitalWrite(pinI1,HIGH);//使直流電機(左)逆時針轉
digitalWrite(pinI2,LOW);
delay(2000);
//右轉
analogWrite(speedpin,60);//輸入模擬值進行設定速度
analogWrite(speedpin1,60);
digitalWrite(pinI4,HIGH);//使直流電機(右)順時針轉
digitalWrite(pinI3,LOW);
digitalWrite(pinI1,LOW);//使直流電機(左)順時針轉
digitalWrite(pinI2,HIGH);
delay(2000);
//剎車
digitalWrite(pinI4,HIGH);//使直流電機(右)剎車
digitalWrite(pinI3,HIGH);
digitalWrite(pinI1,HIGH);//使直流電機(左)剎車
digitalWrite(pinI2,HIGH);
delay(2000);
原文鏈接:https://blog.csdn.net/m0_46234896/article/details/113010803

