Vai al contenuto
PLC Forum


Calibrare PT100, è possibile?


Fabri82

Messaggi consigliati

Salve a tutti!!

Chiedo un parere riguardo la lettura di temperatura che sto effettuando con Arduino UNO R3 da una PT100 a tre fili.

Sto usando il modulo MAX31865 come amplificatore e noto una discrepanza di circa 2°C rispetto ad altri 4 termometri collegati e tutti abbastanza allineati come letture (trascurando i decimi di grado). Ho provato affiancando anche uno a mercurio.

Mi chiedevo se si potesse calibrare tramite qualche parametro all'interno dello Sketch, magari con un Offset...

 

Grazie mille in anticipo!

Fabrizio

Link al commento
Condividi su altri siti


Q

43 minuti fa, Fabri82 ha scritto:

il modulo MAX31865 come amplificatore

 

Quel modulo, da quanto ricordo, non ha possibilità di aggiustaggi.

Devi verificare se si tratta di un semplice offset o di una non linearita.

Le temperature che puoi verificare abbastanza agevolmente sono 0°C e 100°C.

Per lo zero prendi dei cubetti di ghiaccio, tritali e riempi una scodellaina o altro recipente similare; poi immergi la sonda nelghiaccio tritato, pressi beni il giaccio attorno alla sonda e attendi che la temperatura si stabilizzi. Dopo 5'-10' minuti vedrai che le letture variano solo di qualche decimo oscillando nell'intorno di un valore. Annotati il valore letto.

Per i 100°C basta far bollire dell'acqua, qunado raggiunge il bollore, riduci la fiamma in modo che l'acqua mantenga il bollore senza grosse bolle di vapore.

Immergi la sonda e attendi la stabilizzazione sempre con leggere oscillazioni nell'interno di un valore. Annoti il valore.

 

Poi dai valori misurati capisci se c'è un offset, un non linearità o uno scostamento dell'anfolo della retta.

 

Se leggi, ad esempio 2°C e 102°C, o valori molto simili, hai un offset di 2°C, che è molto facile da correggere, perchè basta sottrarre questi 2°C ad ogni lettura.

Se leggi ad esempio -2°C e 104°C si tratta di una variozie dell'angolo della retta. Questo è più difficile da compensare berchè bisogna calcolarsi il coefficiente di correzione.

Quello più difficile da correggere è un'eventuale non linearità, perchè bisognerebbe costruirai la curva corrispendente tramite termometro di riferimento. Poi memorizzare una tabella di coefficienti di correzione in funzione della temperatura.

Link al commento
Condividi su altri siti

3 ore fa, Livio Orsini ha scritto:

Q

 

Quel modulo, da quanto ricordo, non ha possibilità di aggiustaggi.

Devi verificare se si tratta di un semplice offset o di una non linearita.

Le temperature che puoi verificare abbastanza agevolmente sono 0°C e 100°C.

Per lo zero prendi dei cubetti di ghiaccio, tritali e riempi una scodellaina o altro recipente similare; poi immergi la sonda nelghiaccio tritato, pressi beni il giaccio attorno alla sonda e attendi che la temperatura si stabilizzi. Dopo 5'-10' minuti vedrai che le letture variano solo di qualche decimo oscillando nell'intorno di un valore. Annotati il valore letto.

Per i 100°C basta far bollire dell'acqua, qunado raggiunge il bollore, riduci la fiamma in modo che l'acqua mantenga il bollore senza grosse bolle di vapore.

Immergi la sonda e attendi la stabilizzazione sempre con leggere oscillazioni nell'interno di un valore. Annoti il valore.

 

Poi dai valori misurati capisci se c'è un offset, un non linearità o uno scostamento dell'anfolo della retta.

 

Se leggi, ad esempio 2°C e 102°C, o valori molto simili, hai un offset di 2°C, che è molto facile da correggere, perchè basta sottrarre questi 2°C ad ogni lettura.

Se leggi ad esempio -2°C e 104°C si tratta di una variozie dell'angolo della retta. Questo è più difficile da compensare berchè bisogna calcolarsi il coefficiente di correzione.

Quello più difficile da correggere è un'eventuale non linearità, perchè bisognerebbe costruirai la curva corrispendente tramite termometro di riferimento. Poi memorizzare una tabella di coefficienti di correzione in funzione della temperatura.

Grazie mille Livio! Sempre tempestivo 😃

Immaginavo fosse come dici tu ma aspettavo il parere di un esperto per cercare poi di sistemare la questione.

Ho cercato in rete ma settaggi aggiuntivi al MAX31865 per calibrare la sonda non ne parla nessuno e tutti vedo che consigiano di agire nello Sketch con misure di offset o altre operazioni matematiche come hai detto tu.

Proverò a prendere i riferimenti a 0°C e a 100°C per poi sperare che si risolva con un offset.

 

Vistro che ci sono...altro quesito:

Sulla scheda Arduino ho una scheda esterna per la gestione di una sd card dove salvo i valori di temperatura per un datalogger e il MAX31865.

Entrambi comunicano tramite SPI.

Come si gestiscono i segnali di CS? Devo gestirli manualmente o ci pensa già la libreria SPI.h? Oviamente terrei in comune MISO MOSI e CLK e definire il pin 10 per la SD e per esempio il 5 per il MAX31865 come CS.

 

Grazie mille ancora.

 

 

 

 

 

Grazie mille!!!!!

Link al commento
Condividi su altri siti

Ho anch'io alcune applicazioni co SD card per memorizzazione files, una molti simile alla tua. Per i CS uso normali porte I/O.

Attenzione però alle librerie usate perchè, alcune librerie impongono una determinata porta, per altre basta dichiararla nella funzione di inizializzzione del device. In questo momento non ricordo con precisione cosa richiede la libreria che ho usato, anzi non ricordo proprio con esattazza quale libreria ho usato.

Come sensore io ho usato una PT1000, così, mi sono sganciato dalla compensazione della resistenza del cavo, perchè su mille ohm le poche decine di milli ohm del cavo sono ininfluenti. Poi ho usato un amplificatore da strumentazione per amplificare il segnale del ponte di misura.

La compensazione della non linearità della resistenza in funzione della temperatura, l'ho fatta suddividendo la gamma di misura in un certo numero di zone e applicando appositi coefficienti in funzione della zona di temperatura. Un qualche cosa di simile a quello che si usava fare con la tecnica analogica.

Link al commento
Condividi su altri siti

2 ore fa, Livio Orsini ha scritto:

Ho anch'io alcune applicazioni co SD card per memorizzazione files, una molti simile alla tua. Per i CS uso normali porte I/O.

Attenzione però alle librerie usate perchè, alcune librerie impongono una determinata porta, per altre basta dichiararla nella funzione di inizializzzione del device. In questo momento non ricordo con precisione cosa richiede la libreria che ho usato, anzi non ricordo proprio con esattazza quale libreria ho usato.

Come sensore io ho usato una PT1000, così, mi sono sganciato dalla compensazione della resistenza del cavo, perchè su mille ohm le poche decine di milli ohm del cavo sono ininfluenti. Poi ho usato un amplificatore da strumentazione per amplificare il segnale del ponte di misura.

La compensazione della non linearità della resistenza in funzione della temperatura, l'ho fatta suddividendo la gamma di misura in un certo numero di zone e applicando appositi coefficienti in funzione della zona di temperatura. Un qualche cosa di simile a quello che si usava fare con la tecnica analogica.

 

Infatti penso che a questo punto farò un test per determinare le due soglie a quanto si trovano (così se ci riesco imparo qualcosa di nuovo...) poi eventualmente opterò per una PT1000. 

Per la gestione dell'SPI è fattibile impostare gli indirizzi manualmente (come suggerisce lo schema di esempio della libreria MAX31865)?

  • Adafruit_MAX31865 thermo = Adafruit_MAX31865 (5, 11, 12, 13);

Per la SD invece, va bene se imposto solo il pin cs?

  • SD.begin (10)

 

Credo che come dici tu Livio sulla libreria della SD non è possibile modificare il pin del cs....o almeno nessuno ne parla da nessuna parte in rete.

Teoricamente dovrebbe funzionare....

Che dite?

 

 

Modificato: da Fabri82
Link al commento
Condividi su altri siti

Se ben ricordo le PT100 non sono lineari, negli anni 80 costruivo schedine di rilevazione temperatura per le fornaci e si era reso necessario un linearizzatore con 741 ed alcuni diodi, derivato da quello proposto dai datasheet della National... (che non funzionava)...

Link al commento
Condividi su altri siti

11 ore fa, Colonial54 ha scritto:

Se ben ricordo le PT100 non sono lineari,.....

 

Se leggi per intero la mia prima risposta trovi la medesimasoluzione analogica.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...