杯具 L298P 2A直流电机驱动问题

2014-11-273.3万
AI 快速预览详细 收起
本文讨论了使用L298P驱动板连接4个直流电机时遇到的供电问题。具体表现为M2口电压为2V多,M1口电压为3V多,电流测试时小车停掉。文章详细分析了UNO板和L298P驱动板的可能故障,并提供了具体的排查步骤。通过万用表测试发现M1口电流异常,导致小车停掉的具体故障现象。建议检查UNO板和L298P驱动板的电源连接,确保供电正常。
我的是4WD移动平台,用L298P 连接了4个直流电机(前轮两只接M2,后轮两只接M1,并联),采用VIN主板直供,UNO电源是9V电池,本来启动正常,然后用万用表测试了一下电压,M2是2V多,M1是3V多,然后再想用万用表测试一下M1口的电流大小。。。结果就杯具了。。。刚连上,万用表闪过一个1.XA的电流,然后小车就停掉。。。 然后就再也无法用UNO的电池供电启动电机了。。。。

PS:  USB供电可以启动,驱动板用外接电源也可以启动,

请问有谁知道这个问题是UNO板的问题还是L298P的问题?

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(10)
20060606
20060606
?????????????????????
perpetualy
perpetualy
作者
谢谢大家,我放弃了,估计还是板的问题,反正现在也不是用UNO供电,倒也无所谓了。
hnyzcj
hnyzcj
首先分开检测,分单独测下UNO,如果没有问题的话,再放在一起测L298。先硬件后软件。
我爱小宇宙
我爱小宇宙
难道我真的猜错了...那好吧,明天您上淘宝,到我们的DFRobot 官 方 旗 舰 店,直接找技术人员帮你解答一下吧
我爱小宇宙
我爱小宇宙
也就有可能碰到你前面说的,上电以后车轱辘会转起来的原因,因为D13脚上电会先复位进入boot状态,所有D13脚会一闪一闪,导致小车转起来,不知道我猜的对不对,如果猜的对,你把程序如下改动一下
int E1 = 10;
int M1 = 12;
int E2 = 11;
int M2 = 13;
应该就可以解决你的问题了
perpetualy
perpetualy
作者
// #
// # Editor : Lauren from DFRobot
// # Date : 17.01.2012
// # Product name: Wheel Encoders for DFRobot 3PA and 4WD Rovers
// # Product SKU : SEN0038
// # Description:
// # The sketch for using the encoder on the DFRobot Mobile platform
// # Connection:
// # left wheel encoder -> Digital pin 2
// # right wheel encoder -> Digital pin 3
// #
#define LEFT 0
#define RIGHT 1
long coder[2] = {
0,0};
int lastSpeed[2] = {
0,0};
int E1 = 5;
int M1 = 4;
int E2 = 6;
int M2 = 7;
int BOARDLED = 13;
void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(BOARDLED, OUTPUT);
Serial.begin(9600); //init the Serial port to print the data
attachInterrupt(LEFT, LwheelSpeed, CHANGE); //init the interrupt mode for the digital pin 2
attachInterrupt(RIGHT, RwheelSpeed, CHANGE); //init the interrupt mode for the digital pin 3
}
void loop()
{
digitalWrite(BOARDLED, LOW);
int value = 250;
//for(value = 0 ; value <= 255; value+=5)
{
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, value); //PWM调速
analogWrite(E2, value); //PWM调速
delay(10);
PrintSpeed();
}
}
void PrintSpeed()
{
static unsigned long timer = 0; //print manager timer
if(millis() - timer > 80){
Serial.print("Coder value: ");
Serial.print(coder[LEFT]);
Serial.print("[Left Wheel] ");
Serial.print(coder[RIGHT]);
Serial.println("[Right Wheel]");
lastSpeed[LEFT] = coder[LEFT]; //record the latest speed value
lastSpeed[RIGHT] = coder[RIGHT];
coder[LEFT] = 0; //clear the data buffer
coder[RIGHT] = 0;
timer = millis();
}
}
void LwheelSpeed()
{
coder[LEFT] ++; //count the left wheel encoder interrupts
}
void RwheelSpeed()
{
coder[RIGHT] ++; //count the right wheel encoder interrupts
}
代码贴上。
perpetualy
perpetualy
作者
回复我爱小宇宙
我的板是图1哦。
我爱小宇宙
我爱小宇宙回复perpetualy
有一种可能不知道我猜的对不对,到你手里的[font=微软雅黑, Verdana, Arial]L298P双路2A直流电机驱动是新版还是老板[/font]
[font=微软雅黑, Verdana, Arial]图1

[/font]

[font=微软雅黑, Verdana, Arial]图2

[/font]
[font=微软雅黑, Verdana, Arial]你能确定是图1还是图2吗?如果是图2 的话,你的软件程序有错了,因为图2的控制脚是用到D10 D11 D12 D13的脚[/font]
我爱小宇宙
我爱小宇宙
恩恩,您发上去后我们好做判断是不是硬件问题
perpetualy
perpetualy
作者
回复我爱小宇宙
这是另外一块,加上上面那块,全部在这里了。
这部分是编码器
phoebe.wang40
phoebe.wang40
连线图看着没有问题,你给UNO少一个Blink进去看看,UNO是否还正常工作。
teateattt
teateattt回复perpetualy
正常,板子9V时供电不足,usb供电足,电机用手转一下就动了
perpetualy
perpetualy
作者
回复phoebe.wang40
我在程序里面关闭L灯,发现接通UNO外置电源后它还是在不停闪烁。这个应该证明不是程序问题了。
共10条回复,已加载2条,点击查看更多共10条回复,已加载全部
perpetualy
perpetualy
作者
你好我用的是这个,SKU:ROB0025,电路图稍等
phoebe.wang40
phoebe.wang40
请问您用的是哪个4WD平台?L298的电是另外供的吗?,可否上个连线图,这样好看看是哪里的问题
perpetualy
perpetualy
作者
回复phoebe.wang40
有个地方画错了。
perpetualy
perpetualy
作者
回复phoebe.wang40
哦,对了,L298P 是直插 UNO。
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
- 没有更多了 -