Activacion de leds con millis

Pues la verdad que esto se me hace muy dificil, Lo que pretendo es activar diferentes leds y cada uno con diferente tiempo, ejemplo Pulsador 1 activa led 1 por 3minutos Pulsador 2 activa led 2 por 5 minutos Pulsador 3 activa led 3 por 2 minutos

Es posible esto? Gracias espero entienda y me ayuden con este prollecto Se que hay muchos post pero casi ninguno deja claro :confused:

Creo que es posible hacerlo con ‚ÄúSwitch case‚ÄĚ, pero los tiempos tan largos no sabr√≠a cual es la forma mas √≥ptima de hacerlo.

switch (var) {
   case 1:
     //pulsador1=High, encender led1 por "x" tiempo
     break;
   case 2:
     //pulsador2=High, encender led2 por "x" tiempo
     break;
  case 3:
     //pulsador3=High, encender led3 por "x" tiempo
     break;
 }

Esto es solo un ejemplo de forma burda.

Saludos.

Esta tarea de instituto la he/hemos resuelto un montón de veces. 1ro. Mira el ejemplo BlinkWithoutDelay.ino 2do. Busca ejemplos de millis() en este foro, hay muchos.

tienes que usar millis() y no usar delay().

lees los 3 pulsadores asegurandote que no tengan rebotes y todo eso. Supongamos que accionas los leds con el pulsador en HIGH Si se presiona un boton1, cargas una variable unsigned long start1 con el valor de millis() lo mismo para boton2 y boton3 algo asi

if (button1 == HIGH) {
   start1 = millis();
   activoled1 = true;
   digitalWrite(Led1, HIGH);   // prendo el led1
}

// luego de hacerlo mismo con todos los leds y botones

if (activoled1) {
   if (millis() - start1 > 3000UL) {  // UL es porque es un Unsigned long
     activoled1 = false;
     digitalWrite(Led1, LOW);  // apago led1
   }
}

bueno te he mostrado mas o menos por donde iría. hay que definir cada variable de modo que no preguntes por cada error que te de esto porque es un código a medio camino. A trabajar!!!

Muchas gracias a las reapuesta por ahora estoy fuera de casa ,y respondo con agradecimiento probare esto Gracias