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