Ci sono diversi sensori di temperatura in commercio, alcuni molto precisi e sensibili, altri in grado di misurare temperature su un vasto intervallo di valori, come le termocoppie. Il sensore TMP36 è facilmente reperibile ed utilizzabile.

Il TMP36 permette di acquisire temperature comprese nell’intervallo tra -40°C e +125°C restituendo in uscita valori di tensione lineari tra circa 0.1Vdc e 1.7Vdc. Una variazione di grado produce una variazione della tensione di uscita pari a 10mV; alla temperatura di 0°C il sensore eroga una tensione di 500mV.

Collegate il sensore TMP36 come nello schema di figura: i pin esterni alla alimentazione +5V e GND mentre il pin interno costituisce l’input analogico per la scheda Arduino. Il sensore TMP36 è un dispositivo analogico, collegandolo al pin A0 la ADC di Arduino campiona, quantizza e codifica su 10bit i valori in ingresso.

 

Il programma consente di leggere il valore di tensione letto su A0. Fai click sul sensore e sposta l’indicatore che appare sopra.

 

 

Il codice non fa altro che convertire in forma digitale la tensione presente sul piedino A0, generata dal TMP36.

Quel valore va però convertito in modo da leggere la temperatura effettiva. Il TMP36 ha questo grafico tensione – temperatura (la retta di colore rosso).

Per correggere i valori letti sul monitor seriale basta usare questa formula:

temp = ((val_Adc * 0.00488) – 0.5) / 0.01;

e modificare il programma con questo altro seguente:

int valore = 0;

float temp = 0;

 

void setup(){

Serial.begin(9600);

}

 

void loop(){

 

valore = analogRead(0);

temp = ((valore * 0.00488) – 0.5) / 0.01;

Serial.println(temp);

delay(500);

}

 

 

 

 

 

 

Esercizio: un sistema di monitoraggio controlla la temperatura di una macchina: se la temperatura è in un intervallo accettabile 0 °C – 50 °C un led è nello stato verde. Se la temperatura è inferiore o superiore ai limiti un led rosso si accende. Il sistema misura anche il tempo in cui la temperatura è fuori intervallo, oltre un certo tempo di permanenza a temperatura errata, 2 led rossi cominciano a lampeggiare.