18338| 26
|
[讨论] 杯具 L298P 2A直流电机驱动问题 |
我的是4WD移动平台,用L298P 连接了4个直流电机(前轮两只接M2,后轮两只接M1,并联),采用VIN主板直供,UNO电源是9V电池,本来启动正常,然后用万用表测试了一下电压,M2是2V多,M1是3V多,然后再想用万用表测试一下M1口的电流大小。。。结果就杯具了。。。刚连上,万用表闪过一个1.XA的电流,然后小车就停掉。。。 然后就再也无法用UNO的电池供电启动电机了。。。。 PS: USB供电可以启动,驱动板用外接电源也可以启动, 请问有谁知道这个问题是UNO板的问题还是L298P的问题? |
// # // # 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 } 代码贴上。 |
Phoebe 发表于 2014-11-27 11:07 大概的连线就这样。 下面的开关电源其实没用,L298P 跳线接的是VIN,但是测量电压的时候L298P 外接电源是有电压的,跟UNO输入电压一致,9V |
Phoebe 发表于 2014-11-27 13:37 你好,请问少一个BLINK是什么意思呢?我是ARDUINO新手,有些术语还不明白!:lol |
Phoebe 发表于 2014-11-27 15:29 好,我晚点回去试试再贴代码,回头再请教您,谢谢。 |
Phoebe 发表于 2014-11-27 15:29 对了,还有一个现象我刚才忘记说了, 我给UNO板用USB供电,这时候电机转动起来了,然后这个时候在UNO上接上9V电源,再拔掉USB,电机还是可以继续运转的。。。。 奇怪了。 |
Eric 发表于 2014-11-27 16:06 OK。晚点我把面包板和其他连线都补上,其实很简单的,没有复杂电路,上面画的就已经有百分之八十了。。。 |
Phoebe 发表于 2014-11-27 16:06 我在程序里面关闭L灯,发现接通UNO外置电源后它还是在不停闪烁。这个应该证明不是程序问题了。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed