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