[MEGA + LabVIEW] Sensore Pressione Industriale 4-20mA

Buonasera,

sto cercando di leggere il valore di pressione di un sensore che usa lo standard 4-20mA con Arduino Mega.
Per fare ciò sto usando LabVIEW 2017 con il pacchetto LINX. Il sensore in questione è un AD2 SML-100 (da 0 a 16 Bar).

Il circuito che ho usato è quello in allegato, mi chiedevo se fosse giusto dato che le misure che ottengo sono sbagliate.
Se pensate che non ci siano errori sul circuito procedo con postare il VI fatto in LabVIEW che uso per leggere (che ho testato con dei LED e sembrerebbe funzionare bene).

Buonasera,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Qui una serie di link utili, NON necessariamente inerenti alla tua domanda:
- serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- pinout delle varie schede by xxxPighi: Pinout
- link generali utili: Link Utili

Fatto (y)

Il valore del resistore dovrebbe essere 250 ohm per ottenere 5V quando la corrente ha il valore di 20mA.

R = V / I = 5V / 0.02A = 250 ohm

Usa un resistore con una tolleranza del 1% o minore.

Ciao, grazie per la risposta.

Attualmente con la resistenza da 220 ohm ho un range di variabilità:

[0.88V, 4.4V]
alla fine a cosa mi serve ottenere il range [1v, 5v] se poi tanto alla fine linearizzo con labview? giusto per avere un range di variabilità più ampio?

Comunque devo debbaggare il circuito perché attualmente non funziona, ho misurato la corrente che scorre sulla resistenza con un multimetro e non vedo nulla.

come minimo per poterti aiutare servirebbe il codice... :wink:

..alla fine a cosa mi serve ottenere il range [1v, 5v] se poi tanto alla fine linearizzo con labview? giusto per avere un range di variabilità più ampio?

La risposta è "precisione": con 250 ohm hai una escursione di 4V, mentre con 220 ohm hai una escursione di 3.52V.

L'ADC della MEGA, come sai, è a 10 bit cioè 1024 livelli, quindi ogni passo corrisponde a circa 20mV considerando un'escursione tra 0 e 5V.

Se l'escursione del segnale è limitata tra 0.88V e 4.4V ottieni circa 176 passi, mentre ne ottieni 200 con l'escursione tra 1V e 5V.

Scusami cyberhs, non sono ca 4,88mV per ADC e non 20mV?
Comunque aumenti la risoluzione ma non necessariamente la precisione (errore tra valore reale e valore letto)

@LabVIEWuser

Per primo se metti il sensore con la resistenza 220 Ohm e il multimetro in serie (senza Arduino) DEVI avere una corrente. Se non la hai non ha senso fare delle prove con Arduino.
Hai invertito la polaritá del sensore?

Ciao Uwe

Ma certo uwefed, chissà perché ho scritto 20!

In effetti è più corretto parlare di risoluzione.

Se sicuro della sigla del componente? Non ho trovato il datasheet da nessuna parte cercandolo.

Qual è la tensione a cui alimenti il sensore? E l'uscita in Volt massima del sensore corrisponde a quella dell'alimentatore? E' importante avere queste informazioni per determinare il valore di fondo scala.
Quanti e quali sono i PIN del sensore? Finora ho visto sensori a 3 fili (S+, V+,GND) e a 4 fili (S+,S-,V+,GND).

Detto questo, non mi sembra una buona idea usare una sola resistenza per interfacciarsi con Arduino.
I due circuiti, che funzionano a tensioni diverse, rischiano di influenzarsi vicendevolmente. Chi ha la peggio tra i due in caso di malfunzionamento è Arduino.
Una configurazione con partitore di tensione più un buffer op-amp di disaccoppiamento secondo me è la soluzione ottimale. Inoltre l'op-amp ha il pregio di limitare l'uscita alla sua tensione di alimentazione, per cui se la tensione prelevata ai capi del resistore supera i 5 Volt essi non arriveranno ad Arduino perché l'op-amp andrà in saturazione a 5.

Propongo il seguente circuito:

I valori dei due resistori, in configurazione partitore di tensione, sono stati scelti ipotizzando una tensione max del sensore di 12 Vdc e un sensore a 4 fili.
Dimensionamento dei resistori:

Formula del partitore di tensione:

Vout = Vin * R2 / R1

Se chiamo Vout = 5 V la tensione che deve arrivare al PIN Arduino, e Vin = 12 V la tensione del sensore

Ottengo il rapporto: Vout / Vin = 5 / 12 = 0,42

A questo punto si sa che per ottenere la Vout desiderata quel rapporto deve essere il riferimento per il dimensionamento dei resistori.

Il rapporto R2 / R1 deve essere uguale a 0,42

Quindi si impone il valore di una delle due resistenze. Guardando i valori dei resistori commerciali, scelgo per R2 un valore di 430 ohm con tolleranza +/- 5%. Con una semplice equazione si ricava che R1 = 1000 ohm = 1 kOhm

Per R1 conviene usare un trimmer al fine di poter compensare, con una regolazione praticata sul cursore dello stesso, i valori imprecisi dovuti alle tolleranze dei componenti.

Le masse dei due alimentatori NON sono da unire insieme.

Spero non ci siano errori nel circuito, non l'ho mai provato in prima persona.

krypton18 stai scrivendo cose insensate e rifetito a quel modello e configurazione del sensore sbagliate.

L' uscita del sensore é un uscita in corrente 4-20mA. È giusto mettere una resistenza da 250 Ohm per avere una tensione da 0,8V fino 5V, che é compatibilissima con Arduino.

Volendo si puó mettere un amplificatore poerationale per disacoppiare le due cose ma alimentandolo con 5V DEVI usare un Rail to Rail OP AMP.

Ciao Uwe

@ LabVIEWuser
Dacci il link al sensore di pressione dove l' hai comprato.
Ciao Uwe

Krypton18 stai scrivendo cose insensate e rifetito a quel modello e configurazione del sensore sbagliate.

Se ho espresso concetti sbagliati me ne scuso ed eventualmente si può rimuovere il post. Però non capisco come fai a dire che il modello e la configurazione (i PIN?) del sensore sono anch'essi errati quando non si sa neanche quali sono.

@krypton18
perché LabVIEWuser ha scritto questo:

LabVIEWuser:
sto cercando di leggere il valore di pressione di un sensore che usa lo standard 4-20mA con Arduino Mega.
.... Il sensore in questione è un AD2 SML-100 (da 0 a 16 Bar).

Poi non so neanch io quale sensore di preciso lui abbia, ma sicuramente non uno ce da come segnale una tensione da 0 a 12V come descrivi Tu.

Ciao Uwe

L' uscita del sensore é un uscita in corrente 4-20mA. È giusto mettere una resistenza da 250 Ohm per avere una tensione da 0,8V fino 5V, che é compatibilissima con Arduino.

Tensione tra 1V e 5V. Gli 0.8V erano quelli che LabviewUser misurava con il resistore da 220 ohm

Ho appena finito di testare, funziona!
sicuramente era un problema di cavi e connessioni perché cambiandoli ha ripreso a funzionare bene.

Adesso sotto vostro consiglio vado ad acquistare una resistenza da 250ohm (esistono o bisogna giocare con la serie/parallelo?) per ottimizzare il tutto.

Grazie ragazzuoli