Go Down

Topic: ARDUINO DUE con MUX (Read 992 times) previous topic - next topic

gcam

scenario: ho una maglia di 8 x 6 picchetti inseriti nel terreno. Devo misurare la differenza di potenziale tra due di questi picchetti (max +/- 100 mv), per un totale di circa 2304 misure (combinando ogni picchetto con tutti gli altri)

Ho pensato ad arduino due che mi consente di acquisire segnali differenziali e connettere la MUX SHIELD (http://mayhewlabs.com/products/arduino-mux-shield) da qui i 48 picchetti.

La MUX richiede una alimentazione di 5 v (CD74HC4067) che arduino è in grado di fornire. Posso utilizzare la MUX considerando che i segnali analogici in entrata sono inferiori a +/-100 mv ?

Possono utilizzare sempre la MUX per acquisire i segnali differenziali ?

gcam

lesto

secondo me ti daranno moolti più problemi tutti quei cavi belli lunghi... sìsì!
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

icio

e come fai ad avere tensione da questi picchetti ? Dalla terra? se vuoi fare un misuratore di resistenza di TERRA?
Comunque ti servono 2 mpx analogici quindi bastano 2 cd4051.

gcam

#3
Sep 12, 2013, 05:32 pm Last Edit: Sep 12, 2013, 05:36 pm by gcam Reason: 1
Quote
e come fai ad avere tensione da questi picchetti ? Dalla terra?  


Nel terreno circolano dei potenziali spontanei di pochi millivolt, con valore variabile nel tempo e nello spazio, in funzione dell'umidità, salinità, etc.

Quote
se vuoi fare un misuratore di resistenza di TERRA?


no

Quote
Comunque ti servono 2 mpx analogici quindi bastano 2 cd4051.


non so di cosa parli.

Successivamente andando avanti con il progetto voglio misurare la resistività della terra o degli strati di terreno, ma è una grandezza derivata ...

lesto

mi stai facendo interessare, qual'è lo scopo?

comunque come detto il prolema più grande sono i lunghi cavi (direi che già a 10cm sei in grossi casini), fanno da antenna e rovinano le letture.

POI io ho usato un ina125p che permette di moltiplicare la differenza di potenziale da 4 a 10000 volte in base ad uan resistenza. è costosetto però, circa 10€ al pezzo. datasheet: http://www.farnell.com/datasheets/80126.pdf

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

gcam

#5
Sep 13, 2013, 06:51 am Last Edit: Sep 13, 2013, 09:40 am by gcam Reason: 1
applicazione nota in letteratura come metodo del potenziale spontaneo o PS.

Il metodo PS si basa sulla rilevazione in superficie di differenze di potenziale legate ad un campo elettrico naturale, correlato alla circolazione sotterranea di soluzioni elettrolitiche acquose in mezzi porosi. Dall'analisi delle anomalie di PS in superficie si possono determinare intensità e posizione delle concentrazioni di cariche ioniche con entrambe le polarità.
La prova viene effettuata posizionando due elettrodi: il primo vicino alla stazione di misura e l'altro viene mosso sulle successive stazioni della linea; oppure si muovono tutti e due gli elettrodi mantenendo fisso l'intervallo tra gli stessi eseguendo delle mappature del terreno in funzione del potenziale spontaneo.
Applicazione in ambito minerario per la ricerca di solfuri e grafite, e in ambito archeologico, per l'individuazione strutture archeologiche sepolte, che possono agire da ostacolo e quindi essere la causa delle anomalie.

L'idea è di creare una matrice di 6 x 8  con equidistanza minima di 1 / 2 / 3 / 4 metri in modo tale da coprire una superficie variabile di 48 / 96 ...  mq.
Più sono distanti i picchetti maggiore è la profondità investigata.

Premesso che io ho utilizzato amplificatore di tipo ina precisamente l'INA122PA (http://www.ti.com/lit/ds/sbos069/sbos069.pdf) su un altro progetto. Come definiresti questi amplificatori ?

In questo caso non credo sia necessario un amplificatore (comunque da valutare) in quanto l'arduino due consente agendo sul gain dell'ADC (gain = 4) di arrivare ad avere una precisione di 200 uv. Non so se il termine 'precisione' è il termine adatto.

Per quanto riguarda i cavi che fanno da antenna, forse sono necessari dei cavi schermati ?
Esistono delle tecniche come la tomografia elettrica che utilizzano un elevato numero di punti di misura (solitamente non inferiore a 64)

edit:
Ma se utilizzo un'amplificatore operazionale della serie INA non ho la necessità di impostare l'ADC dell'arduino alla modalità differential mode ?
Quindi impostando il gain = 2  dell'ADC e utilizzo INA con gain = 2000, i valori che si ottengono sono da 0 a 1650 mV con punto di oscillazione intorno a 825 mV

gcam
grazie per la cortese attenzione.

lesto

Quote
200 uv

MICRO(uv) volt? non credo, saranno MILLI (mv) volt, ma magari mi sbaglio.

Quote
Non so se il termine 'precisione' è il termine adatto.

risoluzione è il termine che cerchi. La precisione è di quanto puoi sbagliare a quella risoluzione.

Quote
Come definiresti questi amplificatori ?

amplificatori differenziali. Si fanno con dei op-amp, ma credo che serva una precisione costruttiva particolare per evitare di amplificare, oltre che il segnale, il rumore.

Quote
Per quanto riguarda i cavi che fanno da antenna, forse sono necessari dei cavi schermati ?

aiutano moltoil punto è che io pensavo un ingresso va al picchetto A e uno al picchetto B, e vedi la differenza di potenziale, però così i cavi tra i due picchetti fa da antenna e rovina le misure. MA FORSE se invece usi in differenziale per ogni pichetto, il più possibile vicino ad esso, in cui un ingresso è il picchetto e GND (che è in comune con tutti gli altri picchetti), una interferenza su GND viene propagata a tutti i picchetti, quindi tutti avranno lo stesso sistema di riferimento

Quote
Ma se utilizzo un'amplificatore operazionale della serie INA non ho la necessità di impostare l'ADC dell'arduino alla modalità differential mode

no, lui prende come riferimento il GND
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

gcam

200 uv =200 micro volt

ma la precisione è una caratteristica intrinseca degli ADC, e quindi rilevabile dalla documentazione o dipende fortemente da altri fattori ?

amplificatori differenziali. Ok. La mia domanda è una richiesta di feedback sulla serie INA.

Quote
il punto è che io pensavo un ingresso va al picchetto A e uno al picchetto B, e vedi la differenza di potenziale, però così i cavi tra i due picchetti fa da antenna e rovina le misure. MA FORSE se invece usi in differenziale per ogni pichetto, il più possibile vicino ad esso, in cui un ingresso è il picchetto e GND (che è in comune con tutti gli altri picchetti), una interferenza su GND viene propagata a tutti i picchetti, quindi tutti avranno lo stesso sistema di riferimento


non mi è molto chiaro quello che hai detto. La prenderò in considerazione più avanti. Al momento vedo di impostare il tutto per una coppia di picchetti.

Quote
Ma se utilizzo un'amplificatore operazionale della serie INA non ho la necessità di impostare l'ADC dell'arduino alla modalità differential mode

Quote
no, lui prende come riferimento il GND.


no, che non è necessario, ho capito bene.

Non ho capito chi è lui l'ADC o l'INA.

In entrata all'INA ho un segnale differenziale, in uscita un segnale compreso tra GND e VCC (positivo) oscillante intorno alla VREF impostata.
Cioè
VREF-VCC sono i segnali positivi.
GND-VREF sono i segnali negativi.

lesto

se 200uv sono la precisione, vuol dire che la lettura al massimo si sbaglia di 200uV.

Però se l'ADC ha una scala di millivolt è inutile, c'è da capire bene quello che mi dici

Quote
feedback sulla serie INA

bho, non sono per niente un esperto :) prendi le mie parole con le pinze

Quote
lui l'ADC o l'INA.

l'adc di arduino.

Quote
In entrata all'INA ho un segnale differenziale, in uscita un segnale compreso tra GND e VCC (positivo) oscillante intorno alla VREF impostata

attento che VREF ce l'ha anche arduino. Gli ina danno un segnale tra GND e VREF(ina), quindi lo zero è VREF/2. ora, il VREF dell'ardiuno di standard è a 5v, ma puoi dare quello che vuoi (ma chissene), ed è buona cosa che VREF(adc) = VREF(ina), così sfrutti tutti i bit dell'adc, senza rischiare di dargli input troppo grandi (se vref(adc) < vref(ina), è come se zommassi sull'intorno del GND, quindi tagli i "picchi" positivi ma non quelli negativi).
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

flz47655

Non è una cosa semplice
I cavi devono essere tutti uguali (tipologia, diametro e lunghezza) per avere la stessa resistenza e non falsare le letture
L'amplificazione è molto delicata in quanto hai segnali molto tenui, non pensare neanche lontanamente di amplificare 100x e oltre con un singolo stadio a meno di non introdurre rumore a non finire che finisce per coprire il tuo segnale. E' importante il rapporto SNR (signal noise ratio)
Il MUX inoltre potrebbe attenuarti ulteriormente il segnale, devi sceglierlo molto bene, non un modello da 50 centesimi
Se è una cosa seria ti consiglio di rivolgerti a qualche professionista che ti aiuti

Ciao

gcam

Quote
L'amplificazione è molto delicata in quanto hai segnali molto tenui, non pensare neanche lontanamente di amplificare 100x e oltre con un singolo stadio a meno di non introdurre rumore a non finire che finisce per coprire il tuo segnale.


L'amplificatore INA122 secondo te com'è ?
Ho letto che viene generalmente utilizzato nelle strumentazioni elettromedicali (elettrocardiogramma ed encefalogramma).

lesto

non dare per scontato che basti il chip buono, anche come lo usi influisce tantissimo
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

flz47655

Nel datasheet dell' INA122 trovi tutte le informazioni per capire se è adatto alla tua applicazione ma dalle domande che hai fatto posso consigliarti:
- Se non è una cosa seria cambia progetto, otterresti solamente dei dati fuorvianti e perderesti solo tempo e denaro.
- Se è una cosa seria avvaliti di qualche professionista che abbia anche l'adeguata preparazione e strumentazione per fare verifiche sul campo, preparati però ad aprire parecchio il portafoglio.

Ciao

gcam


attento che VREF ce l'ha anche arduino. Gli ina danno un segnale tra GND e VREF(ina), quindi lo zero è VREF/2. ora, il VREF dell'ardiuno di standard è a 5v, ma puoi dare quello che vuoi (ma chissene), ed è buona cosa che VREF(adc) = VREF(ina), così sfrutti tutti i bit dell'adc, senza rischiare di dargli input troppo grandi (se vref(adc) < vref(ina), è come se zommassi sull'intorno del GND, quindi tagli i "picchi" positivi ma non quelli negativi).


A proposito di datasheet e VREF

Guardando il datasheet dell'INA122 ma penso che valga per tutta la serie INA nel capitolo APPLICATION INFORMATION
c'è riportatato:
"The output is referred to the output reference (Ref) terminal which is normally grounded"
e
" the voltage applied to the Ref terminal is added to the output signal."

significa che se setto il range di arduino due a 3300 mv, 1650 mv oppure 825 mv  oppure ancora per arduino uno a 1100 mv
la tensione da applicare al pin ref dell'amplificatore è la ref di arduino diviso 2, cioè 3300/2, 1650/2, 825/2 o 1100/2

gcam



lesto

no, l'uput è un voltaggio compreso tra vref e vref+vcc, a quanto ho capito.

normalmente vi vuole un output da 0 a X, in tal caso di mette vref a gnd (0)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Go Up