|
Autore |
Messaggio |
opzioni |
graziano2000
postato il: 21.06.2018, alle ore 08:59 |
sensore temperatura
salve a tutti ,
dovrei realizzare un termometro con un pic e
avrei la necessitàdi utilizzare un sensore analogico .
il termometro dovrebbe rilevare la temperatura ambientale esterna , quindi con un range che vada dalle temperature invernali quindi inferiore allo zero a quelle estive. ho effettuato diverse prove con gli NTC ma la risposta non è lineare ,
per quanto riguarda lm35 da qualche ricerca ho visto che per funzionare con temperature negative necessita di un alimentazione duale o inserire due diodi verso gnd e cambiare la -vref dell ADC(questa soluzione non posso adottarla).
esistono altri sensori analogici che fanno al mio caso o esiste un modo per ottimizzare l\'NTC . grazie a tutti !!
queste sono le formule che utilizzo per determinare la temperatura con l\'NTC
#define B_coefficient 3950.00 /* B coefficient of NTC Thermistor*/
#define Room_temperature 25.00
#define Series_Resistance 8000.00
************ calcolo temperatura con formule *****************************
NTC_Resistance = ((1024*Series_Resistance/adc read) - Series_Resistance);
Thermistor_temperature = log(NTC_Resistance); /* calculate natural log of resistance */
/* Calculate Temperature using B parameter Equation */
/* 1/T = 1/T0 + ((1/B_coefficient)*log(NTC_Resistance/Series_Resistance)) */
Thermistor_temperature = (1.0/(Room_temperature + 273.15))+
(1.0/B_coefficient)*log(NTC_Resistance/Series_Resistance);
Thermistor_temperature = (1/Thermistor_temperature) - 273.15; /* convert kelvin to °C */
La vita potrebbe essere divisa in tre fasi: Rivoluzione, Riflessione e Televisione.Si comincia con il voler cambiare il mondo e si finisce col cambiare i canali.
http://graziano-page.simplesite.com/ |
|
double_wrap
postato il: 21.06.2018, alle ore 10:36 |
Una via a basso costo e' quella di usare un LM34, identico al LM35 ma tarato in gradi Fahrenheit. La sensibilita' e' di 10mV/°F quindi nel range da 0°F (-17.8°C) a circa 250°F (121.1°C) hai una uscita fra 0 e 2.5 V.
La conversione fra Fahrenheit e Celsius la fa il micro con
C =(F - 32) / 1.8
Se devi lavorare solo con numeri interi senza i float, moltiplica i valori al numeratore per 100 e quelli al denominatore per 10: es per 130°F, 15°F e 43°F
(13000-3200)/18=544 -> 5445
(1500-3200)/18=-94 -> 9.4
(3400-3200)/18=11 -> 1.1
Altra strada ancora e' quella di usare un sensore tarato in gradi Kelvin che a 0°C=273°K fornisce circa 2.73 volt con la solita linearita di 10 mV/°K
"se peso cado, ma se cado non peso"
adamatj.altervista.org |
|
picmicro675
postato il: 21.06.2018, alle ore 14:11 |
Aggià !
http://www.grix.it/viewer.php?page=12785
Con bibliografia in fondo
Anno nuovo, forum nuovo.
Mi sa che lascio. |
|
gironico
postato il: 21.06.2018, alle ore 15:41 |
per quanto riguarda lm35 da qualche ricerca ho visto che per funzionare con temperature negative necessita di un alimentazione duale o inserire due diodi verso gnd e cambiare la -vref dell ADC(questa soluzione non posso adottarla).
duoale no, e neanche solo due diodi, se non ricordo male una res da 18k.
Usi solamente due canali analogici... anche qui in grix trovi discussioni in merito.
se consulti il foglio dati di lm35, negli esempi applicativi, trovi come fare in modalità full-range
La risoluzione del senzore è di mezzo grado, ma và più che bene se non necessità una misura "accurata"....
La vita è troppo breve per bere vini mediocri |
|
elektorplus
postato il: 21.06.2018, alle ore 18:32 |
Si può tentare di linearizzare sul range desiderato
https://www.electroyou.it/isidorokz/wiki/progetto-termostato…
https://www.edn.com/design/sensors/4429105/Linearize-thermis…
https://www.degruyter.com/downloadpdf/j/mms.2015.22.issue-3/…
https://en.tdk.eu/download/531110/5608e4b12153bb12af2808fbed…
http://elektor.altervista.org/ |
|
double_wrap
postato il: 22.06.2018, alle ore 16:01 |
Il problema nascosto usando due diodi 1n914 per leggere temperature minori di zero e' che tali diodi sono ESTERNI al chip ed hanno una tensione di giunzione che dipende dalla temperatura.
http://www.digitroncorp.com/Documents/Datasheets/1N914,A,B-1…
La figura 6 a pagina 3 del datasheet di 1N914 mostra che con una variazione di temperatura fra 0° e 65 °C la tensione di giunzione varia di circa 200 mV (a 100 uA). Con due diodi in serie la variazione e' di 400 mV che con una sensibilita' di LM35 di 10 mV/°C altera la misura.
Un riferimento di tensione esterno dovrebbe essere termocompensato, o avere una dipendenza dalla temperatura molto bassa (una volta si usava mettere un diodo in serie ad uno zener minore di 3.3V proprio per compensare le variazioni termiche, altri tempi...)
L'altra soluzione mostrata dal datasheet di LM35 e' quella di assorbire 50 uA negativi dall'uscita, ma serve una tensione negativa e pure la lettura risulta negativa, ipotesi escluse all'origine da graziano2000. Di qui il mio suggerimento di usare sensori NATIVI per temperature minori di zero.
"se peso cado, ma se cado non peso"
adamatj.altervista.org |
|
zio bapu
postato il: 22.06.2018, alle ore 17:53 |
Oppure visto che usa un micro, usare una ntc e crearsi in memoria una tabella delle corrispondenze.
Volendo potrebbe memorizzare i valori solo ogni 5°C e ricrearsi i valori mancanti, anche se non sarebbero precisissimi.
mandi |
|
MB54
postato il: 22.06.2018, alle ore 18:26 |
Un elenco di analogici e digitali.
https://en.wikipedia.org/wiki/List_of_temperature_sensors
fra gli analogici:
http://ww1.microchip.com/downloads/en/DeviceDoc/21496C.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/21498D.pdf
Ci sono anche dei chip basati su ntc, tipo MCP9700 e simili, ma sono schifezze.
Vanno bene per misure a spanne: se vuoi precisione devi andare sui digitali, ma hai forse problemi di rumore da parte del bus?
Se non dici l' accuratezza iniziale voluta e la possibilità di eventuale taratura però si perde tempo.
|
|
schottky
postato il: 22.06.2018, alle ore 18:52 |
ma i sensori digitali non li avevano messi a punto proprio per sempificare la realizzazione di sistemi a microcontrollore? Perche'mai dovra'essere analogico?
Il vantaggio di essere intelligente e' che si puo' sempre fare l'imbecille, mentre il contrario e' del tutto impossibile. -- W. Allen |
|
graziano2000
postato il: 25.06.2018, alle ore 17:19 |
grazie a tutti per le risposte!!!!!!
ho ordinato un LM34 faccio qualche prova e vediamo come va .
La vita potrebbe essere divisa in tre fasi: Rivoluzione, Riflessione e Televisione.Si comincia con il voler cambiare il mondo e si finisce col cambiare i canali.
http://graziano-page.simplesite.com/ |
|
|