char getstr;
int in1=12;
int in2=11;
int in3=10;
int in4=9;
int value=50;
//上面定义了板上的4个控制端,12一组,34一组
void _mRight(int pin1int pin2)//当in1和in2中有一个接高位时,电机会向某一方向转动
{
analogWrite(pin1 value);
analogWrite(pin2 value);
digitalWrite(pin1HIGH);
digitalWrite(pin2LOW);
}
void _mLeft(int pin1int pin2)//同上
{
analogWrite(pin1 value);
analogWrite(pin2 value);
digitalWrite(pin1LOW);
digitalWrite(pin2HIGH);
}
void _mStop(int pin1int pin2)//制动
{
digitalWrite(pin1HIGH);
digitalWrite(pin2HIGH);
}
void _mstr(int pin1int pin2int pin3int pin4)
{
digitalWrite(pin1HIGH);
digitalWrite(pin2LOW);
digitalWrite(pin3HIGH);
digitalWrite(pin4LOW);
}
void _mback(int pin1int pin2int pin3int pin4)
{
digitalWrite(pin1LOW);
digitalWrite(pin2HIGH);
digitalWrite(pin3LOW);
digitalWrite(pin4HIGH);
}
void setup()
{
Serial.begin(9600);
pinMode(in1OUTPUT);
pinMode(in2OUTPUT);
pinMode(in3OUTPUT);
pinMode(in4OUTPUT);
//下面程序开始时让控制端都为高电平,电机保持不动。
digitalWrite(in1HIGH);
digitalWrite(in2HIGH);
digitalWrite(in3HIGH);
digitalWrite(in4HIGH);
}
void loop()
{
getstr=Serial.read();
if(getstr=='f')
{
Serial.println("go forward!");
_mStop(in1in2);
_mStop(in3in4);
_mstr(in1in2in3in4);
}
else if(getstr=='b'){
Serial.println("go back!");
_mStop(in1in2);
_mStop(in3in4);
_mback(in1in2in3in4);
}
else if(getstr=='l'){
Serial.println("go left!");
_mStop(in1in2);
_mStop(in3in4);
_mRight(in1in2);
_mLeft(in3in4);
}
else if(getstr=='r'){
Serial.println("go right!");
_mStop(in1in2);
_mStop(in3in4);
_mRight(in3in4);
_mLeft(in1in2);
}
else if(getstr=='s'){
Serial.println("Stop!");
_mStop(in1in2);
_mStop(in3in4);
}
}