Tensione di scala per Arduino Analog In, Beyond Voltage Dividers


16

Di recente ho costruito alcuni sensori di curva a fibre ottiche e voglio leggere i valori che ottengo da loro in un computer tramite un Arduino. Sto misurando la luce con questo fotodiodo da industriali Fibra Ottica . Attualmente, sto dando il LED sull'altra estremità e il fotodiodo 2.2V. La mia domanda ha a che fare con il fatto che le fluttuazioni di tensione misurate da un multimetro sul fotodiodo sono lineari, ma piuttosto piccole poiché la fibra viene deformata, anche in modo abbastanza radicale. Con la fibra diritta, a seconda della fibra (è difficile segnarla in modo identico), la tensione si aggira intorno a 1,92 V, per esempio, e con la piegatura salirà a, diciamo, 1,93-1,94 V. Non sono preoccupato di ottenere le tensioni identiche a quelle che posso scalare nel software.

Ciò di cui sono preoccupato è perdere la risoluzione quando si esegue A / D con Arduino. Se le mie fluttuazioni di tensione sono dell'ordine di 10mV, l'A / D a 10 bit dell'Arduino non ne quantificherà, anche se passo la tensione fino a 5V con un divisore di tensione? Quello che sto cercando è uno scaler analogico. Come posso estendere quella gamma tra 1,92 e 1,94 per coprire l'intera gamma, da 0 V a 5 V in modo da poter sfruttare l'intera gamma di Arduino A / D?

Sento che questa deve essere un'operazione comune in elettronica, ma non l'ho mai studiata formalmente, quindi molte cose mi sono perse.

(Potresti pensare, com'era David, "perché stai usando la fibra ottica per il rilevamento della piega? Perché dovresti aspettarti una variazione di tensione quando la fibra è piegata?" Il trucco è rimuovere il rivestimento su un lato del cavo in fibra ottica Ciò consente alla luce di fuoriuscire. Quando il cavo viene piegato lontano dal punteggio, viene emessa ancora più luce dal cavo, causando una caduta di tensione nel ricevitore e viceversa.)


Sareste così gentile da mostrare uno schema del ricevitore? Stai fornendo la tensione di polarizzazione di 1,9 V?
endolith il

Se intendi lo schema per il ricevitore stesso, ho collegato al foglio dati sopra. Eccolo di nuovo: i-fiberoptics.com/pdf/IFD91.pdf Se intendi come l'ho collegato, puoi vedere nella fotografia. Il ricevitore è quello nero. Sto dando 2.2V (anche se, nella foto si tratta di una batteria agli ioni di litio) attraverso il filo rosso al lato del ricevitore con il punto arancione, e sto misurando la tensione ai capi della resistenza che va a terra su l'altra parte.
terrazza

Risposte:


11

Quindi, se ho capito bene, vuoi essere in grado di "leggere" una variazione di 10 mV sopra un segnale da 1,9 V?

Se questo è il caso, allora vorrei suggerire due fasi distinte. Il primo sarà un amplificatore fotodiodo (pagina 9 è la più standard di circuiti). Ciò contribuirà ad ottenere la corrente dal fotodiodo tradotto in tensione.

Il secondo stadio sarà un amplificatore di strumentazione, come la famiglia INA di Texas Instruments (il migliore ma anche costoso). Ciò contribuirà a rimuovere il segnale di "modalità comune", che in questo caso è 1,9 V. È inoltre possibile aggiungere guadagno all'amplificatore di strumentazione o in alternativa aggiungere un semplice amplificatore operazionale in una configurazione non invertita alla fine per aiutare a guadagnare il tuo segnale fino ai 5 V. necessari

Non sto dicendo che sarà perfetto, ma penso che sia un buon inizio.

Come nota finale, mi piace l'idea di David sopra i morsetti, anche se questi possono causare alcuni errori di misurazione sul convertitore A / D. Ciò che è più importante è se puoi farlo oscillare, prova un amplificatore operazionale migliore rispetto al 741. Questi sono comuni ma le specifiche sono terribili. I 3 o 4 mV di tensione di offset sui terminali di ingresso potrebbero davvero incasinare un piccolo segnale come se stessi cercando di misurare.

~ Chris Gammell


1
Non hai bisogno di un amplificatore di strumentazione. Un amplificatore semplice diff farà. Tuttavia, è necessario un alimentatore costante da 1,9 V da utilizzare come riferimento. Immagino che qualcosa del genere esista già nel circuito come distorsione per il sensore. Sarebbe utile avere uno schema. Inoltre, dopo aver rimosso il bias, è necessario aggiungere nuovamente un altro bias per farlo tra l'intervallo 0 e 5 V dell'ADC.
endolith

1
Sono d'accordo che non ne AVETE BISOGNO, ma è una buona idea. Un amplificatore di strumentazione è solo un amplificatore diff con buffer prima di esso (a volte con resistori aggiunti per il guadagno). Se usi semplicemente un amplificatore diff, sei in balia dei resistori nel tuo amplificatore diff; talvolta partire da 1K. Se sta provando a misurare qualcosa, quell'alta impedenza (dai buffer di un iAmp) può davvero aiutare (cioè nessun flusso di corrente nel dispositivo di misurazione).
Chris Gammell,

12

Il condizionamento del segnale in questo senso è estremamente comune. Si desidera utilizzare un amplificatore per fare in modo che l'intervallo di 10 mV (ad esempio) dell'intero intervallo 0-5 V dell'arduino. Questo può essere fatto utilizzando op-amp come il LM741. Probabilmente vorrai anche usare un "morsetto di tensione" (es: due diodi zener) sull'uscita del tuo condizionatore / ingresso di segnale nell'ADC per assicurarti che il valore non superi 5V. Se ti guardi intorno online alle schede tecniche dell'op-amp e / o ai circuiti di condizionamento del segnale, dovresti trovare delle guide su ciò che stai cercando.


4

Suggerisci di guardare la combinazione di un PGA differenziale (amplificatore di guadagno programmabile) e un DAC, con l'uscita del sensore che va sull'ingresso "+" e il DAC che va sull'ingresso "-". (O qualcosa di integrato che offre funzionalità equivalenti.) Fondamentalmente, guarda il segnale a basso guadagno, scopri qual è il suo offset, metti quella tensione sul DAC e aumenta il guadagno.

PGA308 di TI sembra che potrebbe essere una buona soluzione.

Se vuoi una soluzione meno costosa, usa un amplificatore differenziale a guadagno fisso (farebbe lo standard a 4 resistori + op-amp) + un DAC a 8 bit stabile e silenzioso (caratteristiche di stabilità / rumore più importanti della precisione), ancora una volta l'uscita del sensore sul "+" ingresso all'amplificatore diff e l'uscita DAC sul - ingresso "".

Esercizio per il lettore: mostra che puoi portare l'uscita diff-amp dalla saturazione e in un intervallo lineare usando una tecnica di ricerca binaria con il DAC e assicurandoti che il guadagno non sia maggiore di G1 = la tensione di ingresso ADC fullscale, diviso per la somma della dimensione nominale del gradino del DAC e il suo DNL (non linearità differenziale). Probabilmente userei il più piccolo di (G1 / 2) e G2, dove G2 = la tensione di ingresso ADC fullscale divisa per l'intervallo di tensione di uscita del sensore che ti interessa.


Troppo ambizioso per me in questo momento dato vincoli di tempo, ma grazie per il suggerimento. Sono entusiasta di immergermi ulteriormente nel condizionamento del segnale analogico per i futuri prototipi.
terrazza,

Perché hai bisogno di un DAC? Stai solo generando un offset DC con esso? Che sembra piuttosto eccessivo.
endolith il

Si. Il DAC si basava sul presupposto di dover cambiare l'offset DC in un ampio intervallo. Se si dispone di un sistema con una tensione che copre solo un intervallo ristretto, (supponendo di aver eseguito correttamente l'analisi della tolleranza), un divisore di resistenza e un riferimento potrebbero essere adeguati per produrre una tensione di offset. O per un po 'più di complessità, una rete di resistori + multiplexer (che è ciò che alcuni DAC sono). Un DAC non è un dispositivo così complicato o costoso, se non hai bisogno di una velocità ultra alta o una risoluzione ultra fine.
Jason S,

3

L'uso della fibra ottica come sensore di piega potrebbe essere una scelta sbagliata, non è forse tutto il punto della fibra ottica a permetterti di piegare facilmente la luce negli angoli con una perdita minima?


2
Sì, ma se si spoglia la giacca e si raschia leggermente il rivestimento su un lato con una lama di rasoio, la quantità di luce che passa varierà quando si piega la fibra. Una bella caratteristica è che ricevi un segnale bidirezionale. Se ti allontani dal punteggio, passa meno luce, se ti pieghi verso di essa, passa più luce. Dovresti usare due sensori di piega tradizionali per ottenerlo. Sono anche belli.
terrazza

2

Hai bisogno di due cose: usare un input differenziale per confrontare uno standard 1.9v (o vicino ad esso) e un amplificatore per aumentare la risoluzione di quella differenza.

Per ottenere i migliori risultati si consiglia di utilizzare amplificatori di strumentazione di alta qualità esterno o amplificatori operazionali. Ma si potrebbe provare a utilizzare strutture costruite nel microcontrollore. Arduino Mega (chip ATMega2560) e Arduino Leonardo includono entrambi l'opzione per ingressi differenziali e amplificati nell'ADC direttamente sul chip. (L'Uno non ha questo). Un ATMega2560 potrebbe eseguire più canali (multiplexati) di ADC differenziale amplificato per più sensori. Leggere la scheda tecnica per vedere quali combinazioni di pin sono possibili. Ha un'opzione di 200x di amplificazione, che avrebbe messo la piena risoluzione di 1024 passo attraverso 25 mV. Devi solo la posizione che il 25 finestra mV in cui avete bisogno!

Questo può o meno essere sufficientemente privo di rumore per i tuoi scopi - non è di alta qualità come potresti costruire esternamente per più $$.

La parte più difficile potrebbe essere ottenere un riferimento 1.9v stabile e preciso da confrontare.


Sono venuto qui per dire questo. +1!
Nick Johnson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.