Ecco un esempio di codice Arduino per leggere la temperatura utilizzando il sensore di temperatura DS18B20 e visualizzare i risultati su un display I2C.
Prima di tutto, assicurati di avere installate le librerie OneWire e LiquidCrystal_I2C nella tua IDE di Arduino. Puoi farlo andando su “Strumenti” -> “Gestione librerie” e cercando i nomi delle librerie.
#include <OneWire.h>
#include <LiquidCrystal_I2C.h>
// Pin del sensore di temperatura
const int pinDS18B20 = 2;
// Setup del sensore di temperatura
OneWire oneWire(pinDS18B20);
DallasTemperature sensors(&oneWire);
// Indirizzo I2C del display
const int addr = 0x27;
// Numero di colonne e righe del display
const int cols = 16;
const int rows = 2;
// Creazione dell'oggetto display
LiquidCrystal_I2C lcd(addr, cols, rows);
void setup() {
// Inizializzazione del sensore di temperatura
sensors.begin();
// Inizializzazione del display
lcd.begin(cols, rows);
}
void loop() {
// Lettura della temperatura
sensors.requestTemperatures();
float temperatura = sensors.getTempCByIndex(0);
// Visualizzazione della temperatura sul display
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temperatura:");
lcd.setCursor(0, 1);
lcd.print(temperatura);
lcd.print(" C");
// Ritardo di 1 secondo tra le letture
delay(1000);
}
In questo esempio, viene utilizzata la libreria OneWire per comunicare con il sensore di temperatura DS18B20 e la libreria LiquidCrystal_I2C per comunicare con il display I2C.
Nel setup, viene inizializzato il sensore di temperatura e il display. Nel loop, viene richiesta la temperatura al sensore, quindi viene visualizzata sul display. Viene utilizzato un ritardo di 1 secondo tra le letture per evitare una visualizzazione troppo rapida dei dati.
Assicurati di aver collegato correttamente il sensore di temperatura DS18B20 e il display I2C al tuo Arduino, e di aver selezionato il giusto indirizzo I2C per il display nel codice (nel nostro caso, 0x27). Adatta il codice se l’indirizzo del tuo display è diverso.