Codice Arduino per un sensore di temperatura LM75A
In questo tutorial impareremo come usare il sensore di temperatura LM75A con un Arduino per misurare la temperatura sia in gradi Celsius che in Fahrenheit. Il sensore LM75A comunica tramite il protocollo I2C, rendendo facile l'integrazione con le schede Arduino. Alla fine di questo tutorial avrai una configurazione funzionante che mostra le letture della temperatura ogni secondo.

Per sfruttare al meglio questo tutorial, consiglio di guardare il video associato, che fornisce una guida visiva alla configurazione e all'implementazione del codice (nel video a 20:29).
Hardware spiegato
Il sensore di temperatura LM75A è un sensore digitale in grado di misurare la temperatura ambiente con alta precisione. Funziona tramite il protocollo di comunicazione I2C, consentendo di collegare più sensori allo stesso bus. Il sensore dispone di una funzione di spegnimento per sovratemperatura, che può aiutare a risparmiare energia quando non è in uso.
Questo sensore è tipicamente disponibile sia come chip standalone sia come modulo su PCB. Il modulo include pin essenziali come VCC, GND, SDA e SCL, necessari per la comunicazione con Arduino. Quando si utilizza questo sensore, è importante assicurarsi che i collegamenti siano corretti e selezionare l'indirizzo I2C corretto per la comunicazione.
Dettagli della scheda tecnica
| Produttore | NXP / Texas Instruments |
|---|---|
| Numero di parte | LM75A |
| Tensione logica/IO | da 2,7 V a 5,5 V |
| Tensione di alimentazione | da 2,7 V a 5,5 V |
| Corrente di uscita (per canale) | 3 mA |
| Corrente di picco (per canale) | 10 mA |
| Linee guida sulla frequenza PWM | Non applicabile |
| Soglie logiche di ingresso | 0.3 VCC (alto), 0.2 VCC (basso) |
| Caduta di tensione / RDS(on)/ saturazione | 0,5 V max |
| Limiti termici | -55 °C a +125 °C |
| Pacchetto | SOIC-8 / TSSOP |
| Note / varianti | Disponibile in diversi indirizzi I2C |
- Assicurati che l'indirizzo I2C corretto sia impostato nel tuo codice.
- Usare resistenze di pull-up sulle linee SDA e SCL se necessario.
- Alimenta il sensore con una tensione stabile (da 2,7 V a 5,5 V).
- Monitor per il surriscaldamento; il sensore può funzionare fino a 125 °C.
- Maneggiare il sensore con cura per evitare danni durante l'installazione.
Istruzioni di cablaggio

Per collegare il sensore di temperatura LM75A al tuo Arduino, inizia collegando il pin di massa (GND) del sensore al pin di massa (GND) dell'Arduino. Successivamente collega il pin VCC del sensore al pin 5V dell'Arduino. Per la comunicazione I2C, collega il pin SDA del sensore (di solito contrassegnato in verde) al pin A4 dell'Arduino e il pin SCL (di solito contrassegnato in blu) al pin A5. Se stai usando un modello diverso di Arduino, assicurati di collegarti ai pin I2C corretti; per esempio, su un Arduino Mega SDA si collega al pin 20 e SCL al pin 21.
Se stai usando l'LM75A come chip nudo invece che come modulo, assicurati di collegare correttamente i pin corrispondenti: il pin 1 va collegato ad A4 (SDA), il pin 2 ad A5 (SCL), il pin 4 a massa e il pin 8 a VCC. Lascia gli altri pin scollegati. Questa configurazione garantisce che il sensore possa comunicare correttamente con l'Arduino.
Esempi di codice e guida passo passo
Il codice seguente inizializza il sensore LM75A e legge la temperatura ogni secondo. L'identificatore chiave in questo codice èlm75a_sensor, che è un'istanza della classe LM75A. Questa istanza viene utilizzata per recuperare le letture della temperatura dal sensore.
LM75A lm75a_sensor(false, false, false);Questa riga crea un'istanza della classe LM75A, passando parametri che rappresentano lo stato dei pin A0, A1 e A2. Lo stato predefinito può essere impostato sufalsese questi pin non vengono usati.
Nelsetup()Nella funzione inizializziamo la comunicazione seriale a 9600 baud, fondamentale per visualizzare le letture della temperatura sul monitor seriale.
void setup(void) {
Serial.begin(9600);
Serial.println("Robojax LM75A Test");
}Questo frammento di codice configura il monitor seriale, permettendoci di visualizzare le letture della temperatura mentre vengono stampate ogni secondo.
Nelloop()Nella funzione, recuperiamo la temperatura in gradi Celsius e verifichiamo la presenza di eventuali errori. Se la temperatura è valida, la stampiamo insieme al suo equivalente in gradi Fahrenheit.
float temperature_in_degrees = lm75a_sensor.getTemperatureInDegrees();
if (temperature_in_degrees == INVALID_LM75A_TEMPERATURE) {
Serial.println("Error while getting temperature");
} else {
Serial.print("Temperature: ");
Serial.print(temperature_in_degrees);
Serial.print(" degrees (");
Serial.print(LM75A::degreesToFahrenheit(temperature_in_degrees));
Serial.println(" Fahrenheit)");
}Questo segmento di codice dimostra come gestire la lettura della temperatura e stamparla sia in gradi Celsius sia in Fahrenheit sul monitor seriale. Include la gestione degli errori per letture non valide.
Per il codice completo, consulta la sezione di caricamento sotto l'articolo.
Dimostrazione / Cosa aspettarsi
Una volta completato il cablaggio e caricato il codice sul tuo Arduino, dovresti vedere le letture della temperatura visualizzate sul monitor seriale ogni secondo. Puoi testare la reattività del sensore toccandolo o usando una pistola termica, e dovresti osservare che le letture cambiano di conseguenza. Fai attenzione alla polarità invertita quando colleghi il sensore, perché potrebbe danneggiare il modulo.
Risorse e riferimenti
Nessuna risorsa ancora.
File📁
File Fritzing
-
LM75 Temperature Sensor
application/zip0.01 MB