I need to pause my loop and when i press the same button my loop need to continue where it was. But now when i press pause i cant undo it. Any idea on how to fix it?
My Code:
#define MotorBewegenLinks 7
#define MotorBewegenRechts 8
#define Punt1 4
#define Punt2 5
#define Punt3 6
#define Start 10
#define Stop 2
#define Noodstop 3
#define Sensor 9
#define Herstel 11
#define bakopen 12
#define bakdicht 13
int stap = 0;
int status_pauze = 0;
bool edge = 1;
void setup() {
Serial.begin(9600);
pinMode(Punt1, OUTPUT);
pinMode(Punt2, OUTPUT);
pinMode(Punt3, OUTPUT);
pinMode(MotorBewegenLinks, OUTPUT);
pinMode(MotorBewegenRechts, OUTPUT);
pinMode(Start, INPUT);
pinMode(Stop, INPUT);
pinMode(Noodstop, INPUT);
pinMode(Sensor, INPUT);
pinMode(Herstel, INPUT);
pinMode(bakopen, OUTPUT);
pinMode(bakdicht, OUTPUT);
attachInterrupt(digitalPinToInterrupt(Stop), Pauze, RISING);
attachInterrupt(digitalPinToInterrupt(Noodstop), noodstop, RISING);
}
void loop() {
if(digitalRead(Start) && digitalRead(Sensor)){
stap = 1;
for(int i = Punt1; i <= Punt3; i++){
water(i);
}
}
}
void water(int punt){
digitalWrite(MotorBewegenLinks, HIGH);
Serial.println("Motor links aan");
delay(1000);
digitalWrite(MotorBewegenLinks, LOW);
Serial.println("Motor links uit");
delay(500);
digitalWrite(punt, HIGH);
Serial.println("Aangekomen bij punt");
delay(500);
digitalWrite(bakopen, HIGH);
Serial.println("Bak open");
delay(1000);
digitalWrite(bakopen, LOW);
delay(500);
digitalWrite(bakdicht, HIGH);
Serial.println("Bak dicht");
delay(1000);
digitalWrite(bakdicht, LOW);
delay(500);
digitalWrite(punt, LOW);
Serial.println("Weg bij punt");
if ( punt == Punt3){
digitalWrite(MotorBewegenRechts, HIGH);
Serial.println("Motor terug naar begin");
delay(3000);
digitalWrite(MotorBewegenRechts, LOW);
Serial.println("Motor bij begin");
}
}
void Pauze(){
edge = 1;
status_pauze = !status_pauze;
while (status_pauze = 1){
if (digitalRead(Stop) && edge == 0){break;}
Serial.println("Pauze hoog");
if (digitalRead(Stop) == 0){
Serial.println("Pauze uit");
edge = 0;
}
}
}