int EA = 9;
int IN1 = 8;
int IN2 = 7;
void setup()
{
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
Serial.begin(9600);
}
void loop()
{
if (Serial.available())
{
char s = Serial.read();
if(s =='a')
{
aa();//直流电机正转1秒 暂停一秒 反转一秒
}
else
{
stopMotor(true);
}
}
}
void Motor(boolean reverse)
{
if(reverse) //正转
{
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
}
else //反转
{
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
}
}
void stopMotor(boolean r)//电机停转
{
if (r)
{
analogWrite(EA,0);
}
else
{
analogWrite(EA,255);
}
}
void aa()//先正转1秒停1秒后反转1秒
{
//正转
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
delay(1000);
//暂停一秒
stopMotor(true);
delay(1000);
stopMotor(false);//恢复电机使能端高电平
//反转
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
delay(1000);
// 暂停
stopMotor(true);
delay(1000);
stopMotor(false);
}
我想在键盘上输入一个字符,电机就开始先正转1秒,再暂停一秒,接着反转一秒,可使把程序烧入芯片时,电机的转动及其不规律,求大神指导一下!谢谢啦! |