hola tengo un probema, soy completamente novato en programación, el punto es que no puedo resolver este ejercicio:
Generar un programa que controle el estado de 6 leds formando una tira, del led 1 al led 6. El programa deberá encender sólo un led a la vez, por un período de 1 segundo, luego encender el siguiente en secuencia, y así del 1º al 6º. A partir de ahí invertir el sentido de número de led encendido para moverse del 6º al 1º. El ciclo deberá repetirse indefinidamente. Agregar un botón pulsador que permita pasar el ciclo de encendido, quedando el led actualmente encendido en ese estado por el tiempo que se mantenga pulsado el botón.
lo mas cerca que estado es con interrupciones pero el programa se queda con un delay infinito, intenté con millis pero cuando pauso el programa y suelto el boton los leds se desincronizan, igual intenté con otras funciones pero no me da lo que busco exactamente... ¿alguien sabe como podria "pausar" el loop para que cuando oprima el boton el led se quede encendido y cuando lo suelte el ciclo siga normalmente? de antemano muchas gracias.
int tiempo = 200;
int n = 0;
int pulsador = 2;
void setup()
{
for (n=3; n<=8; n++)
{
pinMode(n, OUTPUT);
}
pinMode(pulsador, INPUT);
}
void loop()
{
for (n=3;n<=8;n++)
{
digitalWrite (n,HIGH);
delay(tiempo);
digitalWrite (n, LOW);
}
for (n=7;n>=3;n--)
{
digitalWrite (n,HIGH);
delay(tiempo);
digitalWrite (n,LOW);
}
}