Eccoci alla seconda puntata della serie dedicata ai sensori di Arduino.

Nello scorso articolo ci siamo soffermati su due dei componenti più utilizzati , ossia il Pulsante ed il Relè.
Quest'oggi invece inizieremo ad entrare nello specifico, ossia impareremo ad utilizzare il Termistore.

Il Termistore è un particolare tipo di resistore che varia la sua resistenza al variare della temperatura.
Per calcolare la temperatura implementeremo nel codice di Arduino una particolare equazione matematica, l' equazione di Steinheart-Hart.

L' equazione di Steinhart-Hart è un modello matematico della resistenza elettrica di un semiconduttore al variare della temperatura.
È stata sviluppata da John S. Steinhart e Stanley R. Hart per essere usata con i termistori di tipo NTC dove fornisce una buona precisione.

L'equazione è:

dove:
T è la temperatura (in kelvin)
R è la resistenza (in ohm)
A, B e C sono i coefficienti di Steinhart-Hart che variano a seconda del tipo e modello di termistore e il range di temperatura scelto.

Arduino però presenta un problema: non è capace di leggere direttamente il valore di una resistenza. Per far si che venga letto correttamente questo valore dovremo utilizzare un partitore di tensione. Utilizzando il partitore di tensione riusciremo a leggere il valore corretto di resistenza, sfruttando un valore di tensione variabile in ingresso ad Arduino ed andando a leggere tale valore tramite un pin analogico.

Per sviluppare il circuito di prova del termistore utilizzeremo:
1) una breadboard
2) un Arduino
3) un termistore
4) un resistore da 10 KOhm
5) qualche cavetto di collegamento

Vediamo adesso lo schema del circuito:

Il resistore da 10 KOhm andrà collegato direttamente al pin GND di Arduino e ad un pin della breadboard, tramite un cavetto.
Un altro cavetto andrà collegato invece tra il pin 0 di Arduino (pin analogico) ed un pin della breadboard.
Un ulteriore cavetto andrà collegato al pin 1 del termistore e ad un pin della breadboard.
Infine, sempre tramite cavo, collegheremo il pin 3 del termistore al pin +5V di Arduino, andando così ad alimentare il nostro circuito.

Colleghiamo adesso Arduino al computer e carichiamo il nostro codice, che sarà il seguente:
#include <math.h>

double Thermistor(int RawADC) {
 double Temp;
 Temp = log(10000.0*((1024.0/RawADC-1)));
 Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp)) * Temp);
 Temp = Temp - 273.15;
 return Temp;
}

void setup() {
 Serial.begin(115200);
 pinMode(7,OUTPUT);
}

void loop() {
 double Temperatura = Thermistor(analogRead(0));
 Serial.println(Temperatura);
 Temperatura<22 ? digitalWrite(7,HIGH) : digitalWrite(7,LOW)
 delay(100)

}

Possiamo inoltre collegare al nostro circuito un relè, facendolo così diventare un termostato (come quelli utilizzati per controllare le caldaie per esempio).

Impostando una determinata temperatura all'interno del nostro codice potremo così fare accendere e spegnere il relè tramite il rilevamento della temperatura da parte del termistore (cosa molto comoda in molti progetti, anche di domotica).

Per eventuali modifiche al codice, vi invitiamo a guardare il video.
E' così arrivato al termine anche questo articolo. Nel prossimo articolo della serie dei sensori andremo a conoscere e capire come utilizzare i Buzzer :)