外接12V电源,和arduino共地,电机用的是普通小电机,但是通电以后测试发现通过arduino发出两路电机都正转的指令之后两路都无法启动,拆掉一路负载测量发现空载这侧电压11v多快12V,而另外一侧连接负载的1v不到,拆除两路负载单独测量两侧电压均为11.5v以上。请问这个是什么原因?代码应该没有问题,L298N换了两块都是同样的问题。电源使用的是12V 3A输出的电源。
希望能帮忙分析下原因,谢谢。
代码如下:
char getstr;
int in1=9;
int in2=10;
int in3=11;
int in4=12;
//上面定义了板上的4个控制端,12一组,34一组
#include <Stepper.h>
const int stepsPerRevolution = 500;
Stepper myStepper(stepsPerRevolution, 5, 7, 6, 8);
//脖子
void _mRight(int pin1,int pin2)//当in1和in2中有一个接高位时,电机会向某一方向转动
{
digitalWrite(pin1,HIGH);
digitalWrite(pin2,LOW);
}
void _mLeft(int pin1,int pin2)//同上
{
digitalWrite(pin1,LOW);
digitalWrite(pin2,HIGH);
}
void _mStop(int pin1,int pin2)//紧急制动,实际就是将电机两个端短接了
{
digitalWrite(pin1,HIGH);
digitalWrite(pin2,HIGH);
}
void setup()
{
Serial.begin(9600);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
//下面程序开始时让控制端都为高电平,电机保持不动。
digitalWrite(in1,HIGH);
digitalWrite(in2,HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in4,HIGH);
myStepper.setSpeed(60);
Serial.begin(9600);
}
void loop()
{
/*Serial.println("shun");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("ni");
myStepper.step(-stepsPerRevolution);
delay(500); */
getstr=Serial.read();
if(getstr=='f')
{
Serial.println("go forward!");
_mStop(in1,in2);
_mStop(in3,in4);
_mRight(in1,in2);
_mRight(in3,in4);
}
else if(getstr=='b'){
Serial.println("go back!");
_mStop(in1,in2);
_mStop(in3,in4);
_mLeft(in1,in2);
_mLeft(in3,in4);
}
else if(getstr=='l'){
Serial.println("go left!");
_mStop(in1,in2);
_mStop(in3,in4);
_mRight(in1,in2);
}
else if(getstr=='r'){
Serial.println("go right!");
_mStop(in1,in2);
_mStop(in3,in4);
_mRight(in3,in4);
}
else if(getstr=='s'){
Serial.println("Stop!");
_mStop(in1,in2);
_mStop(in3,in4);
}
if(getstr=='a'){
Serial.println("Head Right");
myStepper.step(2000);
}
if(getstr=='d'){
Serial.println("Head Left");
myStepper.step(-250);
}
}
|