Calibratore NTC con DS18B20

Buona sera.
Da tempo sono alle prese con un calibratore per ntc.
Utilizzo un arduino nano opportunamente attrezzato con un riferimento esterno e un alimentatore stabilizzato e ben filtrato, il partitore per leggere il ntc e regolabile con un trimmer.
Lo stesso arduino riscalda un pozzetto con una resistenza termostata alimentata da un mosfet in pwm con controllo pid, Inoltre comunica con un software sul pc che funge da data logger, lo Stesso software si preoccupa di settare il termostato, il pid, il beta della ntc, calcolare il beta dell'ntc e i coefficienti per l'equazione di steinhart and hart.

Tutto funziona perfettamente, ottengo letture ohmmiche stbilissime e molto precise, per l'accuratezza esattamente coerente con la risoluzione dell'adc.

Quindi comparo la lettura del DS18 con la lettura dell'NTC, e qui nascono i problemi: da 25 a 100 gradi ho uno scostamento del DS18 di 5 gradi (in meno), con una ntc di precisione TDK B3988 +/- 1%. Da notare le la lettura ohmmica dell'ntc e identica alla lettura del tester (una volta si chiamava cosi') con una differenza massima di 13 - 15 ohm. Confronto le letture col datasheet e le temperature corrispondono ... sembrerebbe che il DS18 non sia cosi' accurato come dichiarato. Ho provato ad usare un'altro DS18 e addirittura lo scostamento arriva a 8 gradi. Ho provato a misurare la temperatura con un termometro digitale che viene venduto come termometro "di precisione" dicono +/- 2° e guarda caso la misura e' uguale a quella dell'ntc. Qualcuno ha avuto esperienze col DS18B20 riguardo alla sua accuratezza?

Trovo una risposta non molto chiara nel datasheet che in fondo ad una pagina c'e' un grafico che illustra errore che puo' arrivare fino +/- 3 sigma (che se capisco bene il grafico) 1 sigma e' 0,1, in ogni caso non e' coerente con lo scostamento che ho io.
Insomma io volevo calibrare gli NTC e mi trovo a dover calibrare il DS18B20 ....

Ci sono altri tipi di sensori provabili, ad esempio, LTM70, MCP9808, TSYS01, TMP117, e cosi via, ma serve ricordare che le tolleranze esistono per tutto ... poi mi viene da chiedermi anche un'altra cosa, come sono la geometria e gli accoppiamenti fra pozzetto, NTC e sonda di controllo ?

Mi spiego meglio, se il pozzetto e' "ad aria", il trasferimento di temperatura avviene per irradiazione e potrebbe non essere identico per entrambi gli elementi, specie se non sono a contatto, se i cavi che collegano la NTC ed il DS18B20 sono abbastanza spessi, potrebbero sottrarre parte della temperatura, e cosi via ... il massimo sarebbe poter realizzare un pozzetto (impermeabile ovviamente) riempito di olio isolante (tipo quello per trasformatori o roba simile, per non influire sulle misure), in cui immergere sia la NTC che la sonda inclusa parte dei terminali (per minimizzare la dispersione termica attraverso gli stessi) ed il piu a contatto fra loro possibile.

Grazie per la risposta.
Cio' che tu descrivi e' tutto verissimo, il pozzetto in effetti e' ad aria, pero' rispecchia le condizioni di misura reale, per quanto riguarda i cavi, credo non abbiano problemi. In realta' io non cerco una misura accuratissima, pero' l'accuratezza del ds18b20 e' dichiara 0,5° invece gia' a 70 - 80 ° ho 4-5 gradi di differenza, e soprattutto con due sensori diversi ho letture diverse, e questo non dovrebbe accadere. Ora l'unico dubbio che ho e' che non vorrei che nell'ntc passasse troppa corrente, pero' ho collegato l'ntc al positivo e come R2 ho 10000 ohm , la corrente dovrebbe essere veramente poca, considerando che il riferimento fornisce al massimo 100 mA.

Anche io ho pensato ad altri sensori e penso che faro questa prova, anzi grazie per avermene indicato alcuni.

La differenza con l'ntc potrebbe dipendere dall'errore del coefficiente Beta che in realta' potrebbe essere +/- 4-5 ° da 0 a 100, che sommata all'errore del ds18b20 darebbe lo scostamento rilevato. Ora ho provato a calibrare il sensore a meta' della differenza con la solta formuletta, ma a questo punto non sono certo che la calibrazione dell'ntc sia corretta

float RawHigh = 99.6;
float RawLow = 0.5;
float ReferenceHigh = 99.9;
float ReferenceLow = 0;
float RawRange = RawHigh - RawLow;
float ReferenceRange = ReferenceHigh - ReferenceLow;

Devo ringraziarti perche' hai centrato in pieno il problema. Ho costruito un pozzetto impermeabile di lamierino in acciaio inox... l'ho riempito di acqua, alloggiato all'interno del fornetto. Ora la misura e' molto piu' accurata, anche se il D18B20 oltre i 65 gradi mostra delle differenze rispetto al termometro campione, differenze che comunque rientrano nelle tolleranze dichiarate nel datasheet, mentre la sonda ntc spacca il grado.
Per inciso, le tanto bistrattate sonde ntc secondo me sono le piu' accurate, certo bisogna avere un'alimentazione stabile e un partitore preciso, e poi misurano un range di temperature molto grande.

Grazie ancora.

Massimo

Le sonde PT100 e PT1000 come linearita' sono anche meglio (ma costano un po di piu), e reggono anche temperature maggiori, se costruite in un certo modo (ce ne sono con diversi tipi di incapsulamento)

si, le conosco, e le ho anche usate in passato (non con arduino).
E' vero costano un po', ma effettivamente hanno una misura piu' accurata, ma con arduino e' piu' complicato.
Io devo solo calibrare 4 ntc che devo mettere in un termoregolatore che gestisce 2 caldaie a biomassa. L'accuratezza e' dell'ordine di +/- un grado a 70°. Percio' vanno bene tutte basta calcolare il beta.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.