L298N沒動作
本帖最后由 ro510ck 于 2014-2-9 21:22 编辑請問如果說L298N的模組在執行程式時兩邊的輸出指示燈有亮但馬達會發出聲音沒動作ENA和ENB接上5V,用電表量測接上馬達時的電壓大概0.5~1V左右拔掉馬達後測量大約4~5v這樣是代表我的L298N掛了嗎??
L298N模組是用9V電池
ARDUINO UNO R3板子是用電腦的USB供電
L298N的GND有接到ARDUINO的GND
以下是我用來測試的程式
/* Input for motorA:
IN1 IN2 Action
LOW LOW Motor Stop
HIGH LOW Motor moves forward
LOW HIGH Motor moves backward
HIGH HIGH Motor Stop
*/
const int motorIn1 = 3;
const int motorIn2 = 4;
const int motorIn3 = 5;
const int motorIn4 = 6;
const int DELAY = 1000;
void setup()
{
pinMode(motorIn1, OUTPUT);
pinMode(motorIn2, OUTPUT);
pinMode(motorIn3, OUTPUT);
pinMode(motorIn4, OUTPUT);
}
void loop()
{
selfTest();
}
void selfTest()
{
forward();
delay(DELAY);
motorstop(); delay(500);
backward();
delay(DELAY);
motorstop(); delay(500);
right();
delay(DELAY);
motorstop(); delay(500);
left();
delay(DELAY);
motorstop(); delay(500);
}
void motorstop()
{
digitalWrite(motorIn1, LOW);
digitalWrite(motorIn2, LOW);
digitalWrite(motorIn3, LOW);
digitalWrite(motorIn4, LOW);
}
void forward()
{
digitalWrite(motorIn1, HIGH);
digitalWrite(motorIn2, LOW);
digitalWrite(motorIn3, HIGH);
digitalWrite(motorIn4, LOW);
}
void backward()
{
digitalWrite(motorIn1, LOW);
digitalWrite(motorIn2, HIGH);
digitalWrite(motorIn3, LOW);
digitalWrite(motorIn4, HIGH);
}
// Let right motor keep running, but stop left motor
void right()
{
digitalWrite(motorIn1, HIGH);
digitalWrite(motorIn2, LOW);
digitalWrite(motorIn3, LOW);
digitalWrite(motorIn4, LOW);
}
// Let left motor keep running, but stop right motor
void left()
{
digitalWrite(motorIn1, LOW);
digitalWrite(motorIn2, LOW);
digitalWrite(motorIn3, HIGH);
digitalWrite(motorIn4, LOW);
} 没有使能吧 ENA(B)也要接到单片机上 您有共地嗎??
如果沒有共地,一啟動就會擊穿橋式電路,L298N就報銷了。{:3_58:} 您已經有共地了喔,抱歉,一下沒看到,請問您有成功讓他動過嗎??是買回來第一次試就沒過,還是有動過幾次?? 隨風大俠 发表于 2014-2-4 21:51 static/image/common/back.gif
您已經有共地了喔,抱歉,一下沒看到,請問您有成功讓他動過嗎??是買回來第一次試就沒過,還是有動過幾次??
這個是賣家所提供的測試程式,剛買回來有動過幾次部過隔天在用別的程式測試後就無法動作,至於現在在使用這個程式運行時馬達會發出類似氣球洩氣的聲音 294086306 发表于 2014-2-4 21:35 static/image/common/back.gif
没有使能吧 ENA(B)也要接到单片机上
這個我有查過,不過我用的程式是讓ENA(B)採高訊號只是在測試說板子和馬達是否正常運作 或许是外接输入功率不足吧。。。感觉没什么不对的。。。 L298换个电源试下。或者测量接上电机后的电池电压看下。 建议不要用arduino的5V电源!我的小车用的是12V的外接电源,L298N是从arduino的VIN口中取用电源,
电源还算稳定!并且arduino的稳压模块发热也不大
我写过一个电机测试程序,你试一下//L298N_A
int M1_1 = 2;
int M1_2 = 3;
int M2_1 = 4;
int M2_2 = 7;
//L298N_B
int M3_1 = 8;
int M3_2 = 9;
int M4_1 = 10;
int M4_2 = 11;
int val;
void setup()
{
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7,OUTPUT);
pinMode(4,OUTPUT);
pinMode(3,OUTPUT);
pinMode(2,OUTPUT);
Serial.begin(9600);
}
void loop()
{
val=Serial.read();
if(val=='w')
{
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
digitalWrite(7,HIGH);
digitalWrite(4,LOW);
digitalWrite(3,HIGH);
digitalWrite(2,LOW);
}
if(val=='s')
{
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
digitalWrite(7,LOW);
digitalWrite(4,HIGH);
digitalWrite(3,LOW);
digitalWrite(2,HIGH);
}
if(val=='d')
{
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
}
if(val=='a')
{
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
}
if(val=='u')
{
digitalWrite(11,LOW);
digitalWrite(10,LOW);
digitalWrite(9,LOW);
digitalWrite(8,LOW);
digitalWrite(7,LOW);
digitalWrite(4,LOW );
digitalWrite(3,LOW);
digitalWrite(2,LOW);
}
} 上边那个是控制4路电机通过计算机串口控制小车的程序!当时调试时写的!
你可以根据你的需要注释掉不需要的!
用IDE下载后,打开串口调试工具,,a d w s控制
用到哪些端口看定义! 潇洒哥 发表于 2014-2-6 10:24 static/image/common/back.gif
建议不要用arduino的5V电源!我的小车用的是12V的外接电源,L298N是从arduino的VIN口中取用电源,
电源还算 ...
感謝大大問題已經找到了!!!發現是電源的問題 马到成功!
页:
[1]