//一共4个传感器,从左到右分别为D 2,1,3,4引脚
int Left_f = 8;
int Left_s = 7;
int Right_f = 2;
int Right_s = 4;
int Left_go = 6;
int Right_go = 5;
void go_straight() {
digitalWrite(Left_f, HIGH);
digitalWrite(Left_s, LOW);
digitalWrite(Right_f, HIGH);
digitalWrite(Right_s, LOW);
analogWrite(Left_go, 110);
analogWrite(Right_go, 110);
}
void Stop() {
digitalWrite(Left_f, LOW);
digitalWrite(Left_s, LOW);
digitalWrite(Right_f, LOW);
digitalWrite(Right_s, LOW);
analogWrite(Left_go, 0);
analogWrite(Right_go, 0);
}
void turn_left() {
digitalWrite(Left_f, LOW);
digitalWrite(Left_s, HIGH);
digitalWrite(Right_f, HIGH);
digitalWrite(Right_s, LOW);
analogWrite(Left_go, 0);
analogWrite(Right_go, 110);
}
void turn_right() {
digitalWrite(Left_f, HIGH);
digitalWrite(Left_s, LOW);
digitalWrite(Right_f, LOW);
digitalWrite(Right_s, HIGH);
analogWrite(Left_go, 110);
analogWrite(Right_go, 0);
}
void back() {
digitalWrite(Left_f, LOW);
digitalWrite(Left_s, HIGH);
digitalWrite(Right_f, LOW);
digitalWrite(Right_s, HIGH);
analogWrite(Left_go, 110);
analogWrite(Right_go, 110);
}
void turn_left_stop() {
digitalWrite(Left_f, LOW);
digitalWrite(Left_s, HIGH);
digitalWrite(Right_f, HIGH);
digitalWrite(Right_s, LOW);
analogWrite(Left_go, 110);
analogWrite(Right_go, 110);
}
void turn_right_stop() {
digitalWrite(Left_f, HIGH);
digitalWrite(Left_s, LOW);
digitalWrite(Right_f, LOW);
digitalWrite(Right_s, HIGH);
analogWrite(Left_go, 110);
analogWrite(Right_go, 110);
}
void Begin() {
while (digitalRead(A0));
while (!digitalRead(A0)) {
delay(10);
if (digitalRead(A0) == 0) {
delay(100);
while (!digitalRead(A0));
}
}
}
void setup() {
// put your setup code here, to run once:
pinMode(Left_f, OUTPUT);
pinMode(Left_s, OUTPUT);
pinMode(Right_f, OUTPUT);
pinMode(Right_s, OUTPUT);
pinMode(Left_go, OUTPUT);
pinMode(Right_go, OUTPUT);
pinMode(A0, INPUT);
pinMode(A2, INPUT);
pinMode(A1, INPUT);
pinMode(A3, INPUT);
pinMode(A4, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
Begin();
while (1) {
if (digitalRead(A2) && !digitalRead(A1) && !digitalRead(A3) && digitalRead(A4) ) {
go_straight();
}
else if (digitalRead(A2) && !digitalRead(A1) && digitalRead(A3) && digitalRead(A4)) {
turn_left();
}
else if (digitalRead(A2) && digitalRead(A1) && !digitalRead(A3) && digitalRead(A4)) {
turn_right();
}
else if (!digitalRead(A2) && digitalRead(A1) && digitalRead(A3) && digitalRead(A4)) {
turn_left();
}
else if (digitalRead(A2) && digitalRead(A1) && digitalRead(A3) && !digitalRead(A4)) {
turn_right();
}
else if (!digitalRead(A2) && !digitalRead(A1) && !digitalRead(A3) && digitalRead(A4)) {
delay(30);
turn_left_stop();
}
else if (digitalRead(A2) && !digitalRead(A1) && !digitalRead(A3) && !digitalRead(A4)) {
delay(30);
turn_right_stop();
}
else if (!digitalRead(A2) && !digitalRead(A1) && digitalRead(A3) && digitalRead(A4)) {
delay(30);
turn_left_stop();
}
else if (!digitalRead(A2) && digitalRead(A1) && !digitalRead(A3) && digitalRead(A4)) {
delay(30);
turn_left_stop();
}
else if (!digitalRead(A2) && !digitalRead(A1) && !digitalRead(A3) && digitalRead(A4)) {
delay(30);
turn_left_stop();
}
else if (digitalRead(A2) && !digitalRead(A1) && digitalRead(A3) && !digitalRead(A4)) {
delay(30);
turn_right_stop();
}
else if (digitalRead(A2) && digitalRead(A1) && !digitalRead(A3) && !digitalRead(A4)) {
delay(30);
turn_right_stop();
}
else if (digitalRead(A2) && !digitalRead(A1) && !digitalRead(A3) && !digitalRead(A4)) {
delay(30);
turn_right_stop();
}
else if (!digitalRead(A2) && !digitalRead(A1) && !digitalRead(A3) && !digitalRead(A4)) {
go_straight();
}
}
}
day -4 红外寻迹小车测试2 -arduino
最新推荐文章于 2022-06-21 19:47:17 发布