Hola.
Tengo un problema con la librería TimeAlarms, muy, pero que muy raro.
Esta es la función de ajuste de las alarmas:
void alarmsSetUp() {
//Horarios de conexion
t = rtc.getTime(); // lee la hora del reloj RTC
setTime(t.hour, t.min, t.sec, t.date, t.mon, t.year); //Ajusta la hora del arduino
Alarm.alarmRepeat(9, 19, 0, sendIR_code);
Alarm.alarmRepeat(14, 22, 0, sendIR_code);
Alarm.alarmRepeat(17, 15, 0, sendIR_code);
Alarm.alarmRepeat(23, 52, 15, sendIR_code);
}
Es decir que tiene que enviar un IR 4 veces al dia (por el momento).
Lo que es muy extraño es que las 2 primeras alarmas (9:19:0 y 14:22:0) no funcionan y las otras 2 (17:15:0 y 23:52:15) funcionan perfectamente.
La primera si la cambio a por las 10:01:00 tambien funciona.
A la hora de presentar la hora en la pantalla hay un Alarm.delay(1000); para que mire si tiene que saltar o no.
He probado a ponerlas en el setup, a cambiarlas de orden y mil cosas más, pero las de las 9:19 y la de las 14:22, no funcionan, llega la hora y salta sin entrar en sendIR_code.
¿el alguna limitación de la librería? La he visto por encima y no parece que sea ese el problema.
No he encontrado un patrón de las horas a las que funciona o no. He quitado las 2 primeras y he dejado las segundas y funcionan. Dejando sólo las primeras no saltan.
La presentación del reloj es la siguiente función:
void digitalClockDisplay() {
// reloj en el LCD
lcd.setCursor(0, 0);
printDigits(hour());
lcd.print(":");
printDigits(minute());
lcd.print(":");
printDigits(second());
Alarm.delay(1001);
}
void printDigits(int digits) {
if (digits < 10)
lcd.print('0');
lcd.print(digits);
}
Muchas gracias por vuestra atención.