|
各位先进好,我要用L293D ESP12E Lua电机驱动板,控制我的小车时,遇到2个问题:
1.因为我的小车,为了要在前轮不转动时,可以自动回正,所以前轮有加弹簧,我用电机驱动板,给前轮马达5V时,前轮马达会因弹簧而卡住,导致电机驱动板由5V,降为0V,且马达卡住时,电机驱动板会发出声音,过几十秒后,电机驱动板就冒白烟了。
所以有2个问题要请教各位先进:
1.我要如何做,让前轮马达可以左右转动,而不会因弹簧而卡住呢?
2.当马达卡住时,要如何做,电机驱动板才不会由5V,降为0V,而导致发出声音,冒白烟烧掉呢?
以下是我的程序代码:
*/
/******************************************************************************************
电机的引脚定义及接线说明
******************************************************************************************/
int pwm1 = 5;//PWMA(电机A转速)
int dir1 = 0;//DIRA(电机A方向)
int pwm2 = 4;//PWMB(电机B转速)
int dir2 = 2;//DIRB(电机B方向)
/******************************************************************************************
埠初始化
******************************************************************************************/
void setup()
{
pinMode(dir1, OUTPUT); //定义数字14 接口为输出接口
pinMode(dir2, OUTPUT); //定义数字15 接口为输出接口
}
/******************************************************************************************
小车前进
******************************************************************************************/
void front_run(int value) //前进
{
digitalWrite(dir1, HIGH);
analogWrite(pwm1, value); //PWM Speed Control
delay(30);
}
/******************************************************************************************
小车后退
******************************************************************************************/
void back_run(int value) //后退
{
digitalWrite(dir1, LOW);
analogWrite(pwm1, value); //PWM Speed Control
delay(30);
}
/******************************************************************************************
小车左转
******************************************************************************************/
void left_run(int value) //左转
{
digitalWrite(dir2, HIGH);
analogWrite(pwm2 , value); //PWM Speed Control
delay(30);
}
/******************************************************************************************
小车右转
******************************************************************************************/
void right_run(int value) //右转
{
digitalWrite(dir2, LOW);
analogWrite(pwm2 , value); //PWM Speed Control
delay(30);
}
/******************************************************************************************
主程序
******************************************************************************************/
void loop()
{
front_run(100); //前进
delay(1000);
// back_run(255); //后退
// delay(1000);
left_run(255); //左转
delay(1000);
// right_run(100); //右转
// delay(1000);
}
/******************************************************************************************
END
******************************************************************************************/
|
|