Below is my code but I can not make it to stay in wait time for x time
#define Relay_LED1 6
#define Relay_LED2 7
#define Wait 10
int Relay_ON_Interval;
int Relay_OFF_Interval;
int Wait_Interval;
int Relay_State = 0;
long unsigned previous_Millis = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(Relay_LED1, OUTPUT);
pinMode(Relay_LED2, OUTPUT);
pinMode(Wait, OUTPUT);
}
void loop() {
Relay_ON_Interval = 1000;
Relay_OFF_Interval = 1000;
Wait_Interval = 2000;
updateRelay_State(Wait_Interval, Relay_ON_Interval, Relay_OFF_Interval);
}
void updateRelay_State(int wait, int on, int off)
{
Wait_Interval = wait;
Relay_ON_Interval = on;
Relay_OFF_Interval = off;
long unsigned currentMillis = millis();
Serial.print(Relay_State);
Serial.print(",");
Serial.println(currentMillis - previous_Millis);
switch ( Relay_State )
{
case 0:
if (currentMillis - previous_Millis >= Wait_Interval)
{
Serial.print(Relay_State);
Serial.print(",");
Serial.print("wait");
Serial.print(",");
Relay_State = 1;
digitalWrite(Relay_LED1, HIGH);
digitalWrite(Relay_LED2, HIGH);
digitalWrite(Wait, LOW);
Serial.print(currentMillis);
Serial.print(",");
Serial.print(previous_Millis);
Serial.print(",");
Serial.println(Relay_State);
previous_Millis = currentMillis;
}
case 1:
if (currentMillis - previous_Millis >= Relay_OFF_Interval)
{
Serial.print(Relay_State);
Serial.print(",");
Serial.print("Relay 1");
Serial.print(",");
Relay_State = 2;
digitalWrite(Relay_LED1, HIGH);
digitalWrite(Relay_LED2, LOW);
digitalWrite(Wait, HIGH);
Serial.print(currentMillis);
Serial.print(",");
Serial.print(previous_Millis);
Serial.print(",");
Serial.println(Relay_State);
previous_Millis = currentMillis;
}
case 2:
if (currentMillis - previous_Millis >= Relay_ON_Interval)
{
Serial.print(Relay_State);
Serial.print(",");
Serial.print("Relay 2");
Serial.print(",");
Relay_State = 0;
digitalWrite(Relay_LED2, HIGH);
digitalWrite(Relay_LED1, LOW);
digitalWrite(Wait, HIGH);
Serial.print(currentMillis);
Serial.print(",");
Serial.print(previous_Millis);
Serial.print(",");
Serial.println(Relay_State);
previous_Millis = currentMillis;
}
}
}