Esercitazione del 11 nov. 2019¶
[Lezione del 11 nov 2019]
Misurare la temperatura¶
La scheda della esercitazione n.2 ci richiede di misurare la temperatura utilizzando un termoresistore.
Purtroppo nel ARDUINO STARTER KIT non ho trovato un termoresistore, ma un sensore di temperature. Quindi per ora …
Il dettaglio dello sketch è il seguente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | /* Embedded Systems Architecture - hardware
* application on 11th nov 2019
*
* measure the temperature using T36GZ
* in ARDUINO STARTER KIT we have a temperature sensor T36GZ, not a
* datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/TMP35_36_37.pdf
*/
#define TEMPERATURE A0 // temperature sensor output
#define TO_MV 5.0 / 1024.0 * 1000.0 // convert an analog UNO unit to mV
void setup() {
Serial.begin(9600); // init the serial at 9600 baud
}
void loop() {
float voltagemV;
float degreesC;
voltagemV = analogRead(TEMPERATURE) * TO_MV;
degreesC = (voltagemV - 500.0) / 10.0; // from datasheet of T36 pag.8 of 19
Serial.print("voltage (mV): ");
Serial.print(voltagemV);
Serial.print(" deg (C): ");
Serial.print(degreesC);
Serial.println();
delay(2000);
}
|
Il nucleo di questo sketch è la lettura di una tensione, che facciamo sulla
porta A0
alla linea 21. Qui possiamo osservare che è necessario
convertire il valore ottenuto dalla funzione analogRead
, perchè questa
ci da l’uscita del convertitore analogico/digitale dell’ARDUINO. Lo facciamo
motiplicando per il fattore di conversione definito alla linea 10.
La seconda complicazione consiste nel dover convertire la lettura da mV a °C. Questo lo facciamo alla linea 23, dedotta dal datasheet del sensore utilizzato.
Dopo di che si scrivono sulla seriale i valori letti e calcolati, si attende due secondi e si ricomincia.