Apagar varios reles con el mismo pulsador SOLUCIONADO

Hola

Tengo un programador con arduino y dos reles y queria que cuando este encendidos tanto uno como los dos al pulsar se apaguen pero no doy con el programa

Esto es lo que tengo

// activar reles y apagarlos con un pulsador

const int relay = 3;
const int relay1 = 4;
const int BOTON = 2;
int val = 0; //val se emplea para almacenar el estado del boton
int state = 0; // 0 LED apagado, mientras que 1 encendido
int old_val = 0; // almacena el antiguo valor de val
// La rutina setup se ejecuta al iniciar el Arduino o al presionar el boton reset
void setup() {                
// Inicialica el pin digital relay (que vale 2)  como salida
  pinMode(relay, OUTPUT);
  pinMode(relay1, OUTPUT); 
  pinMode(BOTON,INPUT); // y BOTON como señal de entrada
 }

// La rutina loop se ejecuta en forma infinita despues de inicializado el Arduino
void loop(){
  
  digitalWrite(relay, HIGH);   // Envia el valor HIGH (5V) al pin digital relay
  digitalWrite(relay1, HIGH);   // Envia el valor HIGH (5V) al pin digital relay
  
val= digitalRead(BOTON); // lee el estado del Boton
  
if ((val == HIGH) && (old_val == LOW)){
state=1-state;
delay(10);
}
old_val = val; // valor del antiguo estado
if (state==1){
digitalWrite(relay, HIGH); // enciende el LED
digitalWrite(relay1, HIGH); // enciende el LED
}
else{
 digitalWrite(relay,LOW); // apagar el LED
  digitalWrite(relay1,LOW); // apagar el LED
 }
}

Gracias por vuestra ayuda

Un saludo

Hola,
Yo diría que tú problema esta en las dos primeras lineas del loop.

 digitalWrite(relay, HIGH);   // Envia el valor HIGH (5V) al pin digital relay
 digitalWrite(relay1, HIGH);   // Envia el valor HIGH (5V) al pin digital relay

En cada vuelta del bucle se activan los reles, por lo que nunca conseguirás que se queden apagados por mucho que se cumpla la condición.
Si tu intención es que comiencen encendidos pon esas dos lineas en el setup, sino eliminalas.

hola gracias por la ayuda pero... :confused:

ahora solo las manejo con el pulsador pero no arrancan encendidas

un saludo

Creo que con que inicies state a 1 será suficiente.
int state = 1;
En lugar de
int state = 0

De todas formas usar un int para sólo que contenga 1 ó 0 es un desperdicio de memoria. Deberías usar byte o bool

funciona, muchas gracias

de eso que me hablas tendre que leer mas......