ds1307 primi passi

Salve
vorrei iniziare a capire come usare l’RTC, per ora riesco a stampare l’ora corrente ma vorrei impostare degli eventi tipo ad ora x accendo led o relè, ad ora y lo spengo.
Ho trovato degli scketch piu complessi che permettono il settaggio di data e ora tramite pulsanti ma sono nettamente fuori dalla mia portata.

#include <Wire.h>
#include <RTClib.h>
#include <Adafruit_LiquidCrystal.h>
 
 
char buffer[10];
 
RTC_DS1307 RTC;
Adafruit_LiquidCrystal lcd(0);
 
void setup () {
  
 
    Wire.begin();
    RTC.begin();
    lcd.begin(20, 4);
 
   // RTC.sqw(1);
    if (! RTC.isrunning()) {
      RTC.adjust(DateTime(__DATE__, __TIME__));
    }
}
 
void loop () {
 
    DateTime now = RTC.now();
    lcd.clear();
 
    sprintf(buffer,  "%02d/%02d/%d", now.day(), now.month(), now.year());
    lcd.setCursor(0,0);
    lcd.print( buffer );
 
    char buffer[10] = "";
 
    sprintf(buffer,  "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
    lcd.setCursor(0,1);
    lcd.print( buffer );
 
    delay(1000);
}

con questo scketch mi stampa data e ora ma ad ogni secondo …delay(1000) il display sfarfalla esistono altre soluzioni per ovviare a questo?

Togli Sposta in fondo al setup() la lcd.clear().

Per effettuare determinate azioni ad una determinata ora puoi mettere nel loop() degli if che lavorano sui valori di now.hour() e now.minute() (ed eventualmente now.second()). Ci sono metodi più efficienti ma intanto inizierai a capire la logica.

tolto la lcd.clear() ed ora funziona in modo corretto.

Aggiunto al loop un qualcosa giusto per provare..

if (now.hour()>= 17)         //imposto ora    accensione led (ore 17)
       if (now.minute()>= 9)      //imposto minuti accensione led (min 09) 
        digitalWrite(LED, HIGH);

...FUNZIONA :smiley:
ehm.. scusa.. funziona

Proverò qualcosa di piu complesso ma un passo avanti l'ho fatto, a proposito SukkoPera nel progetto del termometro sono riuscito a stampare minime e massime distinte su videata secondaria.
Scusate la scarsa proprietà dei termini tecnici (videata mi suona male... :o )
grazie