Muy buenos días,
Empezar de cero con Arduino es "fácil", gracias a la cantidad de libre información que hay online.
Empezar de cero con Arduino sin tener ni pajolera idea de programar es una auténtica aventura, nunca había celebrado tanto que se encendiera un simple led o saber la temperatura ambiente de mi habitación.
Bueno, aquí viene mi duda, he copiado y actualizado para mis necesidades el siguiente código de anochecer y amanecer.
Gracias a la ayuda de blogs como GitHub - PabloGF/Aquarium de donde saqué el original.
Mi duda es: yo ahora enciendo Arduino y dejo que haga su función sin problema, lo único es que al cabo de los días se retrasa y se descuadra de horario.
He comprado un RTC_DS1307 y tengo la librería y los códigos básicos para su funcionamiento y para dar hora a Arduino, pero como hago para transformar mi código poniendo horario y como le digo que tire del reloj?
Código: Strip RGB
// Test Amanece Anochece 24h
int ledA = 10;
int ledB = 9;
int ledC = 8;
void setup() {
// initialize the digital pin as an output.
pinMode(ledA, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(ledC, OUTPUT);
}
void loop() {
// Anochecer (dura 55min)
analogWrite(ledA,255);
delay(300000);
analogWrite(ledA,255);
delay(300000);
analogWrite(ledA,255);
analogWrite(ledB,255);
delay(300000);
analogWrite(ledA,255);
analogWrite(ledB,127);
delay(300000);
analogWrite(ledA,255);
analogWrite(ledB,64);
analogWrite(ledC,191);
delay(300000);
analogWrite(ledA,255);
analogWrite(ledB,33);
analogWrite(ledC,127);
delay(300000);
analogWrite(ledA,255);
analogWrite(ledB,12);
analogWrite(ledC,64);
delay(300000);
analogWrite(ledA,255);
analogWrite(ledB,4);
analogWrite(ledC,33);
delay(300000);
analogWrite(ledA,255);
analogWrite(ledB,0);
analogWrite(ledC,12);
delay(300000);
analogWrite(ledA,255);
analogWrite(ledC,4);
delay(300000);
analogWrite(ledA,255);
analogWrite(ledC,0);
delay(300000);
analogWrite(ledA,64);
delay(3900000); // 1h5min moon light
analogWrite(ledA,0);
delay(33000000); //tiempo de oscuridad 12h
// Amanecer (dura 50min) 10:10
analogWrite(ledA,12);
delay(300000);
analogWrite(ledA,12);
delay(300000);
analogWrite(ledA,33);
analogWrite(ledB,4);
delay(300000);
analogWrite(ledA,64);
analogWrite(ledB,12);
delay(300000);
analogWrite(ledA,127);
analogWrite(ledB,33);
analogWrite(ledC,4);
delay(300000);
analogWrite(ledA,191);
analogWrite(ledB,64);
analogWrite(ledC,12);
delay(300000);
analogWrite(ledA,255);
analogWrite(ledB,127);
analogWrite(ledC,33);
delay(300000);
analogWrite(ledB,191);
analogWrite(ledC,64);
delay(300000);
analogWrite(ledB,255);
analogWrite(ledC,127);
delay(300000);
analogWrite(ledC,191);
delay(300000);
analogWrite(ledC,255);
delay(43200000); //Tiempo de luz con todos los LEDs al 100%
// (milisegundos) (12h) (de 11:00 a 23:00)
}
Muchas gracias a todas/os, sin gente como vosotros sería difícil que paquetes como yo aprendiéramos algo, gracias.