const int motorFR = A0; //defines motor FRONT RIGHT at analog pin 0
const int motorFL = A1; //defines motor FRONT LEFT at analog pin 1
const int motorBR = A2; //defines motor BACK RIGHT at analog pin 2
const int motorBL = A4; //defines motor BACK LEFT at analog pin 3
const int Button = A3; //defines our one and only button at analog pin 4
/*
HC-SR04 example sketch
by Isaac100
*/
float distance1, duration1;
float distance2, duration2;
float distance3, duration3;
float distance4, duration4;
float distance5, duration5;
const int trigPin1 = 3; //defines trig pin for ultrasonic 1 at pin 3
const int echoPin1 = 10; //defines echo pin for ultrasonic 1 at pin 10
const int trigPin2 = 6;
const int echoPin2 = 11;
const int trigPin3 = 8;
const int echoPin3 = 12;
const int trigPin5 = 2;
const int echoPin5 = 5;
const int trigPin4 = 7;
const int echoPin4 = 4;
void setup() {
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3, INPUT);
pinMode(trigPin4, OUTPUT);
pinMode(echoPin4, INPUT);
pinMode(trigPin5, OUTPUT);
pinMode(echoPin5, INPUT);
Serial.begin(9600);
pinMode(motorFR, OUTPUT);
pinMode(motorFL, OUTPUT);
pinMode(motorBR, OUTPUT);
pinMode(motorBL, OUTPUT);
pinMode(Button, INPUT);
}
void loop() {
duration1 = pulseIn(echoPin1, HIGH);
distance1 = (duration1 * .0343) / 2;
Serial.print("Distance1: ");
Serial.println(distance1);
delay(100);
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, LOW);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration2 = pulseIn(echoPin2, HIGH);
distance2 = (duration2 * .0343) / 2;
Serial.print("Distance2: ");
Serial.println(distance2);
delay(100);
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, LOW);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration3 = pulseIn(echoPin3, HIGH);
distance3 = (duration3 * .0343) / 2;
Serial.print("Distance3: ");
Serial.println(distance3);
delay(100);
digitalWrite(trigPin3, LOW);
delayMicroseconds(2);
digitalWrite(trigPin3, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin3, LOW);
duration4 = pulseIn(echoPin4, HIGH);
distance4 = (duration4 * .0343) / 2;
Serial.print("Distance4: ");
Serial.println(distance4);
delay(100);
digitalWrite(trigPin4, LOW);
delayMicroseconds(2);
digitalWrite(trigPin4, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin4, LOW);
duration5 = pulseIn(echoPin5, HIGH);
distance5 = (duration5 * .0343) / 2;
Serial.print("Distance5: ");
Serial.println(distance5);
delay(100);
digitalWrite(trigPin5, LOW);
delayMicroseconds(2);
digitalWrite(trigPin5, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin5, LOW);
if (Button == HIGH) {
if (distance2 < 20) {
analogWrite(A0, HIGH);
analogWrite(A2, HIGH);
delay(1000);
analogWrite(A0, LOW);
analogWrite(A2, LOW);
}
if (distance1 < 20) {
analogWrite(A0, LOW);
analogWrite(A1, LOW);
analogWrite(A2, LOW);
analogWrite(A4, LOW);
}
if (distance4 < 20) {
analogWrite(A1, HIGH);
analogWrite(A4, HIGH);
delay(1000);
analogWrite(A1, LOW);
analogWrite(A4, LOW);
}
if (distance3 < 20) {
analogWrite(A1, HIGH);
analogWrite(A4, HIGH);
delay(1000);
analogWrite(A1, LOW);
analogWrite(A4, LOW);
}
if (distance5 < 20) {
analogWrite(A0, HIGH);
analogWrite(A2, HIGH);
delay(1000);
analogWrite(A0, LOW);
analogWrite(A2, LOW);
}
}
}
/This is my code, I do not think it is right. I am making a self-driving car using an Arduino nano 5 ultrasonic sensors and 4 motors. I am in the testing stage right now, and when I open the serial monitor to look at the data I am receiving, it shows a distance of 0 for all of them. Please help! And thank you in advance!/