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.