极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 28183|回复: 4

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

[复制链接]
发表于 2020-11-28 11:17:48 | 显示全部楼层 |阅读模式
各位先进好,我要用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
******************************************************************************************/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2020-12-9 10:44:26 | 显示全部楼层
装限位检测开关。
回复 支持 反对

使用道具 举报

发表于 2020-12-9 10:50:09 | 显示全部楼层
实在不行就程序加计数器,转几秒钟就停止。
评估一下转向所需时间,比如左转需要1秒钟,分一百个周期完成,达到99就只能反转,反转到-99也也只能正转。
回复 支持 反对

使用道具 举报

发表于 2020-12-13 17:30:46 | 显示全部楼层
转向自动回正还是用专门的结构比较靠谱,参考 “乐高 伺服马达88004” 。虽然创造是好的,乱加弹簧就是瞎搞。
回复 支持 反对

使用道具 举报

发表于 2020-12-22 13:29:01 | 显示全部楼层
转向用舵机就可以了呀,弹簧都不用了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 03:05 , Processed in 0.043484 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表