portão electrónico ajuda

oi estou a fazer um portão eletrônico com 2 "Módulo 2 Relés - Sinal 5V 2 Canais 220V/10A" e com interruptores para um trabalho mas o programa não funciona bem

int tem = 0;
int tem2 = 0;
int tem3 = 0;
int tem4 = 0;

void setup()
{
  pinMode(8,OUTPUT); 
  pinMode(9,OUTPUT); 
  pinMode(10,OUTPUT);
  pinMode(11,OUTPUT); 
  pinMode(12,OUTPUT);
  pinMode(1,INPUT); 
  pinMode(2,INPUT);
  pinMode(3,INPUT); 
  pinMode(4,INPUT);
  
  digitalWrite(8, LOW);
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(12, HIGH);
  
}
void loop() {

   tem = digitalRead(2);
   
   if (tem == HIGH) {
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, HIGH);
  digitalWrite(12, HIGH);
  delay(5000);
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);


}

    tem2 = digitalRead(3);
   
   if (tem2 == HIGH){
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(11, LOW);
  digitalWrite(12, LOW);
  delay(5000);
  digitalWrite(11, HIGH);
  digitalWrite(12, HIGH);

 }

   tem3 = digitalRead(4);

  if (tem3 == HIGH){
  digitalWrite(8, HIGH);
  delay(5000);
  digitalWrite(8, LOW);

  }
  tem4 = digitalRead(1);
   
  if (tem4 == HIGH){
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(12, HIGH);
  }
  
  }

alguma ideia ?

Os delay()'s são muito provavelmente a causa do teu problema. No entanto, repara que tu não disseste sequer qual é exactamente o teu problema... como pretendes que alguém te ajude???

Ele metesse a funcionar sozinho sem receber sinal nos terminais . Nos terminais 1,2,3 e 4.

desculpa bubulindo eu sou novo nisto.

int tem = 0;
int tem2 = 0;
int tem3 = 0;
int tem4 = 0;

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

digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);

}
void loop() {

tem = digitalRead(2);

if (tem == HIGH) {
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
delay(5000);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);

}

tem2 = digitalRead(3);

if (tem2 == HIGH){
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
delay(5000);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);

}

tem3 = digitalRead(4);

if (tem3 == HIGH){
digitalWrite(8, HIGH);
delay(5000);
digitalWrite(8, LOW);

}
tem4 = digitalRead(1);

if (tem4 == HIGH){
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
}

}

Como ligaste os interruptores? Não estarás a precisar do que é chamado de resistências de pull up?

Experimenta inicializar as entradas com:

  pinMode(1,INPUT_PULLUP);
  pinMode(2,INPUT_PULLUP);
  pinMode(3,INPUT_PULLUP);
  pinMode(4,INPUT_PULLUP);

mesma que eu tire os fios dos terminais 1,2,3 e 4 continua a funcionar como recebesse sinais nos terminais serra que o ardoino pode ter problemas

Leste e experimentaste o que eu disse?