|
我们的小车按照目前程序是输入一个指令,它会一直执行这个指令直到你输入下一个指令,比如按下前进键,小车会一直前进,直到断开电源或者输入另外一个键。求问怎样改程序会使小车当你按这个键的时候执行指令,不按这个键的时候就停止呢??
int INA = 3; //A,B for left motor
int INB = 4;
int INC = 5; //C,D for right motor
int IND = 6;
int ENA = 10;
int ENB = 11;
int ON=13;
void setup()
{
pinMode(INA,OUTPUT);
pinMode(INB,OUTPUT);
pinMode(INC,OUTPUT);
pinMode(IND,OUTPUT);
pinMode(ENA,OUTPUT);
pinMode(ENB,OUTPUT);
pinMode(ON,OUTPUT):
Serial.begin(9600);
}
void loop()
{
while(Serial.available())
{
char c=Serial.read();
if(c=='f')
{
digitalWrite(INA,LOW); //left forward
digitalWrite(INB,HIGH);
analogWrite(ENA,120);
digitalWrite(INC,LOW); //right forward
digitalWrite(IND,HIGH);
analogWrite(ENB,120);
}
else if(c=='b')
{
digitalWrite(INA,HIGH); //left backwark
digitalWrite(INB,LOW);
analogWrite(ENA,120);
digitalWrite(INC,HIGH); //right backwark
digitalWrite(IND,LOW);
analogWrite(ENB,120);
}
else if(c=='r')
{
digitalWrite(INA,LOW); //left forward
digitalWrite(INB,HIGH);
analogWrite(ENA,110);
digitalWrite(INC,LOW);
digitalWrite(IND,HIGH);
analogWrite(ENB,60);
}
else if(c=='l')
{
digitalWrite(INA,LOW); //left backward
digitalWrite(INB,HIGH);
analogWrite(ENA,60);
digitalWrite(INC,LOW); //right forward
digitalWrite(IND,HIGH);
analogWrite(ENB,110);
}
else if(c=='s')
{
digitalWrite(INA,LOW); //left stop
digitalWrite(INB,LOW);
analogWrite(ENA,0);
digitalWrite(INC,LOW); //right stop
digitalWrite(IND,LOW);
analogWrite(ENB,0);
}
else if(c=='n')
{
digitalWrite(ON,HIGH):
}
}
} |
|