Ecco un esempio di codice Arduino per utilizzare un modulo RTC (Real-Time Clock) DS3231 con un display I2C per visualizzare la data e l’orario. Assicurati di avere collegato correttamente il modulo RTC DS3231 e il display I2C al tuo Arduino prima di caricare il codice.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <RTClib.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
RTC_DS3231 rtc;
void setup() {
// Inizializza il display OLED
if(!display.begin(SSD1306_I2C_ADDRESS, OLED_RESET)) {
Serial.println(F("Errore nell'inizializzazione del display OLED"));
while(true);
}
display.display();
// Inizializza il modulo RTC
if(!rtc.begin()) {
Serial.println(F("Errore nell'inizializzazione del modulo RTC"));
while(true);
}
// Imposta la data e l'orario del modulo RTC se necessario
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
DateTime now = rtc.now();
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
// Mostra la data e l'orario sul display
display.setCursor(0, 0);
display.print("Data: ");
display.println(now.toString("yyyy-MM-dd"));
display.setCursor(0, 16);
display.print("Orario: ");
display.println(now.toString("HH:mm:ss"));
display.display();
delay(1000); // Aggiorna ogni secondo
}
Assicurati di aver installato le librerie Adafruit_GFX, Adafruit_SSD1306 e RTClib tramite il “Gestore librerie” di Arduino IDE prima di caricare questo codice sul tuo Arduino.
Questo codice utilizza il modulo RTC DS3231 per ottenere la data e l’orario attuali e le visualizza su un display OLED tramite la libreria Adafruit_SSD1306. Puoi personalizzare il formato della data e dell’orario modificando le stringhe di formato nell’istruzione ‘now.toString()‘.
