Tarose 发表于 2020-11-28 11:17:48

L293D ESP12E Lua电机驱动板冒白烟(马达卡住)

各位先进好,我要用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
******************************************************************************************/

sbndjgg 发表于 2020-12-9 10:44:26

装限位检测开关。

sbndjgg 发表于 2020-12-9 10:50:09

实在不行就程序加计数器,转几秒钟就停止。
评估一下转向所需时间,比如左转需要1秒钟,分一百个周期完成,达到99就只能反转,反转到-99也也只能正转。

kpj001 发表于 2020-12-13 17:30:46

转向自动回正还是用专门的结构比较靠谱,参考 “乐高 伺服马达88004” 。虽然创造是好的,乱加弹簧就是瞎搞。

托米 发表于 2020-12-22 13:29:01

转向用舵机就可以了呀,弹簧都不用了
页: [1]
查看完整版本: L293D ESP12E Lua电机驱动板冒白烟(马达卡住)