Come vedi dal datasheet, l’integrato ha soli 3 pin. Nell’immagine vedi a cosa servono. Mi raccomando a fare attenzione all’ordine di collegamento!
Il primo pin è collegato a 5V, il secondo è la tensione di uscita che che Arduino “convertirà” in °C: lo collegherai a un pin analogico. Il terzo pin va collegato a massa. Ecco quindi lo schema:
Il TMP36 misura temperature che vanno da -40 a +125°C e restituisce in uscita une tensione tra 0.1V e 1.7V. Alla temperatura di 0°C la tensione in uscita è pari a 500mV (0.5V). Questa, come vedi nel grafico, all’aumentare di un grado, aumenta di 10mV.
Ecco uno sketch che visualizza sul monitor seriale la temperatura:
int valADC = 0;
float temp = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
valADC = analogRead(0);
temp = ((valADC * 0.00488) - 0.5) / 0.01;
Serial.println(temp);
delay(300);
}
La formula per convertire il valore ottenuto con analogRead()
in °C è la seguente:
dove:
- T è la temperatura espressa in °C
- ValADC è il valore che restituisce la conversione analogico-digitale a 10 bit di Arduino
- precisioneADC è ottenuto dividendo la massima tensione sul pin analogico (5V) per il numero massimo restituito dall’ADC (Analog Digital Converter): 1023. 1023:5=0.00488
- tensioneZeroGradi è la tensione che si ha in uscita quando la temperatura è 0°C
- variazioneTensione è la variazione dell’output all’aumento di 1°C
Analizziamo quindi il codice. All’inizio sono definite le variabili globali. valADC
è di tipo intero, mentre temp
di tipo decimale, float: la temperatura potrà essere espressa con numeri decimali.
Nel setup()
inizializziamo la comunicazione seriale a 9600 boud/s.
Nel loop()
assegniamo alla variabile valADC
la conversione della tensione che si trova sul pin 13 in un numero (da 0 a 1023). Nella riga sotto convertiamo questo numero in gradi centigradi e lo assegniamo alla variabile temp
. Successivamente scriviamo sulla porta seriale questa variabile. Infine ho inserito una pausa di 300ms per rendere più leggibili i dati letti sul monitor seriale.
Nel video sotto puoi vedere il circuito in funzione.