Sensore di temperatura LM35 – Arduino

Uno dei modi più semplici ed economici per misurare la temperatura con la scheda Arduino è utilizzare il sensore di temperatura LM35. Questi sensori sono abbastanza precisi e non necessitano di componenti esterni per funzionare. Quindi, con poche connessioni e un po’ di codice Arduino, misurerai la temperatura in pochissimo tempo!

Sensore di temperatura LM35

L’LM35 è un sensore di temperatura di precisione a bassa tensione prodotto da Texas Instruments. È un chip che fornisce in uscita una tensione che è linearmente proporzionale alla temperatura in °C a cui è sottoposto ed è quindi molto facile da leggere con un pin analogico di Arduino.

Sensore di temperatura lm35

Il sensore di temperatura LM35 ha una buona preciso per la maggior parte delle applicazioni e non richiede componenti esterni per funzionare. Inoltre, il sensore LM35 non richiede calibrazione e fornisce una precisione tipica di ±0,5°C a temperatura ambiente e ±1°C su un intervallo di temperatura completo da −55°C a +155°C.

Il sensore può essere alimentato con una tensione che va da 4V a 30V e consuma meno di 60µA durante le conversioni di temperatura attive, fornendo un autoriscaldamento molto basso (meno di 0,08°C in aria ferma).

Ecco le specifiche complete:

Alimentazione4V a 30V
Assorbimento60µA
Intervallo di temperaturaDa -55°C a +155°C
Precisione±0,5°C
Fattore di scala di uscita10 mV/°C
Uscita a temperatura ambiente250 mV

L’unico svantaggio del sensore LM35 è che richiede una tensione di polarizzazione negativa per misurare le temperature negative. 

Un’alternativa migliore all’LM35 è utilizzare un sensore di temperatura digitale come il DS18B20. I sensori di temperatura digitali hanno una migliore immunità al rumore, utile quando il sensore è posizionato a distanza o in un ambiente elettricamente rumoroso.

Come misurare la temperatura

Il sensore di temperatura LM35 è facile da usare; basta collegare il pin sinistro all’alimentazione (da 4 V a 30 V) e il pin destro a terra.

collegamento lm35

Quindi il pin centrale avrà una tensione analogica direttamente proporzionale (lineare) alla temperatura in °C.

Caratteristica tensione temperatura lm35

Per convertire la tensione in temperatura, si usa la formula:

Temperatura (°C) = Vout * 100

Ad esempio, se la tensione in uscita è 0,5 V significa che la temperatura è 0,5*100 = 50°C

Collegamento del sensore di temperatura LM35 a un Arduino

Collegare il sensore di temperatura LM35 a una scheda Arduino è semplicissimo. Bisogna solo collegare i tre pin: due per l’alimentazione e uno per la lettura del valore del sensore.

Il sensore può essere alimentato direttamente a 5V. La tensione positiva si collega a ‘+Vs’ e la terra si collega a ‘GND’. Il pin centrale “Vout” è il segnale analogico in uscita dal sensore e si collega all’ingresso analogico A0 di Arduino.

Lettura dei dati di temperatura analogici

Come abbiamo visto nello schema elettrico, l’uscita dell’LM35 è collegata a uno degli ingressi analogici di Arduino. Il valore di questo ingresso analogico può essere letto con la analogRead() funzione.

Tuttavia, la analogRead() funzione non restituisce effettivamente la tensione di uscita del sensore. Invece mappa la tensione su valori interi a 10 bit compresi tra 0 e 1023. Per riconvertire questo valore in tensione utilizziamo la formula:

Vout = (lettura da ADC) * (5 / 1024)

Questa formula converte il numero 0-1023 dall’ADC in 0-5V. Quindi, per convertire i volt in temperatura, utilizzare questa formula:

Temperatura (°C) = Vout * 100

Codice Arduino – Termometro semplice

Lo sketch seguente mostra un modo rapido per leggere il sensore di temperatura LM35 con Arduino e può servire come base per esperimenti e progetti più avanzati. Questo ci permette di leggere semplicemente il valore dall’LM35 utilizzando la porta analogica A0 e stampa la temperatura attuale (in °C e °F) sul monitor seriale.

// Definire il pin analogico, il pin Vout dell'LM35 è connesso ad A0
#define sensorPin A0

void setup() {
  // Inizia la comunicazione seriale a 9600 baud rate
  Serial.begin(9600);
}

void loop() {
  // Ottieni la lettura di tensione dall'LM35
  int reading = analogRead(sensorPin);

  // Converti la lettura in tensione
  float voltage = reading * (5.0 / 1024.0);

  // Converti la tensione in gradi Celsius
  float temperatureC = voltage * 100;

  // Stampare la temperatura su monitor seriale in gradi Celsius
  Serial.print("Temperature: ");
  Serial.print(temperatureC);
  Serial.print("\xC2\xB0"); // shows degree symbol
  Serial.print("C | ");

  delay(1000); // attendi un secondo per la prossima lettura
}

Dovresti vedere il seguente output sul monitor seriale.

Related Articles

2 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Ultimi Articoli