Pages: [1]   Go Down
Author Topic: Libreria per sensori temperatura NTC  (Read 593 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
esiste una libreria per i sensori NTC ?
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 124
Posts: 9329
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non serve nessuna libreria per il semplicissimo motivo che non devi fare altro che leggere la tensione ai suoi capi, previa creazione di idoneo partitore, da questa ottieni la temperatura usando i suoi parametri hardware "a", "b" e "c", oppure con solo "B" (più semplice, ma meno preciso), se non sono noti con la tua NTC non ci fai nulla.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

concordo.
Ho cmq trovato un documento in cui riporta la realizzazione di una classe al fine di rendere l'introduzione dei dati più semplificata (noti i coeff. sperimentali A,B,C della relazione di Steinhart-Hart e il valore della resistenza del partitore di tensione) .
Il documento è il seguente:

http://web.cecs.pdx.edu/~eas199/B/howto/thermistorArduino/thermistorArduino.pdf

Aggiungo che volendo definire i coefficienti della relazione di Steinhart-Hart, noti 3 valori di resistenza elettrica corrispondenti a 3 temperature,si può utilizzare questa webapp:

http://www.thinksrs.com/downloads/programs/Therm%20Calc/NTCCalibrator/NTCcalculator.htm

Questa app dà anche il valore del coefficente Beta (corrispondente al metodo approssimato di calcolo della resistenza elettrica)

Ciao
« Last Edit: November 12, 2013, 01:00:11 pm by solman » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

volevo anche aggiungere che l'uso della libreria è comoda in quanto invece di scrivere qualcosa come questo:

Code:
// File: ThermistorTemperature.pde

void setup() {
     Serial.begin(9600); // open serial port and set data rate to 9600 bps
     Serial.println("Thermistor temperature measurement:");
     Serial.println("\n Vo Rt T (C)");
}

// -- loop() is repeated indefinitely

void loop() {
       int ThermistorPin = 1; // Analog input pin for thermistor voltage
       int Vo; // Integer value of voltage reading
       float R = 9870.0; // Fixed resistance in the voltage divider
       float logRt,Rt,T;
       float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
       Vo = analogRead(ThermistorPin);
       Rt = R*( 1023.0 / (float)Vo - 1.0 );
       logRt = log(Rt);
       T = ( 1.0 / (c1 + c2*logRt + c3*logRt*logRt*logRt ) ) - 273.15;
       Serial.print(" "); Serial.print(Vo);
       Serial.print(" "); Serial.print(Rt);
       Serial.print(" "); Serial.println(T);
       delay(200);
}

si può scrivere molto meno codice (ed in forma più elegante):

Code:
// ThermistorSensor.pde

#include <Thermistor.h>
// --- temp is a thermistor object
Thermistor temp(1);
// -- setup() is executed once when sketch is downloaded or Arduino is reset
void setup() {
       Serial.begin(9600);
       temp.fixedResistance(9870);
       temp.coefficients( 1.009249522e-03, 2.378405444e-04, 2.019202697e-07);
       Serial.println("T (C)");
}
// -- loop() is repeated indefinitely
void loop() {
       double temperature = temp.getTemp();
       Serial.println(temperature);
       delay(200);
}
inoltre la libreria è riutilzzabile per connettere altri sensori di temperatura contemporaneamente (e quindi non dover ripetere codice inutilmente)
« Last Edit: November 13, 2013, 03:40:32 am by solman » Logged

Rome, Italy
Offline Offline
Full Member
***
Karma: 3
Posts: 158
Quantum computing is possible.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Indubbiamente interessante ma con arduino si tende ad evitare l'uso di una scomoda NTC, esistono sensori di temperatura di gran lunga più efficienti e facili da utilizzare, vedi un LM35 , il TMP36, l'AD590 ecc ecc Oramai i termistori sono sempre meno utilizzati in elettronica digitale, e si trovano perlopiù in elettronica analogica, vedi una retroazione di un transistor, l'ingresso della 220 in un alimentatore, ecc ecc
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

concordo.
Ho cmq trovato un documento in cui riporta la realizzazione di una classe al fine di rendere l'introduzione dei dati più semplificata (noti i coeff. sperimentali A,B,C della relazione di Steinhart-Hart e il valore della resistenza del partitore di tensione) .
Il documento è il seguente:

http://web.cecs.pdx.edu/~eas199/B/howto/thermistorArduino/thermistorArduino.pdf

Aggiungo che volendo definire i coefficienti della relazione di Steinhart-Hart, noti 3 valori di resistenza elettrica corrispondenti a 3 temperature,si può utilizzare questa webapp:

http://www.thinksrs.com/downloads/programs/Therm%20Calc/NTCCalibrator/NTCcalculator.htm

Questa app dà anche il valore del coefficente Beta (corrispondente al metodo approssimato di calcolo della resistenza elettrica)

Ciao

Ciao a tutti,
Ho leto e riletto quanto riportato ed ho cerato di capire come andare a leggere la temparatura dell'acqua dove e' immerso il mio sensore NTC030HP00 (questo ho in casa ma e' anche l'unico che ho trovato completamente plastificato e pressofufo), pero' non ci ho capito nulla.
Posso mettere il mio NTC fra' alimentazione e ingresso analogigo (A0) di Arduino UNO e completare verso massa con una resistenza nominale identica a quella del mio NTC, poi pero' non ho capito il discorso del partitore resistivo.
Mi potete dare una mano a capire la cosa???

C'e' da qualche parte (che non ho trovato) uno schema elettrico da anteporre alla porta A0 o .. non so.

Ora sto' usando un LM35 che funziona "da solo"  smiley ma trasferire dall'aria all'acqua il tutto mi diventa un po' piu' complicata la cosa.
Grazie sian da ora.

Binoretor
« Last Edit: July 16, 2014, 12:50:13 pm by Binoretor » Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22651
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao e benvenuto. Ti invito alla lettura del regolamento dove troverai le regole da rispettare e diverse info utili su come usare questo forum.
Logged


Conegliano
Offline Offline
Full Member
***
Karma: 5
Posts: 220
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao

Quote
Posso mettere il mio NTC fra' alimentazione e ingresso analogigo (A0) di Arduino UNO e completare verso massa con una resistenza nominale identica a quella del mio NTC, poi pero' non ho capito il discorso del partitore resistivo.
Mi potete dare una mano a capire la cosa???

C'e' da qualche parte (che non ho trovato) uno schema elettrico da anteporre alla porta A0 o .. non so.

Lo schema realizzativo è quello ed è molto semplice, non c'è bisogno di altro a livello elettrico. Do per scontato che tu conosca il funzionamento di un termistore e di un partitore resistivo...

Se hai (o ti calcoli) i vari parametri (dipende dalla precisione che ti serve, io utilizzo solo B), con una semplice equazione puoi convertire il tuo valore di tensione in ingresso in un valore di resistenza, e conseguentemente, in una temperatura.
Logged

Pages: [1]   Go Up
Jump to: