For a school project were programming an arduino board. In default the script does nothing untill one of our sensors is triggered. When a sensor is triggered it starts a loop. (multiple leds turn on with timers between them) While te loop is running the sensors are disabled.
But we want to add a button that can interupt the loop, so that the board returns to its default status. How can i make a code that interupts the loop?
This is how the code looks now:
// IN
int afstand0 = 0;
int afstand1 = 1;
int ingang7 = 7;
// OUT
int uitgang8 = 8; // LEDS
int uitgang9 = 9;
int uitgang10 = 10;
int uitgang11 = 11;
int uitgang12 = 12; // PUMP
int uitgang13 = 13; // LASER
// BEGIN VALUES
int val0 = 0;
int val1 = 0;
int val2 = 0;
// VARIABLES
int afstand = 400;
int timer_aan1 = 1000;
int timer_aan2 = 1000;
int timer_aan3 = 1000;
int timer_aan4 = 1000;
int timer_uit1 = 10000;
int timer_uit2= 1000;
int timer_uit3 = 1000;
int timer_uit4 = 1000;
void setup() {
Serial.begin(9600);
pinMode(ingang7, INPUT);
pinMode(uitgang8, OUTPUT);
pinMode(uitgang9, OUTPUT);
pinMode(uitgang10, OUTPUT);
pinMode(uitgang11, OUTPUT);
pinMode(uitgang12, OUTPUT);
pinMode(uitgang13, OUTPUT);
}
void loop() {
val0 = analogRead(afstand0);
val1 = analogRead(afstand1);
val2 = digitalRead(ingang7);
// LOOP TRIGGERED BY ONE OF THE SENSORS (I COPY AND PAST THIS PART FOR THE OTHER SENSORS)
if ( val0 > afstand){
delay(timer_aan1);
digitalWrite(uitgang8, HIGH); // led on
delay(timer_aan2);
digitalWrite(uitgang9, HIGH); // led on
delay(timer_aan3);
digitalWrite(uitgang10, HIGH); // led on
delay(timer_aan4);
digitalWrite(uitgang11, HIGH);//led on
digitalWrite(uitgang12, HIGH); // pump on
delay(timer_uit1);
digitalWrite(uitgang8, LOW); // led off
delay(timer_uit2);
digitalWrite(uitgang9, LOW); // led off
delay(timer_uit3);
digitalWrite(uitgang10, LOW); // led off
digitalWrite(uitgang13, HIGH); // laser sends signal
delay(timer_uit4);
digitalWrite(uitgang11, LOW); // led off
digitalWrite(uitgang12, LOW); // pump off
digitalWrite(uitgang13, HIGH); // laser stops sending
delay(val0);
}
Thanks in advance