Relay control via button

I have 4 relays and 4 buttons. I want the next relay to work when I press each button respectively. in the last button, it closes all relays. repeat 4 times in a second mode. how can I do it

void setup()
{
  pinMode(1, OUTPUT);
  pinMode(10, INPUT);
  pinMode(2, INPUT);
  pinMode(4, INPUT);
  pinMode(8, INPUT);
  pinMode(3, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(5, INPUT);
 pinMode(11, INPUT);
}

int count=0;


void loop()
{
 int count=digitalRead(10);// digitalRead(10) start butonu
if(digitalRead(12)==1)     // digitalRead(12) 4 tekrar butonu
{
	count=2;
}
	
  switch(count){
    
    
    case 1:  
 
    digitalWrite(1,HIGH);
    delay(10);
   digitalWrite(3,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
   
  if(digitalRead(2)==1)//1. swich
  {
    digitalWrite(1,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
     
    digitalWrite(3,HIGH);
    delay(10);
     
  }
    
  else if(digitalRead(4)==1)// 2. swich
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
    digitalWrite(1,LOW);
    delay(10);
      
    digitalWrite(9,HIGH);
    delay(10);
      
  }

  else if(digitalRead(8)==1)//  3.swich
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(1,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
      
    digitalWrite(6,HIGH);
    delay(10);
      
  }
    
    else	if(digitalRead(11)==1) //4.swich
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(1,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
      
  }
    break;
 	 
    
    case 2:
    
    digitalWrite(1,HIGH);
    delay(10);
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);

  if(digitalRead(2)==1   )//1. swich
  {
    digitalWrite(1,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
     
    digitalWrite(3,HIGH);
    delay(10);
     
  }
  
    
 else  if(digitalRead(4)==1)// 2. swich
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
    digitalWrite(1,LOW);
    delay(10);
       
    digitalWrite(9,HIGH);
    delay(10);
      
  }
  
    
 else  if(digitalRead(8)==1)//  3.swich
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(1,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
      
    digitalWrite(6,HIGH);
    delay(10);
      
  }
   else  if(digitalRead(11)==1) //4.swich başa dön
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(1,HIGH);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
      
  }
     
else  if(digitalRead(2)==1)//1. swich
  {
    digitalWrite(1,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
     
    digitalWrite(3,HIGH);
    delay(10);
     
  }
  
    
 else   if(digitalRead(4)==1)// 2. swich
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
    digitalWrite(1,LOW);
    delay(10);
          
    digitalWrite(9,HIGH);
    delay(10);
      
  }
  
    
  else  if(digitalRead(8)==1)//  3.swich
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(1,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
          
    digitalWrite(6,HIGH);
    delay(10);
      
  }
   else  if(digitalRead(11)==1) //4.swich başa dön
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(1,HIGH);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
      
  }
    
  
 else  if(digitalRead(2)==1)//1. swich
  {
    digitalWrite(1,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
     
    digitalWrite(3,HIGH);
    delay(10);
     
  }
  
    
  else  if(digitalRead(4)==1)// 2. swich
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
    digitalWrite(1,LOW);
    delay(10);    
      
    digitalWrite(9,HIGH);
    delay(10);
      
  }
  
    
  else  if(digitalRead(8)==1)//  3.swich
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(1,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
         
    digitalWrite(6,HIGH);
    delay(10);
      
  }
   else  if(digitalRead(11)==1) //4.swich durdur
  {
    digitalWrite(3,LOW);
    delay(10);
    digitalWrite(1,LOW);
    delay(10);
    digitalWrite(9,LOW);
    delay(10);
    digitalWrite(6,LOW);
    delay(10);
      
  }
    break;
    
  }
}

Hello mirac_3444

Post a timing diagram showing all inputs and outputs to see how we can help.

Have a nice day and enjoy programming in C++ and learning.

Looks like a good application for “ case” , have a google for that .. have each button generate a number , apply a bit of logic then in “ case” take the appropriate action .

Switch case

It seem to be a multiple RFI ?

ifs inside cases don't work

Hi Mirac,

you wrote 200 lines of code with consequently avoiding using constants.
This has BIG disadvantages:

Whenever you want to change an IOpin-number you have to go through all the 200 lines of code to change it and be very careful to not forget one.

You have to remember what number represents what
Here is your code with constants
This has the advantage that there is only ONE central place to chang the number and then you are done because all other places in the code use the constant.


const byte ButtonStart = 10;
const byte Button1 =  2;
const byte Button2 =  4;
const byte Button3 =  8;
const byte Button4 = 11;
const byte repeatButton = 12;

const byte WhatIsThis =  5;

const byte Relay1 = 1;
const byte Relay2 = 3;
const byte Relay3 = 6;
const byte Relay4 = 9;

const unsigned long DelayTime = 10;

void setup()
{
  pinMode(ButtonStart, INPUT);
  
  pinMode(Button1, INPUT);
  pinMode(Button2, INPUT);
  pinMode(Button3, INPUT);
  pinMode(Button4, INPUT);

  pinMode(Relay1, OUTPUT);
  pinMode(Relay2, OUTPUT);
  pinMode(Relay3, OUTPUT);
  pinMode(Relay4, OUTPUT);
  pinMode(WhatIsThis, INPUT);  
}

int count = 0;

void loop()
{
  int count = digitalRead(ButtonStart); // digitalRead(ButtonStart) start butonu
  if (digitalRead(repeatButton) == 1)  // digitalRead(repeatButton) 4 tekrar butonu
  {
    count = 2;
  }

  switch (count) {

    case 1:

      digitalWrite(Relay1, HIGH);
      delay(DelayTime);
      digitalWrite(Relay2, LOW);
      delay(DelayTime);
      digitalWrite(Relay3, LOW);
      delay(DelayTime);
      digitalWrite(Relay4, LOW);
      delay(DelayTime);

      if (digitalRead(Button1) == 1) //1. swich
      {
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay2, HIGH);
        delay(DelayTime);
      }

      else if (digitalRead(Button2) == 1) // 2. swich
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);

        digitalWrite(Relay4, HIGH);
        delay(DelayTime);

      }

      else if (digitalRead(Button3) == 1) //  3.swich
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay3, HIGH);
        delay(DelayTime);
      }

      else  if (digitalRead(Button4) == 1) //4.swich
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
      }
      break;


    case 2:

      digitalWrite(Relay1, HIGH);
      delay(DelayTime);
      digitalWrite(Relay2, LOW);
      delay(DelayTime);
      digitalWrite(Relay3, LOW);
      delay(DelayTime);
      digitalWrite(Relay4, LOW);
      delay(DelayTime);

      if (digitalRead(Button1) == 1   ) //1. swich
      {
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay2, HIGH);
        delay(DelayTime);
      }

      else  if (digitalRead(Button2) == 1) // 2. swich
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);

        digitalWrite(Relay4, HIGH);
        delay(DelayTime);
      }

      else  if (digitalRead(Button3) == 1) //  3.swich
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay3, HIGH);
        delay(DelayTime);

      }
      else  if (digitalRead(Button4) == 1) //4.swich başa dön
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, HIGH);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
      }

      else  if (digitalRead(Button1) == 1) //1. swich
      {
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay2, HIGH);
        delay(DelayTime);
      }

      else   if (digitalRead(Button2) == 1) // 2. swich
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);

        digitalWrite(Relay4, HIGH);
        delay(DelayTime);

      }

      else  if (digitalRead(Button3) == 1) //  3.swich
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay3, HIGH);
        delay(DelayTime);

      }
      else  if (digitalRead(Button4) == 1) //4.swich başa dön
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, HIGH);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);

      }

      else  if (digitalRead(Button1) == 1) //1. swich
      {
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay2, HIGH);
        delay(DelayTime);
      }

      else  if (digitalRead(Button2) == 1) // 2. swich
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);

        digitalWrite(Relay4, HIGH);
        delay(DelayTime);
      }

      else  if (digitalRead(Button3) == 1) //  3.swich
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay3, HIGH);
        delay(DelayTime);

      }
      else  if (digitalRead(Button4) == 1) //4.swich durdur
      {
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);

      }
      break;
  }
}

best regards Stefan

Oh yes they do

Here is a code-version with serial debugoutput that makes visible which lines of code are executed.

from your posted picture I conclude that you use tinkercad
I have no experience with tinkercad
Me personal I use WOKWI.com as a simulator

Do you know how to activate the serial monitor in tinkercad?
Here is the code with debugoutput

// MACRO-START * MACRO-START * MACRO-START * MACRO-START * MACRO-START * MACRO-START * 
// Take it for granted at the moment scroll down to void setup
// start of macros dbg and dbgi
#define dbg(myFixedText, variableName) \
  Serial.print( F(#myFixedText " "  #variableName"=") ); \
  Serial.println(variableName);
// usage: dbg("1:my fixed text",myVariable);
// myVariable can be any variable or expression that is defined in scope

#define dbgi(myFixedText, variableName,timeInterval) \
  do { \
    static unsigned long intervalStartTime; \
    if ( millis() - intervalStartTime >= timeInterval ){ \
      intervalStartTime = millis(); \
      Serial.print( F(#myFixedText " "  #variableName"=") ); \
      Serial.println(variableName); \
    } \
  } while (false);
// usage: dbgi("2:my fixed text",myVariable,1000);
// myVariable can be any variable or expression that is defined in scope
// third parameter is the time in milliseconds that must pass by until the next time a 
// Serial.print is executed
// end of macros dbg and dbgi
// MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * 


const byte ButtonStart = 10;
const byte Button1 =  2;
const byte Button2 =  4;
const byte Button3 =  8;
const byte Button4 = 11;
const byte repeatButton = 12;

const byte WhatIsThis =  5;

const byte Relay1 = 1;
const byte Relay2 = 3;
const byte Relay3 = 6;
const byte Relay4 = 9;

const unsigned long DelayTime = 10;

void setup()
{
  Serial.begin(115200); // make sure to adjust the serial monitor to 115200 baud
  Serial.print( F("\n Setup-Start  \n") );

  pinMode(ButtonStart, INPUT);
  
  pinMode(Button1, INPUT);
  pinMode(Button2, INPUT);
  pinMode(Button3, INPUT);
  pinMode(Button4, INPUT);

  pinMode(Relay1, OUTPUT);
  pinMode(Relay2, OUTPUT);
  pinMode(Relay3, OUTPUT);
  pinMode(Relay4, OUTPUT);
  pinMode(WhatIsThis, INPUT);  
}

int count = 0;

void loop(){
  dbgi("0:top of loop",count,1000); // once every second print 
  
  int count = digitalRead(ButtonStart); // digitalRead(ButtonStart) start butonu
  dbgi("1:",digitalRead(ButtonStart),1000); // once every second print 
  
  if (digitalRead(repeatButton) == 1)  // digitalRead(repeatButton) 4 tekrar butonu
  {
    count = 2;
  }

  switch (count) {

    case 1:
      dbgi("case 1:",count,1000); // once every second print 

      digitalWrite(Relay1, HIGH);
      delay(DelayTime);
      digitalWrite(Relay2, LOW);
      delay(DelayTime);
      digitalWrite(Relay3, LOW);
      delay(DelayTime);
      digitalWrite(Relay4, LOW);
      delay(DelayTime);

      if (digitalRead(Button1) == 1) //1. swich
      {
        dbgi("1. swich:",digitalRead(Button1),1000); // once every second print 
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay2, HIGH);
        delay(DelayTime);
      }

      else if (digitalRead(Button2) == 1) // 2. swich
      {
        dbgi("2. swich:",digitalRead(Button2),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);

        digitalWrite(Relay4, HIGH);
        delay(DelayTime);

      }

      else if (digitalRead(Button3) == 1) //  3.swich
      {
        dbgi("3. swich:",digitalRead(Button3),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay3, HIGH);
        delay(DelayTime);
      }

      else  if (digitalRead(Button4) == 1) //4.swich
      {
        dbgi("4. swich:",digitalRead(Button4),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
      }
      break;


    case 2:

      dbgi("case 2:",count,1000); // once every second print 
      digitalWrite(Relay1, HIGH);
      delay(DelayTime);
      digitalWrite(Relay2, LOW);
      delay(DelayTime);
      digitalWrite(Relay3, LOW);
      delay(DelayTime);
      digitalWrite(Relay4, LOW);
      delay(DelayTime);

      if (digitalRead(Button1) == 1   ) //1. swich
      {
        dbgi("1. swich:",digitalRead(Button1),1000); // once every second print 
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay2, HIGH);
        delay(DelayTime);
      }

      else  if (digitalRead(Button2) == 1) // 2. swich
      {
        dbgi("2. swich:",digitalRead(Button2),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);

        digitalWrite(Relay4, HIGH);
        delay(DelayTime);
      }

      else  if (digitalRead(Button3) == 1) //  3.swich
      {
        dbgi("3. swich:",digitalRead(Button3),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay3, HIGH);
        delay(DelayTime);

      }
      else  if (digitalRead(Button4) == 1) //4.swich başa dön
      {
        dbgi("4. swich:",digitalRead(Button4),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, HIGH);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
      }

      else  if (digitalRead(Button1) == 1) //1. swich
      {
        dbgi("else if 1. swich:",digitalRead(Button1),1000); // once every second print 
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay2, HIGH);
        delay(DelayTime);
      }

      else   if (digitalRead(Button2) == 1) // 2. swich
      {
        dbgi("else if 2. swich:",digitalRead(Button2),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);

        digitalWrite(Relay4, HIGH);
        delay(DelayTime);

      }

      else  if (digitalRead(Button3) == 1) //  3.swich
      {
        dbgi("else if 3. swich:",digitalRead(Button3),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay3, HIGH);
        delay(DelayTime);

      }
      else  if (digitalRead(Button4) == 1) //4.swich başa dön
      {
        dbgi("else if 4. swich:",digitalRead(Button4),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, HIGH);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);

      }

      else  if (digitalRead(Button1) == 1) //1. swich
      {
        dbgi("else if 1. swich:",digitalRead(Button1),1000); // once every second print 
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay2, HIGH);
        delay(DelayTime);
      }

      else  if (digitalRead(Button2) == 1) // 2. swich
      {
        dbgi("else if 2. swich:",digitalRead(Button2),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);

        digitalWrite(Relay4, HIGH);
        delay(DelayTime);
      }

      else  if (digitalRead(Button3) == 1) //  3.swich
      {
        dbgi("else if 3. swich:",digitalRead(Button3),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);

        digitalWrite(Relay3, HIGH);
        delay(DelayTime);

      }
      else  if (digitalRead(Button4) == 1) //4.swich durdur
      {
        dbgi("else if 4. swich:",digitalRead(Button4),1000); // once every second print 
        digitalWrite(Relay2, LOW);
        delay(DelayTime);
        digitalWrite(Relay1, LOW);
        delay(DelayTime);
        digitalWrite(Relay4, LOW);
        delay(DelayTime);
        digitalWrite(Relay3, LOW);
        delay(DelayTime);
      }
      break;
  }
}

best regards Stefan

I count more than 4 buttons.

Your wiring is wrong:

the contacts of the relays have shortcircuits
This picture shows the internal "wiring" of breadboards
wholes placed vertically above each other are conductant to each other

the coils of the relays have no wire to ground

Such pictures are really awful in the eyes of advanced hobbyists and professionals
the professional way to draw circuits is very different.

You are loading a lot of additional work on the shoulders of your potential helpers by presenting such non-professional circuit-diagrams

You should at least use different colors

ground: black
+5V: red
different buttons different relays different colors
best regards Stefan

additionally IO-pin 1 is the TX-line of the serial connection you should not use this IO-pin

here is your code and circuitry as a wokwi-simulation

WOKWI makes progress with more features like wire-repositioning
color-choosing popup, bounce yes / no

I want the relay to be triggered when I press the button

That is the standard approach

This code does

const byte buttonPin =  2;
const byte relayPin  = 13;

byte buttonState;

void setup() {
  pinMode(buttonPin,INPUT);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin,LOW);  
}

void loop() {
  buttonState = digitalRead(buttonPin);
  digitalWrite(relayPin,buttonState);
}

I guess you want a little more.
If you want more you have to describe it with more words
or even better with a hand-drawn a timing-diagram

best regards Stefan

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.