Strumenti Utente

Strumenti Sito


scuole:vincenzocuoco_napoli:temperatura

Misurazione della temperatura con Arduino

Lo scopo dell’esperimento è misurare la temperatura dell’ambiente mediante un termistore collegato all’hardware Arduino. Abbiamo utilizzato le seguenti componenti:

  • Resistore: è un componente che oppone una resistenza, la resistenza è l’attitudine di un corpo ad opporre resistenza ed è misurata in Ohm (la legge di Ohm è una formula utilizzata per calcolare la relazione tra tensione, corrente e resistenza in un circuito elettrico). Sul resistore ci sono alcune linee colorate, le prime 2 sono le due cifre di un numero, il quale viene moltiplicato per il 10x (con x maggiore o uguale a 0), in cui x è determinato dalla terza linea, a volte più capitare ci sia una quarta linea dorata o argentata, quella linea rappresenta la tolleranza della resistenza.
  • Termistore: è un particolare tipo di resistore, che varia la sua resistenza in base alla temperatura, secondo l’equazione di Steinhart-Hart: $\frac{1}{T} = A + Bln⁡R + [C(ln ⁡R)]^3$, in cui A, B e C sono coefficienti che variano in base al modello di termistore, T è la temperatura assoluta e R è la resistenza, inoltre l’equazione di base per il funzionamento del termistore è $V_o = V_i \cdot \frac{R_2}{R_1+R_2}$ con Vo e Vi uguale al voltaggio in uscita e in entrata, e R1 e R2 uguali alla resistenza di un resistore e del termistore.
  • Display LCD: sono dei display che usano le proprietà di modulazione dei cristalli liquidi. Questo liquido viene intrappolato fra due superfici vetrose che sono piene di contatti elettrici che servono per applicare il campo elettrico al liquido. Ogni contatto elettrico comanda una piccola porzione del pannello chiamata pixel. All’esterno dei pannelli sono posizionati due polarizzatori, i cristalli liquidi hanno il compito di far ruotare di 90° la luce che arriva da primo polarizzatore, permettendole di passare attraverso l’altro.
  • Arduino UNO: è il modello più venduto tra quelli offerti da Arduino e aziende simili (i prodotti Arduino sono copyleft). Questo modello è caratterizzato da: un microchip, che costituisce il computer dell’hardware, nella quale vengono elaborati i dati; 32 pin, che permettono il passaggio di corrente e il ricevimento dei dati; due porte USB, una per caricare il programma, l’altra per permettere l’utilizzo di una batteria aggiuntiva da 9V.

Procedimento

Il sistema usato per l’esperimento è costituito dalla scheda Arduino UNO e da due “breadboard” la prima delle quali è connessa con il display LCD e sulla seconda è invece connessa al termistore, in aggiunta ad un resistore (con il valore della resistenza uguale a quello del termistore), il tutto è collegato tramite dei cavi “jumper” che permettono il passaggio di corrente. Per ricostruire il sistema si può usare lo schema di sotto mostrato.

Per quanto riguarda il codice, Abbiamo tenuto conto dell’equazione del termistore (in cui il voltaggio in entrata è 5V e la resistenza del resistore e del termistore sono uguali, 10kΩ) e sull’equazione di Steinhart-Hart per ottenere il valore della temperatura, il tutto è condensato nell’immagine seguente

Nella prima parte del codice abbiamo inizializzato tutte le variabili che abbiamo utilizzato nel programma.

  • ThermistoPin è il PIN a cui è collegato il PIN di output del termistore
  • Vo è la tensione analogica letta dal termistore
  • R1 è il valore della resistenza collegata al termistore
  • R2, T, sono rispettivamente la resistenza interna del termistore e la temperatura misurata
  • A, B, C sono le costanti del termistore, prese dal datasheet, che vengono poi utilizzate nell’equazione di Steinhart-Hart

Nella funzione void setup() inizializziamo la porta seriale. Nella funzione void loop() scriviamo tutte le operazioni che devono essere fatte una dopo l’altra e poiché ci troviamo in un loop queste operazioni verranno eseguite all’infinito. Le operazioni sono:

  • Lettura del pin del termistore
  • Dichiarazione della relazione che lega R2, R1 e la Vo
  • Dichiarazione di quanto vale la variabile logR2
  • Dichiarazione dell’equazione della temperatura.
  • Seguono poi le operazioni di stampa sull’LCD
  • La funzione delay è una funzione che mette in pausa tutte le operazioni per un certo intervallo di tempo espressi in millisecondi.
  • La funzione clear invece pulisce lo schermo LCD.

Scritto il codice e costruito il sistema, Arduino riceverà i dati e esporrà il risultato arrotondato ai decimi sul display, ecco le misurazioni:

Azioni Misurazione
- 296,88K ± 0,2K
Termistore premuto con le dita 297,54K ± 0,2K
Aria fredda sul termistore 293,21K ± 0,2K
Termistore stretto nella mano 299,36K ± 0,2K

Conclusioni

Come è possibile notare, a seconda del cambio dello stato ambientale variano anche le misurazioni, anche se non in maniera netta. Infatti, dopo il cambiamento ambientale i valori per un po’ di tempo cambiano velocemente per poi stabilizzarsi su un valore. I valori mostrati nella tabella sono il risultato della media con il relativo errore. Non avendo a disposizione molte misure della stessa grandezza abbiamo preferito non utilizzare un errore statistico ma l’errore di sensibilità del termistore, che si può ricavare dai datasheet del prodotto sotto il nome di “ripetibilità”. In questo esperimento abbiamo visto come è possibile programmare Arduino per misurare la temperatura esterna usando componenti un sensore e uno schermo LCD, per visualizzare la temperatura.

scuole/vincenzocuoco_napoli/temperatura.txt · Ultima modifica: 2023/03/13 15:19 da alberto.genovesi