做的红外避障小车,小车只直行没有左右转弯,求助!
代码如下:
int Left_go=8;
int Left_back=9;
int Right_go=6;
int Right_back=7;
int MotorLPWM=5;
int MotorRPWM=10;
const int SensorRight_2 = A4;
const int SensorLeft_2 = A5;
int SL_2;
int SR_2;
void setup() {
digitalWrite(MotorRPWM,HIGH);
digitalWrite(MotorLPWM,HIGH);
pinMode(Left_go,OUTPUT);
pinMode(Left_back,OUTPUT);
pinMode(Right_go,OUTPUT);
pinMode(Right_back,OUTPUT);
pinMode(SensorRight_2,INPUT);
pinMode(SensorLeft_2,INPUT);
}
void loop() {
digitalWrite(Left_go,HIGH);
digitalWrite(Right_go,HIGH);
SR_2=digitalRead(SensorRight_2);
SL_2=digitalRead(SensorLeft_2);
if(SL_2==HIGH&SR_2==LOW)
Left;
else if(SL_2==LOW&SR_2==HIGH)
Right;
else
digitalWrite(Left_go,HIGH);
digitalWrite(Right_go,HIGH);
}
void Left(int time){
digitalWrite(Right_go,HIGH);
digitalWrite(Right_back,LOW);
analogWrite(Right_go,200);
analogWrite(Right_back,0);
digitalWrite(Left_go,LOW);
digitalWrite(Left_back,HIGH);
analogWrite(Left_go,0);
analogWrite(Left_back,200);
delay(time*100);
}
void Right(int time){
digitalWrite(Left_go,HIGH);
digitalWrite(Left_back,LOW);
analogWrite(Left_go,200);
analogWrite(Left_back,0);
digitalWrite(Right_go,LOW);
digitalWrite(Right_back,HIGH);
analogWrite(Right_go,0);
analogWrite(Right_back,200);
delay(time*100);
}
代码如下:
int Left_go=8;
int Left_back=9;
int Right_go=6;
int Right_back=7;
int MotorLPWM=5;
int MotorRPWM=10;
const int SensorRight_2 = A4;
const int SensorLeft_2 = A5;
int SL_2;
int SR_2;
void setup() {
digitalWrite(MotorRPWM,HIGH);
digitalWrite(MotorLPWM,HIGH);
pinMode(Left_go,OUTPUT);
pinMode(Left_back,OUTPUT);
pinMode(Right_go,OUTPUT);
pinMode(Right_back,OUTPUT);
pinMode(SensorRight_2,INPUT);
pinMode(SensorLeft_2,INPUT);
}
void loop() {
digitalWrite(Left_go,HIGH);
digitalWrite(Right_go,HIGH);
SR_2=digitalRead(SensorRight_2);
SL_2=digitalRead(SensorLeft_2);
if(SL_2==HIGH&SR_2==LOW)
Left;
else if(SL_2==LOW&SR_2==HIGH)
Right;
else
digitalWrite(Left_go,HIGH);
digitalWrite(Right_go,HIGH);
}
void Left(int time){
digitalWrite(Right_go,HIGH);
digitalWrite(Right_back,LOW);
analogWrite(Right_go,200);
analogWrite(Right_back,0);
digitalWrite(Left_go,LOW);
digitalWrite(Left_back,HIGH);
analogWrite(Left_go,0);
analogWrite(Left_back,200);
delay(time*100);
}
void Right(int time){
digitalWrite(Left_go,HIGH);
digitalWrite(Left_back,LOW);
analogWrite(Left_go,200);
analogWrite(Left_back,0);
digitalWrite(Right_go,LOW);
digitalWrite(Right_back,HIGH);
analogWrite(Right_go,0);
analogWrite(Right_back,200);
delay(time*100);
}