Go Down

Topic: Libreria per sensori temperatura NTC (Read 749 times) previous topic - next topic

solman

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

astrobeed

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.

solman

#2
Nov 12, 2013, 05:43 pm Last Edit: Nov 12, 2013, 07:00 pm by solman Reason: 1
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

solman

#3
Nov 13, 2013, 09:34 am Last Edit: Nov 13, 2013, 09:40 am by solman Reason: 1
volevo anche aggiungere che l'uso della libreria è comoda in quanto invece di scrivere qualcosa come questo:

Code: [Select]

// 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: [Select]

// 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)

MasterPi

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

Binoretor

#5
Jul 16, 2014, 07:37 pm Last Edit: Jul 16, 2014, 07:50 pm by Binoretor Reason: 1

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"  :) ma trasferire dall'aria all'acqua il tutto mi diventa un po' piu' complicata la cosa.
Grazie sian da ora.

Binoretor

leo72

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

tapirinho

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.

Go Up