Muy complicado aunque funciona, porque no usan sprintf
void ImprimeFecha() {
DateTime now = rtc.now(); // Consulta al RTC
lcd.setCursor(0,0); // Fija el cursor en la primera línea
lcd.print(DiaDeSemana[now.dayOfTheWeek()]); // Imprime el día de la semana
lcd.setCursor(10,0);
printDigits(now.day(), DEC); // Imprime el día
lcd.print('/'); // Separador
printDigits(now.month(), DEC); // Imprime el mes
lcd.print('/'); // Separador
lcd.print(now.year(), DEC); // Imprime el año
}
void ImprimeHora() {
DateTime now = rtc.now(); // Consulta el RTC
lcd.setCursor(13,1); // Fija cursor en 13,1
lcd.write(1); // Imprime el gráfico
lcd.print(':');
printDigits(now.hour()); // Imprime hora
lcd.print(':');
printDigits(now.minute()); // Imprime minuto
MinActual = now.hour()*60+now.minute(); // Se actualiza la variable MinActual que será usada para encender y apagar las luces del acuario. Su valor va de 0 a 1439.
}
Otra forma que evita el problmea de los dias/meses/horas/minutos de 1 digitos es esta
void ImprimeFecha() {
char buffer[20];
DateTime now = rtc.now(); // Consulta al RTC
lcd.setCursor(0,0); // Fija el cursor en la primera línea
lcd.print(DiaDeSemana[now.dayOfTheWeek()]); // Imprime el día de la semana
lcd.setCursor(10,0);
sprintf(buffer,"%02d/%02d/%04d", now.day(), now.month(), now.year());
lcd.print(buffer);
}
void ImprimeHora() {
char buffer[20];
DateTime now = rtc.now(); // Consulta el RTC
lcd.setCursor(13,1); // Fija cursor en 13,1
lcd.write(1); // Imprime el gráfico
sprintf(buffer,"%02d:%02d:%02d", now.hout(), now.minute(), now.second());
lcd.print(buffer);
MinActual = now.hour()*60+now.minute(); // Se actualiza la variable MinActual que será usada para encender y apagar las luces del acuario. Su valor va de 0 a 1439.
}