<code class="lang-text">/*带调速*/
char getstr;
int in1=3;
int in2=4;
int in3=7;
int in4=8;
int n=0;
int inEN1=9;
int inEN2=10;
//上面定义了板上的4个控制端,1、2一组,3、4一组
void _mRight(int pin1,int pin2)//当in1和in2中有一个接高位时,电机会向某一方向转动
{
digitalWrite(pin1,HIGH);
digitalWrite(pin2,LOW);
}
void _mLeft(int pin1,int pin2)//同上
{
digitalWrite(pin1,LOW);
digitalWrite(pin2,HIGH);
}
void _mStop(int pin1,int pin2)//紧急制动,实际就是将电机两个端短接了
{
digitalWrite(pin1,HIGH);
digitalWrite(pin2,HIGH);
}
void setup()
{
Serial.begin(9600);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
pinMode(inEN1,OUTPUT);
pinMode(inEN2,OUTPUT);
//下面程序开始时让控制端都为高电平,电机保持不动。
digitalWrite(in1,HIGH);
digitalWrite(in2,HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in4,HIGH);
}
void loop()
{
getstr=Serial.read();
if(getstr=='8')
{
Serial.println("go forward!");
_mStop(in1,in2);
_mStop(in3,in4);
_mRight(in1,in2);
_mRight(in3,in4);
}
else if(getstr=='2'){
Serial.println("go back!");
_mStop(in1,in2);
_mStop(in3,in4);
_mLeft(in1,in2);
_mLeft(in3,in4);
}
else if(getstr=='4'){
Serial.println("go left!");
_mStop(in1,in2);
_mStop(in3,in4);
_mRight(in1,in2);
_mLeft(in3,in4);
}
else if(getstr=='6'){
Serial.println("go right!");
_mStop(in1,in2);
_mStop(in3,in4);
_mRight(in3,in4);
_mLeft(in1,in2);
}
else if(getstr=='1'){
Serial.println("growth!");
n=n+85; //每次累加值为5
if (n>=255)
n=255;
analogWrite(9,n);
analogWrite(10,n);
}
else if(getstr=='0'){
Serial.println("Slow down!");
n=n-85;
if (n<=0) n="0;" analogwrite(9,n); analogwrite(10,n); } else if(getstr="='5'){" serial.println("stop!"); _mstop(in1,in2); _mstop(in3,in4); } }< code></=0)></code>
200字以内,仅用于支线交流,主线讨论请采用回复功能。