Sonda di temperatura 4-20ma

Ciao a tutti!

Da neofinta, innanzitutto vi ringrazio per i preziosissimi consigli che leggo ogni giorno sul forum! :)

Sto però cercando di interfacciare una sonda di temeperatura (http://www.smk.as/teknisk_katalog/Gruppe_11/Folere/Teknisk_Blad/050000495.pdf - modello ASWT03000) con uscita a 4-20ma e ho qualche problema di troppo!

Leggendo un po', ho utilizzato una resistenza da 250 ohm e quindi collegato (oltre che il ground) il pin T della sonda ad un ingresso analogico di Arduino. Il valore analogico letto però è decisamente basso (se non erro la scala va da 0 a 1023 ed io, con 26°, leggo 50) e, comunque, non sono sicuro sulla formula da applicare per ricavare dal dato analogico la temperatura (la sonda va da -10° a +70°)... Cosa sbaglio? Grazie a tutti!!!

Quel tipo di sonda deve essere alimentata con tensione alternata (12/24 Vac) oppure continua (9/30 Vdc) e possono avere due tipi di uscita, una in tensione (0-1Vdc) e l’altra in corrente (4-20mA).

Con 250 ohm sul loop di corrente ottieni una tensione massima di 5V, quindi compatibile con un ingresso analogico di Arduino.

La tensione di massima si ottiene con il fondo scala che è +70°C, mentre con -10°C ottieni 4mA cioè 1V.

Con la funzione map puoi ottenere la temperatura espressa in decimi di grado:

Temp = map(, 200, 1023, -100, 700)

Nota che 200 corrisponde a circa 1V e 1023 a 5V.

cyberhs:
Quel tipo di sonda deve essere alimentata con tensione alternata (12/24 Vac) oppure continua (9/30 Vdc) e possono avere due tipi di uscita, una in tensione (0-1Vdc) e l’altra in corrente (4-20mA).

Con 250 ohm sul loop di corrente ottieni una tensione massima di 5V, quindi compatibile con un ingresso analogico di Arduino.

La tensione di massima si ottiene con il fondo scala che è +70°C, mentre con -10°C ottieni 4mA cioè 1V.

Con la funzione map puoi ottenere la temperatura espressa in decimi di grado:

Temp = map(, 200, 1023, -100, 700)

Nota che 200 corrisponde a circa 1V e 1023 a 5V.

Grazie cyberhs,

è lo stesso ragionamento che ho fatto io.
Il problema è che la lettura analogica, quando ci sono 26°, mi restituisce come valore 50 (che mi sembra alquanto basso…)
Al pin analogico di arduino ho collegato il l’uscita T della sonda, è corretto?
Grazie ancora!

Se la sonda ha un’uscita “4-20 mA”, funziona in “current loop”, cioe’ ad anello di corrente … non ha un pin di uscita da collegare ad un’ingresso di Arduino, ma solo i due pin di alimentazione, ed e’ il suo assorbimento di corrente, che va da 4 a 20 mA …

Vanno collegate come nello schema allegato, per poterle usare … quello che tu misuri, e’ la caduta di tensione sulla resistenza, che varia in funzione della corrente che vi circola, corrente che e’ appunto quella che la sonda ti restituisce come valore …

Ovviamente l’alimentatore deve essere del tipo isolato galvanicamente, e non deve essere in comune con nient’altro che non siano altre sonde in current-loop …

Etemenanki: Se la sonda ha un'uscita "4-20 mA", funziona in "current loop", cioe' ad anello di corrente ... non ha un pin di uscita da collegare ad un'ingresso di Arduino, ma solo i due pin di alimentazione, ed e' il suo assorbimento di corrente, che va da 4 a 20 mA ...

Vanno collegate come nello schema allegato, per poterle usare ... quello che tu misuri, e' la caduta di tensione sulla resistenza, che varia in funzione della corrente che vi circola, corrente che e' appunto quella che la sonda ti restituisce come valore ...

Ovviamente l'alimentatore deve essere del tipo isolato galvanicamente, e non deve essere in comune con nient'altro che non siano altre sonde in current-loop ...

in realtà questa sonda ha anche un pin denominato out T che restituisce, in teoria, la temperatura in 4-20ma...

Rileggendo meglio, in basso sul datasheet della sonda ci sono delle avvertenze: indica chiaramente che con i 4-20mA devi usare un resistore <= 100 ohm.

Questo implica che, usando 100 ohm hai una caduta di tensione di 2V @ 20mA e 0.4V @ 4mA.

Il map devi configurarlo come segue:

Temp = map(, 1, 400, -100, 700)

Certo non sarà molto preciso.

Per migliorare la situazione dovresti usare una VREF di 1.1V (per la UNO) con l’istruzione analogReference(INTERNAL) e portare la resistenza a 50 ohm (due da 100 in parallelo).

Oviamente la map deve essere modificata di conseguenza.

La cosa la puoi fare se non usi gli ingressi analogici per altri sensori.

Non cambia nulla ma sto sicuramente sbagliando i collegamenti!
Allego il mio schema… grazie!

Una sonda in current-loop con 3 fili e' abbastanza strana ... pero' dal datasheet sembra che quella sonda possa essere configurata per la doppia uscita (da 4 a 20mA in current-loop oppure da 0 ad 1VDC in tensione) ... hai i ponticelli di configurazione nella corretta posizione, come da disegno ?

Etemenanki: Una sonda in current-loop con 3 fili e' abbastanza strana ... pero' dal datasheet sembra che quella sonda possa essere configurata per la doppia uscita (da 4 a 20mA in current-loop oppure da 0 ad 1VDC in tensione) ... hai i ponticelli di configurazione nella corretta posizione, come da disegno ?

Chiedo umilmente scusa.... non ho verificato la correttezza dei ponticelli (chi me l'ha data mi aveva assicurato fossero già stati posizionati correttamente) e in effetti il problema era proprio quello!!!! Confermo anche che con la resistenza di 250ohm sembra tutto ok!!!

GRAZIE ANCORA!!!!!