const int trigPin =A5; const int echoPin = A4; int a; int b; int c; int d; long duration; int distance; void init_motors(){ pinMode(5, OUTPUT); pinMode(4, OUTPUT); pinMode(7, OUTPUT); pinMode(6, OUTPUT); pinMode(12, OUTPUT); pinMode(8, OUTPUT); digitalWrite(5, HIGH); digitalWrite(6, HIGH); } void forward(){ digitalWrite(4, HIGH); digitalWrite(12, HIGH); digitalWrite(7, LOW); digitalWrite(8, LOW); } void reverse(){ digitalWrite(4, LOW); digitalWrite(12, LOW); digitalWrite(7, HIGH); digitalWrite(8, HIGH); } void right(){ digitalWrite(4, HIGH); digitalWrite(8, HIGH); digitalWrite(7, LOW); digitalWrite(12, LOW); } void left(){ digitalWrite(7, HIGH); digitalWrite(12, HIGH); digitalWrite(4, LOW); digitalWrite(8, LOW); } void left_forward(){ digitalWrite(12, HIGH); digitalWrite(8, LOW); digitalWrite(7, LOW); digitalWrite(4, LOW); } void right_forward(){ digitalWrite(4, HIGH); digitalWrite(8, LOW); digitalWrite(7, LOW); digitalWrite(12, LOW); } void right_reverse(){ digitalWrite(8, HIGH); digitalWrite(7, LOW); digitalWrite(12, LOW); digitalWrite(4, LOW); } void left_reverse(){ digitalWrite(7, HIGH); digitalWrite(8, LOW); digitalWrite(4, LOW); digitalWrite(12, LOW); } void stop(){ digitalWrite(7, LOW); digitalWrite(8, LOW); digitalWrite(4, LOW); digitalWrite(12, LOW); } void setup(){ pinMode(trigPin,OUTPUT); pinMode(echoPin,INPUT); pinMode(A0,INPUT); Serial.begin(9600); init_motors(); } void loop(){ digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration * 0.034 / 2; a=digitalRead(A0); b=digitalRead(A1); c=digitalRead(A2); d=digitalRead(A3); if(a==0) { digitalWrite(11,HIGH); digitalWrite(10,HIGH); } else { digitalWrite(11,LOW); digitalWrite(10,LOW); } if(c==1) { digitalWrite(5,HIGH); digitalWrite(9,HIGH); } else { digitalWrite(5,LOW); digitalWrite(9,LOW); } Serial.println(b); if(distance>10){ digitalWrite(A3,HIGH); } else { digitalWrite(A3,LOW);} if(distance<10){ digitalWrite(9,HIGH); } else{ digitalWrite(9,LOW); } forward(); if(distance<10&&distance>0){ stop(); reverse(); left(); stop(); reverse(); left(); } }