Buenos días, para el Belen de este año próximo, ya he realizado el programa, hay dos dudas. la primera me trae de cabeza.
He realizado toda la secuencia de iluminación, incluso con iluminaciones que se desvanecen y otras van aumentando.
A rasgos generales, el ciclo es el siguiente:
Estos son los leds y el pulsador que lo pone en marcha hasta finalizar la secuencia.
pinMode (5, OUTPUT);//Azul
pinMode (6, OUTPUT);//Rojo
pinMode (10, OUTPUT);//6 leds
pinMode (11, OUTPUT);//4 leds
pinMode (12, OUTPUT);//2 leds
pinMode (pulsador, INPUT_PULLUP);
El programa que luego lo pongo, es: El rojo siempre encendido, pulsamos y el rojo se desvanece. Seguidamente se encienden 6 leds, luego 4 y luego 2. finalmente el azul se enciende poco a poco.
Todo funciona a la perfección.
El reto es conseguir que mientras se desvanece el rojo, ya empiecen a encenderse el ciclo de leds 10.11.12. Cuando acaba el 12, el rojo apagado y empieza a encenderse el Azul, que luego se apaga de golpe.
No consigo que me haga dos cosas a la vez, solo consigo que cuando acabe una cosa empiece otra.
Este es el programa funcionando
byte r;
#define pulsador 2
void setup() {
// put your setup code here, to run once:
pinMode (5, OUTPUT);//Azul
pinMode (6, OUTPUT);//Rojo
pinMode (10, OUTPUT);//6 leds
pinMode (11, OUTPUT);//4 leds
pinMode (12, OUTPUT);//2 leds
pinMode (pulsador, INPUT_PULLUP);
digitalWrite (6, 1); //rojo encendido
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead (pulsador) == 0) { //Lee el pulsador
r = 255;
for (int i = 0; i < 255; i++) {
delay (5);
analogWrite (6, r); //decrementa el rojo
delay(10);
//analogWrite (10, i);
r--;
}
digitalWrite (10, 1);
delay(500);
digitalWrite (10, 0);
digitalWrite (11, 1);
delay(500);
digitalWrite (11, 0);
digitalWrite (12, 1);
delay(500);
digitalWrite (12, 0);
{
r = 255;
for (int i = 0; i < 255; i++) {
//delay (35);
//analogWrite (5, r);
delay(10);
analogWrite (5, i);
r--;
}
delay(1000);
digitalWrite (5, 0);
digitalWrite (6, 0);
delay(50);
digitalWrite (6, 1);
}
}
}