Sensore di temperatura LM75A con LCD1602 I2C

Sensore di temperatura LM75A con LCD1602 I2C

In questo tutorial impareremo come utilizzare il sensore di temperatura LM75A per visualizzare le letture di temperatura sia in gradi Celsius che in gradi Fahrenheit su uno schermo LCD1602 tramite la comunicazione I2C. Il LM75A può misurare temperature nell'intervallo da -55°C a +125°C, rendendolo adatto a varie applicazioni. Una volta completata la configurazione, potrai vedere le letture di temperatura in tempo reale sul display LCD.

LCD1602-I2C display module with 4 wires

Per questo progetto utilizzeremo il sensore LM75A e il modulo LCD1602 collegati via I2C, che permettono un cablaggio più semplice e l'impiego di meno pin sull'Arduino. L'obiettivo è creare un sistema che legge continuamente la temperatura e la visualizza sul display LCD. Se hai bisogno di chiarimenti su qualsiasi parte del processo, assicurati di consultare il tutorial video (nel video a 00:00).

Hardware spiegato

I componenti principali per questo progetto includono il sensore di temperatura LM75A e il display LCD1602. L'LM75A è un sensore di temperatura I2C che fornisce misurazioni della temperatura accurate. Comunica con l'Arduino utilizzando solo due fili, SDA (linea dati) e SCL (linea di clock), rendendo semplice integrarlo nei tuoi progetti.

L'LCD1602 è un display alfanumerico 16x2 che può mostrare fino a 32 caratteri contemporaneamente. Utilizzando l'interfaccia I2C, possiamo controllarlo con soli due fili aggiuntivi, il che semplifica notevolmente il processo di cablaggio. La retroilluminazione dell'LCD può inoltre offrire una migliore visibilità in condizioni di scarsa illuminazione.

Dettagli della scheda tecnica

ProduttoreTexas Instruments
Numero di parteLM75A
Tensione logica/I/Oda 2,7 V a 5,5 V
Tensione di alimentazioneda 2,7 V a 5,5 V
Corrente di uscita (per canale)Non applicabile
Corrente di picco (per canale)N/D
Linee guida sulla frequenza PWMN/D
Soglie logiche di ingresso0.3 * Vcc (basso), 0.7 * Vcc (alto)
Caduta di tensione / RDS (in conduzione)/ saturazioneNon applicabile
Limiti termiciTemperatura di esercizio: da -55°C a +125°C
PacchettoSOT-23
Note / variantiDisponibile in più indirizzi I2C

  • Assicurarsi di fornire un'alimentazione corretta (2.7 V a 5.5 V).
  • Usare resistenze di pull-up sulle linee SDA e SCL se necessario.
  • Verificare la configurazione degli indirizzi I2C per più dispositivi.
  • Mantieni i cablaggi corti per ridurre al minimo le interferenze.
  • Intervallo di temperatura del monitor: -55°C a +125°C.
  • Usa il monitor seriale per il debug delle letture di temperatura.
  • Gestisci efficacemente gli stati di errore nel codice.
  • Presta attenzione ai requisiti di alimentazione del display.

Istruzioni di cablaggio

Arduino_wiring_LM75A_LCD_bb

Per cablare il sensore di temperatura LM75A e l'LCD1602, inizia collegando l'alimentazione. Collega il pin VCC di entrambi, LM75A e LCD1602, al pin 5V dell'Arduino. Quindi collega il pin di massa (GND) di entrambi i moduli al pin GND dell'Arduino.

Successivamente, collega le linee di comunicazione I2C. Il pin SDA del LM75A dovrebbe essere collegato al pin A4 sull'Arduino, mentre il pin SCL dovrebbe essere collegato al pin A5. Questo consente la comunicazione I2C tra il sensore e l'Arduino. Assicurati che i collegamenti siano sicuri per evitare eventuali errori di comunicazione.

Esempi di codice e guida passo dopo passo

Nel codice includiamo innanzitutto le librerie necessarie per il sensore LM75A e il display LCD1602. Il seguente estratto mostra come creare un'istanza del sensore LM75A:

LM75A lm75a_sensor(false, false, false);

Questa riga inizializza l'oggetto sensore LM75A. I parametri booleani corrispondono ai pin A0, A1 e A2 del LM75A, consentendo indirizzi I2C diversi se necessario.

Successivamente, configuriamo il monitor seriale e inizializziamo il display LCD:

void setup(void) {
  Serial.begin(9600);
  lcd.begin();  
  lcd.backlight();
  lcd.print("Robojax LM75A");
}

Qui avviamo la comunicazione seriale a 9600 baud e inizializziamo il display LCD. La retroilluminazione viene accesa e un messaggio iniziale viene stampato sullo schermo.

Nel ciclo principale, leggiamo continuamente la temperatura e la visualizziamo:

float temperature_in_degrees = lm75a_sensor.getTemperatureInDegrees();
if (temperature_in_degrees == INVALID_LM75A_TEMPERATURE) {
  Serial.println("Error while getting temperature");
}

Questa sezione legge la temperatura dal sensore. Se la lettura non è valida, un messaggio di errore viene inviato al monitor seriale. Altrimenti, la temperatura può essere elaborata e visualizzata sul display LCD.

Dimostrazione / Cosa aspettarsi

Una volta che tutto è cablato e il codice è caricato, dovresti vedere le letture della temperatura sul display LCD1602, che alternano tra Celsius e Fahrenheit. Se il sensore LM75A funziona correttamente, aggiornerà continuamente la temperatura visualizzata ogni secondo. Se ci sono problemi, come polarità invertita o cablaggio errato, controlla le connessioni e assicurati che vengano usati i pin corretti (nel video a 00:00).

Immagini

LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LM75a-1
LM75a-1
LM75a-3
LM75a-3
LM75a-12
LM75a-12
Arduino_wiring_LM75A_LCD_bb
Arduino_wiring_LM75A_LCD_bb
129-LM75A temperature sensor with LCD1602 I2C
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

Risorse e riferimenti

File📁

File Fritzing

Altri file