Ecco lo sketch.
Lo RTCshield con usb attaccata produce orario corretto, oppure lo prende da un'altra parte?
#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
char buffer1[20];
char buffer2[20];
byte Centigradi[8] = {
B00010,
B00101,
B00010,
B00000,
B00000,
B00000,
B00000,
B00000
};
byte Apice_2[8] = {
B00110,
B01001,
B00010,
B00100,
B01111,
B00000,
B00000,
B00000
};
byte Freccsu[8] = {
B00100,
B01110,
B10101,
B00100,
B00100,
B11111,
B00000,
B00000
};
LiquidCrystal_I2C lcd(0X27 , 20 , 4);
RTC_DS1307 RTC;
void setup () {
Wire.begin();
RTC.begin();
lcd.begin();
lcd.createChar (0, Centigradi); // load simbolo Centigradi to memory 0
lcd.createChar (1, Apice_2); // load 2 apice to memory 1
lcd.createChar (2, Freccsu); // load Freccia su to memory 2
//RTC.adjust(DateTime(DATE, TIME));
if (! RTC.isrunning()) {
RTC.adjust(DateTime(DATE, TIME));
Serial.println("RTC fa le bizze e scrive quel che vuole");
}
}
void loop () {
DateTime now = RTC.now();
sprintf(buffer1, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
lcd.setCursor(12,0);
lcd.print( buffer1 );
sprintf(buffer2, "%02d/%02d/%d", now.day(), now.month(), now.year());
lcd.setCursor(0,0);
lcd.print( buffer2 );
lcd.setCursor (0,1); //posizione Temperatura
lcd.print("Temp:");
//lcd.print(sensors.getTempCByIndex(0));
lcd.print("XX,X");
lcd.print(char(0));
lcd.setCursor (12,1); //posizione Pompa
lcd.print("POMPA:");
lcd.print("XXX");
lcd.setCursor (0,2); //posizione Co2
lcd.print("CO");lcd.print(char(1));lcd.print(":");
//lcd.print("d");lcd.print("ppm ");
lcd.setCursor (8,2); //posizione Co2 valve
lcd.print("FASE:");
//lcd.print(char(1));lcd.print(" V:");lcd.print("STOP");
lcd.setCursor (0,3); //posizione ULTIMARIGA
lcd.print("RISC:");
// bisogna vedere se metterlo quando è acceso
lcd.print(char(2));
lcd.setCursor (11,3); //posizione ULTIMARIGA
lcd.print("LUCE:");lcd.print("XXX%");
delay(1000);
}
Grazie