The button should be able to turn off and on the arduino, but I don't know where to start. I'm using a L293D shield and planning to set the button to pin 10.
This is the program without the button:
#include <AFMotor.h>
int trigPin1 = A5;
int echoPin1 = A4;
int trigPin2 = A3;
int echoPin2 = A2;
int trigPin3 = A1;
int echoPin3 = A0;
AF_DCMotor motor1(3);
AF_DCMotor motor2(4);
long duration1;
long duration2;
long duration3;
int distanceleft;
int distancefront;
int distanceright;
void setup() {
pinMode(trigPin1, OUTPUT);
pinMode(trigPin2, OUTPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(echoPin2, INPUT);
pinMode(echoPin3, INPUT);
Serial.begin(9600);
motor1.setSpeed(255);
motor2.setSpeed(255);
}
void loop() {
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
distanceleft = duration1 * 0.034 / 2;
Serial.print("Distance1: ");
Serial.println(distanceleft);
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);
distancefront = duration2 * 0.034 / 2;
Serial.print("Distance2: ");
Serial.println(distancefront);
digitalWrite(trigPin3, LOW);
delayMicroseconds(2);
digitalWrite(trigPin3, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin3, LOW);
duration3 = pulseIn(echoPin3, HIGH);
distanceright = duration3 * 0.034 / 2;
Serial.print("Distance3: ");
Serial.println(distanceright);
if ((distanceleft <= 15 && distancefront > 15 && distanceright <= 15) || (distanceleft > 15 && distancefront > 15 && distanceright > 15))
{
motor1.run(FORWARD);
motor2.run(FORWARD);
}
if ((distanceleft <= 15 && distancefront <= 15 && distanceright > 15) || (distanceleft <= 15 && distancefront > 15 && distanceright > 15))
{
motor1.run(RELEASE);
motor2.run(RELEASE);
delay(1000);
motor1.run(FORWARD);
motor2.run(BACKWARD);
delay(1000);
}
if ((distanceleft > 15 && distancefront <= 15 && distanceright <= 15) || (distanceleft > 15 && distancefront > 15 && distanceright <= 15) || (distanceleft > 15 && distancefront <= 15 && distanceright > 15) )
{
motor1.run(RELEASE);
motor2.run(RELEASE);
delay(1000);
motor1.run(BACKWARD);
motor2.run(FORWARD);
delay(1000);
}
}