Pages: [1]   Go Down
Author Topic: Libreria per sensori temperatura NTC  (Read 278 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 36
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: 120
Posts: 9185
"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: 36
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: 36
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: 2
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

Pages: [1]   Go Up
Jump to: