Hola. La aplicación es intentar iluminar una pequeña maqueta que tiene un cartel con tres lineas. las tipicas que salen en las peliculas del MOTEL, americanas. una frase superior, una en medio y otra inferior.
Cada una se ilumina con diferentes secuencias ( ver imagen de la secuencia)
Estoy intentando programar tres leds, que tienen diferentes secuencias cada uno. HAsta aqui bien. he realizado un programa con los tres timers.
Mi problema es que no se como modificar que cada led, uno de los leds, tenga diferentes parapadeos. Es decir:
LED 13, que se apague 2 segundos, se encienda dos segundos y luego parpadee 5 veces en intervalos de 200 ms.
El primer parapdeo lo hago (apagar y encender 2 segundos) bien pero los otros no se como implementarlos, para que se produzcan despues de la primera secuencia
// Parametros del pin 12
const int pinLed12 = 12;
long intervalo1 = 600;
long timer1 = millis();
int estadoPin12 = LOW;
// Parametros del pin 13
const int pinLed13 = 13;
long intervalo2 = 200;
long timer2 = millis();
int estadoPin13 = LOW;
// Parametros del pin 8
const int pinLed8 = 8;
long intervalo3 = 3000;
long timer3 = millis();
int estadoPin8 = LOW;
void setup() {
pinMode(pinLed12, OUTPUT); //pin 12 como salida
pinMode(pinLed13, OUTPUT); //pin 13 como salida
pinMode(pinLed8, OUTPUT); //pin 13 como salida
}
void loop() {
if ( (millis() - timer1) > intervalo1){
parpadeo_12(); //invoca rutina de parpadeo pin 12
}
if ( (millis() - timer2) > intervalo2){
parpadeo_13(); //invoca rutina de parpadeo pin 13
}
if ( (millis() - timer3) > intervalo3){
parpadeo_8(); //invoca rutina de parpadeo pin 8
}
}
void parpadeo_12(){ //rutina de parpadeo pin 12
if (estadoPin12 == LOW)
estadoPin12 = HIGH;
else
estadoPin12 = LOW;
digitalWrite(pinLed12, estadoPin12);
timer1 = millis();
}
void parpadeo_13(){ //rutina de parpadeo pin 13
if (estadoPin13 == LOW)
estadoPin13 = HIGH;
else
estadoPin13 = LOW;
digitalWrite(pinLed13, estadoPin13);
timer2 = millis();
}
void parpadeo_8(){ //rutina de parpadeo pin 8
if (estadoPin8 == LOW)
estadoPin8 = HIGH;
else
estadoPin8 = LOW;
digitalWrite(pinLed8, estadoPin8);
timer3 = millis();
}
