Problemas con delay ()

Hola a todos,

Actualmente tengo problema con el siguiente código, La idea de este código, es que se enciendan y apaguen 4 leds en función del numero colocado en las siguientes variables:

const int Pass_Lamp_1 = 1; //Password para Lamp_1
const int Pass_Lamp_2 = 2; //Password para Lamp_2
const int Pass_Lamp_3 = 3; //Password para Lamp_3
const int Pass_Lamp_4 = 4; //Password para Lamp_4

El led 1 o Lamp_1 se enciende una sola vez, seguidamente debe encenderse el led 2 o Lamp2, el led 3, se enciende y apaga 3 veces y el led 4 se enciende y apaga 4 veces.

creo que el uso del comando dalay () evita que el Arduino reconozca cuando pulso unos pulsadores que hacen otras funciones que también debo programar.

Este código hace el trabajo pero al insertar el resto de la programación, no reconoce el estado de los pulsadores.

Pueden ayudarme a programar este código de forma que pueda reconocer pulsadores?

Control_Luces.ino (1.21 KB)

Hola, buen dia
Primero debes editar tu post, los códigos van entre etiquetas y no como archivo adjunto.
Y efectivamente tu problema como muchos de los que llegan aquí, es el uso indiscriminado de delay, que además de eso lo combinas con un for.
Pasate a la Sección Documentación y mira los primeros post, los que tratan sobre millis y maquinas de estados
El uso de millis resuelve tu problema

Considera este ejemplo:

unsigned long hora = 0;                     //Es muy importante respetar el tipo de dato
void setup() {
   pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
   if (milis() - hora >= 500){
      hora = millis();                                       //Guarda la hora de cada cambio.
      digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));  //Invierte valor del pin.
   }
}

Lee también millis()