AndreaChem
2018-02-15 14:25
Salve a tutti, oggi volevo mostrarvi come realizzare un termometro utilizzando un termistore e una scheda Arduino.
Il termistore è un componente elettronico la cui resistenza varia in modo significativo al variare della temperatura. Si può dire che il funzionamento è simile a quello di una fotoresistenza.
Per i termistori di tipo NTC la variazione della resistenza in funzione della temperatura può essere valutata tramite l'equazione di Steinhart-Hart:
[img=204x35]https://wikimedia.org/api/rest_v1/media/math/render/svg/647af0694e3c498e467ff43221e0c071ddb87a9a[/img]
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. Questi coefficienti possono essere ricavati dal datasheet del componente elettronico.
Tramite l'utilizzo di questa formula è possibile determinare la temperatura valutando la variazione della resistenza.
Per realizzare questo semplice circuito ho utilizzato i seguenti componenti:
· Resistore da 3,9KΩ;
· Scheda Arduino Leonardo (naturalmente possono essere utilizzate anche altre schede come ad esempio la classica Arduino Uno);
· Termistore NTC da 5KΩ;
· Fili per i collegamenti.
Io ho acquistato i termistori e la scheda Arduino a buoni prezzi sul sito EBM Store.
Il circuito da realizzare è il seguente:
Inoltre, se qualcuno fosse interessato lascio anche lo sketch che ho utilizzato:
int sensorPin = A0;
float sensorValue = 0;
float V;
float R;
float T;
float C;
void setup()
{
Serial.begin(9600);
}
void loop()
{
sensorValue= analogRead(0);
V=(5*sensorValue)/1024; //si ricava la tensione sul PIN A0
R = (5*(3900/V))-3900; //si ricava la resistenza del termistore
T=3980/log(R/(5000*pow(M_E,(-3980/298.15)))); //equazione di Steinhart-Hart
Serial.println("Temperatura in kelvin";
Serial.println(T);
C = T-273.15;
Serial.println("Temperatura in gradi centrigradi";
Serial.println(C );
Serial.println(" ";
delay(500);
}
Naturalmente la riga dove si utilizza la formula di Steinhart-Hart deve essere modificata a seconda dei valori A,B e C dello specifico termistore.
Utilizzando questo sketch ogni 500ms sul monitor seriale viene riportata la temperatura misurata in gradi centigradi ed in kelvin. In questo caso viene riportata come varia la temperatura quando si tocca il termistore:
Variando il numero nella riga "delay(500);" è possibile variare l'intervallo di tempo ogni quanto viene fatta la misura (il valore è espresso in millisecondi).
Sicuramente questo circuito è molto semplice (e anche molto economico), ma è un buon inizio anche per qualcuno che non si è mai approcciato ad Arduino. Fatemi sapere cosa ne pensate e magari quelli più esperti di me mi consiglino come migliorare il circuito.
Prossimamente porterò un circuito più sofisticato sempre per la misura della temperatura che utilizza anche un display LCD.
Andrea
I seguenti utenti ringraziano AndreaChem per questo messaggio: NaClO, Copper-65, Claudio