Go Down

Topic: Lettura ntc sensore temperatura acqua (Read 216 times) previous topic - next topic

calida82

salve a tutti,
a casa ho un termocamino artigianale e vorrei misurare con precisione a che temperatura esce l'acqua. ho tra le mani un sensore temperatura di un autovettura, non sono riuscito a reperire il datasheet ma ho la scala dei valori che sono:
-40° 48805ohm
-30° 27414ohm
-20° 15971ohm
-10° 9620ohm
0° 5975ohm
10° 3816ohm
20° 2502ohm
25° 2044ohm
30° 1679ohm
40° 1152ohm
50° 807ohm
60° 576ohm
70° 418ohm
80° 309ohm
90° 231ohm
100° 176ohm
110° 135ohm
120° 105ohm
130° 83ohm
140° 66ohm

ho non sono molto esperto di elettronica, e ho usato arduino solo un paio di volte quindi ho dei dubbi, primo in assoluto che resistenza devo mettere in serie per creare il partitore?

il grafico che esce dai dati sopra ovviamente non è una retta, secondo voi riuscirei misurando la resistenza con il partitore e utilizzando la formula per la parabola ad avere una lettura il più precisa possibile?

cyberhs

#1
Oct 26, 2015, 03:58 pm Last Edit: Oct 26, 2015, 04:00 pm by cyberhs
Il sensore che hai è una NTC (Negative Temperature Coefficient) che varia la sua resistenza al variare della temperatura in modo inverso (all'aumentare della temperatura, le resistenza diminuisce).

Il valore a 25°C (2044 ohm) determina insieme al coefficiente di temperatura l'andamento della curva.

Nel tuo caso hai già la curva e puoi estrarre gli altri valori per interpolazione lineare rispetto ai valori vicini commettendo un errore, ma trascurabile, considerando lo scopo di utilizzo.

Mettendo la NTC con un estremo a 5V in serie un resistore da 2200 ohm con un terminale posto a gnd e misurando la tensione sulla congiunzione, ottieni questi valori:

C        NTC     V
0°      5975   1.35
25°    2044   2.59
100°    176   4.63

La formula per calcolare i valori è: V = 5 * 2200 / (2200 + NTC)

SukkoPera

Scusa cyber, spiegheresti come sei arrivato a scegliere proprio 2200 ohm?
Make your Sega MegaDrive/Genesis region-free with Arduino! http://forum.arduino.cc/index.php?topic=350099.0

Dubbi su millis()? https://forum.arduino.cc/index.php?topic=355435.msg2460825#msg2460825

cyberhs

Considerando il range di funzionamento di un condotta ad acqua (0°C - 120°C), a 120°C desidero che la tensione sia massima (attorno a 5V), mentre a 0°C desidero che sia la più piccola possibile (> 0V); questo per ottimizzare la lettura ADC.

Di solito si usa un resistore la cui resistenza sia circa quella della NTC a 25°C.

Se avessi inserito 10k (il massimo possibile per l'ADC), la tabella sarebbe così:

C        NTC     V
0°      5975   3.13
25°    2044   4.15
100°    176   4.91

La tensione a 0°V è troppo grande.

Viceversa se avessi usato un resistore da 1k:

C        NTC     V
0°      5975   0.72
25°    2044   1.64
100°    176   4.25

Anche questo andrebbe bene, ma il partitore consuma il doppio (circa 4mA)

SukkoPera

Make your Sega MegaDrive/Genesis region-free with Arduino! http://forum.arduino.cc/index.php?topic=350099.0

Dubbi su millis()? https://forum.arduino.cc/index.php?topic=355435.msg2460825#msg2460825

calida82

Eccomi, grazie per le risposte, allora, io devo alimentare a 3v. Per il termometro non voglio portarmi dietro alimentatori o altro, solo  due batterie AA. Per potresti spiegarmi come procedere? Non so cos'è l'interpolazione lineare.

cyberhs

Ma che Arduino vuoi utilizzare, come intendi alimentarlo e come visualizzi la temperatura?

calida82

Uso semplicemente un atmega328 in configurazione 3v 8mhz e oscillatore interno,saldato direttamente su pcb creato apposta ed alimentato con 2 pile AA il progetto funziona già con 4 sonde ntc posizionate in 3 diversi punti del termocamino solo che non essendo le sonde a diretto contatto con l'acqua non mi danno la misura esatta. Questo tipo di sensore invece si impana sulla tubazione e quindi rimane sempre immerso... Per visualizzare la temperatura trasmetto tutto su un LCD nokia.


cyberhs

#8
Oct 29, 2015, 10:39 am Last Edit: Oct 29, 2015, 10:45 am by cyberhs
Ho usato Excel per calcolare il polinomio interpolatore corretto per il grafico con ascissa la temperatura (t) e con ordinata la tensione in uscita sul partitore (V).

Però perché questo funzioni è necessario che la tensione ai capi del partitore sia costante, quindi devi usare un riferimento di tensione a 1.1V con analologReference(INTERNAL).

Questo il polinomio interpolatore di 5° grado:

t = 2030,7 * V5 - 5206,3 * V4 + 5013,7 * V3 - 2227,7 * V2 + 545,4 * V - 62,137

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy