#define motor_A1 2 #define motor_A2 3 #define motor_Apwm 9 #define motor_B1 4 #define motor_B2 5 #define motor_Bpwm 10 #define edge_sensor 2 #define distance_sensor 17 int x=0; int edge_reading; int distance_reading; int control = 0; int spin=0; void setup(){ pinMode(motor_A1, OUTPUT); pinMode(motor_A2, OUTPUT); pinMode(motor_Apwm, OUTPUT); pinMode(motor_B1, OUTPUT); pinMode(motor_B2, OUTPUT); pinMode(motor_Bpwm, OUTPUT); pinMode(edge_sensor, INPUT); pinMode(distance_sensor, INPUT); digitalWrite(distance_sensor, HIGH); } void loop(){ digitalWrite(motor_Bpwm, HIGH); digitalWrite(motor_Apwm, HIGH); digitalWrite(motor_A1, LOW); digitalWrite(motor_A2, HIGH); digitalWrite(motor_B1, HIGH); digitalWrite(motor_B2, LOW); delay(2); digitalWrite(motor_Bpwm, LOW); digitalWrite(motor_Apwm, LOW); delay(5); while(digitalRead(distance_sensor)==0 && analogRead(edge_sensor)<500){ digitalWrite(motor_Bpwm, HIGH); digitalWrite(motor_Apwm, HIGH); digitalWrite(motor_A1, HIGH); digitalWrite(motor_A2, LOW); digitalWrite(motor_B1, HIGH); digitalWrite(motor_B2, LOW); delay(5); digitalWrite(motor_Bpwm, LOW); digitalWrite(motor_Apwm, LOW); delay(3); } if(analogRead(edge_sensor)>700){ if(digitalRead(distance_sensor)==0){ while(x<60){ digitalWrite(motor_Bpwm, HIGH); digitalWrite(motor_Apwm, HIGH); digitalWrite(motor_A1, LOW); digitalWrite(motor_A2, HIGH); digitalWrite(motor_B1, LOW); digitalWrite(motor_B2, HIGH); delay(5); digitalWrite(motor_Bpwm, LOW); digitalWrite(motor_Apwm, LOW); delay(4); x++; } x=0; } while(x<30){ digitalWrite(motor_Bpwm, HIGH); digitalWrite(motor_Apwm, HIGH); digitalWrite(motor_A1, LOW); digitalWrite(motor_A2, HIGH); digitalWrite(motor_B1, LOW); digitalWrite(motor_B2, HIGH); delay(5); digitalWrite(motor_Bpwm, LOW); digitalWrite(motor_Apwm, LOW); delay(4); x++; } x=0; while(x<30){ digitalWrite(motor_Bpwm, HIGH); digitalWrite(motor_Apwm, HIGH); digitalWrite(motor_A1, LOW); digitalWrite(motor_A2, HIGH); digitalWrite(motor_B1, HIGH); digitalWrite(motor_B2, LOW); delay(5); digitalWrite(motor_Bpwm, LOW); digitalWrite(motor_Apwm, LOW); delay(7); x++; } } }