I am new to programing and I need help getting this project to work. I am trying to insert a start button in the code. I need the relays to stop in position (1) and wait for button press, then proceed through positions 2-7 and back to position (1) and stop/wait for button press.
#define RELAY1 13
#define RELAY2 12
#define RELAY3 11
#define RELAY4 10
const int pin = 6;
int buttonstate = 0;
void setup()
{
// Initialize the arduino data pins for OUTPUT
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
pinMode(pin, INPUT);
digitalRead(pin);
}
void loop()
{
digitalWrite(RELAY1, LOW); // Turns OFF Relay 1
digitalWrite(RELAY2, LOW); // Turns OFF Relay 2
digitalWrite(RELAY3, HIGH); // Turns ON Relay 3
digitalWrite(RELAY4, LOW); // Turns OFF Relay 4
delay(4200); // Wait 2 seconds
if (digitalRead(pin) == HIGH) {
action();
}
action();{
digitalWrite(RELAY1, LOW); // Turns OFF Relay 1
digitalWrite(RELAY2, HIGH); // Turns ON Relay 2
digitalWrite(RELAY3, HIGH); // Turns ON Relay 3
digitalWrite(RELAY4, LOW); // Turns OFF Relay 4
delay(2200); // Wait 2 seconds
digitalWrite(RELAY1, LOW); // Turns OFF Relay 1
digitalWrite(RELAY2, HIGH); // Turns ON Relay 2
digitalWrite(RELAY3, LOW); // Turns OFF Relay 3
digitalWrite(RELAY4, HIGH); // Turns ON Relay 4
delay(2200); // Wait 2 seconds
digitalWrite(RELAY1, HIGH); // Turns ON Relay 1
digitalWrite(RELAY2, HIGH); // Turns ON Relay 2
digitalWrite(RELAY3, LOW); // Turns OFF Relay 3
digitalWrite(RELAY4, HIGH); // Turns ON Relay 4
delay(2200); // Wait 2 seconds
digitalWrite(RELAY1, HIGH); // Turns ON Relay 1
digitalWrite(RELAY2, LOW); // Turns OFF Relay 2
digitalWrite(RELAY3, LOW); // Turns OFF Relay 3
digitalWrite(RELAY4, HIGH); // Turns ON Relay 4
delay(2200); // Wait 2 seconds
digitalWrite(RELAY1, HIGH); // Turns ON Relay 1
digitalWrite(RELAY2, LOW); // Turns OFF Relay 2
digitalWrite(RELAY3, HIGH); // Turns ON Relay 3
digitalWrite(RELAY4, LOW); // Turns OFF Relay 4
delay(2200); // Wait 2 seconds
digitalWrite(RELAY1, HIGH); // Turns ON Relay 1
digitalWrite(RELAY2, LOW); // Turns OFF Relay 2
digitalWrite(RELAY3, HIGH); // Turns ON Relay 3
digitalWrite(RELAY4, LOW); // Turns OFF Relay 4
delay(2200); // Wait 2 seconds
}
One step at a time. Learn how to turn on and off 1 relay, better still, one LED, which is built into every board. When you can do that move on to something more complicated, like 2 relays (or LEDs).
What you are doing is called a 'finite state machine (FSM)'. In your case you are doing the simplest FSM possible as it has 2 states: ON and OFF.
Go to the Arduino IDE and do the examples, especially:
02 digital / button
Which is what you are trying to do.
You will probably discover what @sonofcy said about bounce control, so move on to:
02 digital / debounce
I also have a tutorial about buttons here:
Come back when you've tried the examples, or if you get stuck with the examples.
There are also other tutorials here that might help you, but the things I've shown you should get you started.