Esto me tiene desorientado el programa me reclama ‘hour’ was not declared in this scope , esta es la linea
lcd.print(hour(), DEC); ok lo cambio a lcd.print(now.hour(), DEC); y reclama por el now
arme el ejemplo de arduino RTDlib / ds 3231 y agregue un lcd y funciona bien comparo miro y remiro y no pillo el problema ayer funcionaba en un sketh de prueba hoy comencé a ordenar y me pareció ver en un momento algo de actualización de librerías coincidencia o no pero llevo casi todo el dia y no se que sera.
E copiado la parte de la fecha y hora del serial print a mi sketch y funciona y con el lcd.print
deshabilitado el con /* */ en la parte de fecha y hora
todo lo demás se muestra
Realice un cambio de posición puce la parte del lcd print a continuación de la parte del serial print y funciono
no entiendo porque, pero lo dejare en prueba
podrían ayudarme una vez mas
codigo usado funciona prueba
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include "RTClib.h"
LiquidCrystal_I2C lcd(0x3F, 16, 2); // car127
RTC_DS1307 rtc;
void setup () {
lcd.begin();
while (!Serial); // for Leonardo/Micro/Zero
Serial.begin(9600);
delay(3000); // wait for console opening
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2017, 11, 23, 1, 49, 0));
}
void loop () {
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
//Serial.print(" (");
Serial.print(" Hrs ");
//Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
//Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
// Serial.print();
// Serial.print();
lcd.clear();
lcd.print(":");
lcd.print(now.minute(), DEC);
lcd.setCursor(0,0);
lcd.print("Fecha:");
lcd.print("");
lcd.print(now.day(), DEC);
lcd.print("/");
lcd.print(now.month(), DEC);
lcd.print("/");
// lcd.print(now.year()-2000); //Solo imprimo los dos ultimos digitos del año
lcd.print(now.year(), DEC);
lcd.print(" ");
// lcd.clear();
// lcd.backlight();
lcd.setCursor(0,1);
lcd.print("Hora:");
lcd.print(" ");
lcd.print(now.hour(), DEC);
//lcd.print(now.hour());
lcd.print(":");
lcd.print(now.minute(), DEC);
delay (3000); // Pausa 3 segundos
delay(1000);
}
y el código del problema adjuntado
car127nuevo.ino (7.19 KB)