#define sensorPin 4//3 // the number of the sensor pin int sensorState = 0; // variable for reading the sensor status #define echoPin 11//7 // Echo Pin #define trigPin 12//8 // Trigger Pin int maximumRange = 30; // Maximum range needed long duration, distance; // Duration used to calculate distance #define LEDPin 13 // Onboard LED int IN1 = 5; int IN2 = 6; int IN3 = 7; int IN4 = 8; int ENA = 9; int ENB = 10; void setup() { Serial.begin (9600); delay(5000); for (int i = 5; i < 11; i ++) { pinMode(i, OUTPUT); } pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(sensorPin, INPUT); pinMode(LEDPin, OUTPUT); // Use LED indicator (if required) front(); delay(5); } void loop() { sensorState = digitalRead(sensorPin); // if the sensorState is HIGH: if (sensorState == HIGH) {//HIGH digitalWrite(LEDPin, HIGH); fight(); } else { digitalWrite(LEDPin, LOW); back(); delay(2); left(); delay(2); } } void stopM() { analogWrite(ENA, 0); analogWrite(ENB, 0); } void right() { digitalWrite(IN1, 0); digitalWrite(IN2, 1); digitalWrite(IN3, 0); digitalWrite(IN4, 1); analogWrite(ENA, 255); analogWrite(ENB, 255); } void left() { digitalWrite(IN1, 1); digitalWrite(IN2, 0); digitalWrite(IN3, 1); digitalWrite(IN4, 0); analogWrite(ENA, 255); analogWrite(ENB, 255); } void front() { digitalWrite(IN1, 1); digitalWrite(IN2, 0); digitalWrite(IN3, 0); digitalWrite(IN4, 1); analogWrite(ENA, 150); analogWrite(ENB, 150); } void back() { digitalWrite(IN1, 0); digitalWrite(IN2, 1); digitalWrite(IN3, 1); digitalWrite(IN4, 0); analogWrite(ENA, 150); analogWrite(ENB, 150); } void fight() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); //Calculate the distance (in cm) based on the speed of sound. distance = duration / 58.2; if (distance <= maximumRange) { /* Send a negative number to computer and Turn LED ON to indicate "out of range" */ //Serial.println(distance); digitalWrite(LEDPin, HIGH); front(); delay(2); } else { /* Send the distance to the computer using Serial protocol, and turn LED OFF to indicate successful reading. */ //Serial.println(distance); digitalWrite(LEDPin, LOW); left(); delay(2); front(); delay(2); } //Delay 50ms before next reading. //delay(50); }