Tensão de escala para entrada analógica do Arduino, além dos divisores de tensão


16

Recentemente, construí alguns sensores de curvatura por fibra ótica e quero ler os valores que recebo deles em um computador via Arduino. Estou medindo a luz com este fotodiodo da Industrial Fiber Optics . Atualmente, estou dando o LED na outra extremidade, bem como o fotodiodo 2.2V. Minha pergunta tem a ver com o fato de que as flutuações de tensão medidas por um multímetro no fotodiodo são lineares, mas pequenas como a fibra é deformada, mesmo que radicalmente. Com a fibra esticada, dependendo da fibra (é difícil identificá-las de maneira idêntica), a tensão gira em torno de 1,92V, por exemplo, e com a flexão ela subirá, por exemplo, 1,93-1,94V. Não estou preocupado em obter as tensões idênticas, pois posso escalar em software.

O que me preocupa é perder a resolução ao fazer A / D com o Arduino. Se minhas flutuações de tensão forem da ordem de 10mV, o A / D de 10 bits do Arduino não quantizará o inferno, mesmo se eu aumentar a tensão até 5V com um divisor de tensão? O que estou procurando é um scaler analógico. Como posso estender esse intervalo entre 1,92 e 1,94 para cobrir todo o intervalo, de 0V a 5V, para que eu possa tirar proveito de toda a gama do Arduino A / D?

Eu sinto que isso tem que ser uma operação comum em eletrônica, mas nunca a estudei formalmente, então muitas coisas estão perdidas para mim.

(Você pode estar pensando, como davr, "por que você está usando fibra ótica para detecção de dobras? Por que você esperaria uma mudança de tensão quando a fibra é dobrada?" O truque é remover o revestimento de um lado do cabo de fibra óptica Isso permite que a luz se espalhe. Quando o cabo é dobrado para longe da pontuação, sai ainda mais luz do cabo, causando uma queda de tensão no receptor e vice-versa.)


Você gostaria de mostrar um esquema do seu receptor? Você está fornecendo tensão de viés de 1,9 V?
Endolith 17/12/2009

Se você quer dizer o esquema para o próprio receptor, vinculei à folha de dados acima. Aqui está novamente: i-fiberoptics.com/pdf/IFD91.pdf Se você quer dizer como eu o liguei , você pode ver na fotografia. O receptor é o preto. Estou dando 2,2V (embora, na foto, seja uma bateria de íons de lítio) através do fio vermelho ao lado do receptor com o ponto laranja, e estou medindo a tensão no resistor que vai aterrar o outro lado.
terrace

Respostas:


11

Então, se eu entendi direito, você quer "ler" uma variação de 10 mV em cima de um sinal de 1.9V?

Se for esse o caso, sugiro duas etapas separadas. O primeiro será um amplificador de fotodíodo (a página 9 é o mais padrão dos circuitos). Isso ajudará a obter a corrente do seu fotodiodo convertida em voltagem.

O segundo estágio será um amplificador de instrumentação, como a família INA da Texas Instruments (a melhor, mas também pode ser cara). Isso ajudará a remover o sinal do "modo comum", que neste caso é de 1,9 V. Você também pode adicionar ganho ao amplificador de instrumentação ou alternativamente adicionar um amplificador operacional simples em uma configuração não inversora no final para ajudar a obter ganho. seu sinal até os 5 V. necessários

Não estou dizendo que será perfeito, mas acho que é um bom começo.

Como observação final, eu gosto da idéia de David acima sobre os grampos, mesmo que esses possam causar alguns erros de medição no conversor A / D. O que é mais importante, porém, é que se você pode balançá-lo, tente um amplificador operacional melhor do que o 741. Esses são comuns, mas as especificações são terríveis. Os 3 ou 4 mV de tensão de desvio nos terminais de entrada podem realmente atrapalhar um pequeno sinal como você está tentando medir.

~ Chris Gammell


11
Você não precisa de um amplificador de instrumentação. Um simples amplificador diferencial será suficiente. Você precisa de um fornecimento constante de 1,9 V para usar como referência. Eu estou supondo que algo assim já exista no circuito como o viés para o sensor. Seria bom ter um esquema. Além disso, após remover o viés, é necessário adicionar novamente outro viés para obtê-lo entre 0 e 5 V do ADC.
Endolith 17/12/2009

11
Concordo que você não precisa de um, mas é uma boa ideia. Um amplificador de instrumentação é apenas um amplificador diferencial com buffers antes (às vezes com resistores adicionais para ganho). Se você apenas usa um amplificador diferencial, está à mercê dos resistores no seu amplificador diferencial; às vezes tão baixo quanto 1K. Se ele estiver tentando medir algo, essa alta impedância (dos buffers de um iAmp) pode realmente ajudar (ou seja, nenhum fluxo de corrente no dispositivo de medição).
21820 Chris Gammell

12

O condicionamento de sinais nesse sentido é extremamente comum. Você deseja usar um amplificador para fazer com que a faixa de 10mV alcance (por exemplo) toda a faixa de 0-5V do arduino. Isso pode ser feito usando amplificadores operacionais, como o LM741. Você provavelmente também desejará usar um "grampo de tensão" (por exemplo: dois diodos zener) na saída do seu condicionador de sinal / entrada no ADC para garantir que o valor não exceda 5V. Se você procurar on-line as folhas de dados do amplificador operacional e / ou os circuitos de condicionamento de sinal, deverá encontrar guias sobre exatamente o que está procurando.


4

Sugira que você observe a combinação de um PGA diferencial (amplificador de ganho programável) e um DAC, com a saída do sensor na entrada "+" e o DAC na entrada "-". (Ou algo integrado que oferece funcionalidade equivalente.) Basicamente, observe o sinal com baixo ganho, descubra qual é o seu deslocamento, coloque essa tensão no DAC e aumente o ganho.

O PGA308 da TI parece ser uma boa solução.

Se você deseja uma solução mais barata, use um amplificador diferencial de ganho fixo (o padrão de 4 resistores + amplificador operacional) + um DAC estável e silencioso de 8 bits (características de estabilidade / ruído mais importantes que a precisão) e coloque novamente a saída do sensor na entrada "+" no amplificador diferencial e a saída DAC na entrada "-".

Exercício para o leitor: mostre que você pode trazer a saída do diff-amp da saturação para um intervalo linear usando uma técnica de pesquisa binária com o DAC e garantindo que o ganho não seja maior que G1 = a tensão de entrada ADC em escala completa, dividido pela soma do tamanho nominal do passo do DAC e seu DNL (não linearidade diferencial). Eu provavelmente usaria o menor de (G1 / 2) e G2, em que G2 = a tensão de entrada ADC em escala completa dividida pela faixa de tensão de saída do sensor de sua preferência.


Ambicioso demais para mim no momento, devido a restrições de tempo, mas obrigado pela sugestão. Estou animado para aprofundar o condicionamento de sinais analógicos para futuros protótipos.
terraço

Por que você precisa de um DAC? Você está apenas gerando um deslocamento DC com ele? Isso parece um exagero.
Endolith 17/12/2009

Sim. O DAC foi baseado na suposição de que era necessário alterar o deslocamento de DC em uma ampla faixa. Se você possui um sistema com tensão que abrange apenas uma faixa estreita (assumindo que você fez sua análise de tolerância corretamente), um divisor de resistor e uma referência podem ser adequados para produzir uma tensão de compensação. Ou, para um pouco mais de complexidade, uma rede de resistores + multiplexadores (o que são alguns DACs). Um DAC não é realmente um dispositivo tão complicado ou caro, se você não precisar de velocidade ultra-alta ou resolução ultra-fina.
Jason S

3

Usar a fibra ótica como sensor de dobra pode ser uma má escolha, não é o ponto principal da fibra ótica permitir facilmente que você incline luz nos cantos com perda mínima?


2
Sim, mas se você tirar a jaqueta e raspar levemente o revestimento de um lado com uma lâmina de barbear, a quantidade de luz que atravessará variará à medida que você dobra a fibra. Um recurso interessante é que você recebe um sinal bidirecional. Se você se afastar da pontuação, menos luz passa; se você se inclina em direção a ela, mais luz passa. Você precisaria usar dois sensores tradicionais de curvatura para conseguir isso. Eles também parecem legais.
terraço

2

Você precisa de duas coisas: usar uma entrada diferencial para comparar com um padrão de 1,9v (ou próximo a ele) e um amplificador para aumentar a resolução dessa diferença.

Para obter os melhores resultados, use amplificadores de instrumentação externos de alta qualidade ou amplificadores operacionais. Mas você pode tentar usar recursos embutidos no microcontrolador. O Arduino Mega (chip ATMega2560) e o Arduino Leonardo incluem a opção de entradas amplificadas diferenciais para o ADC diretamente no chip. (O Uno não tem isso). Um ATMega2560 poderia fazer vários canais (multiplexados) de ADC diferencial amplificado para vários sensores - leia a folha de dados para ver quais combinações de pinos são possíveis. Possui uma opção de amplificação de 200x, que colocaria a resolução completa de 1024 passos em 25 mv. Você só precisa posicionar a janela de 25 mV onde precisar!

Isso pode ou não ser suficientemente silencioso para seus propósitos - não é da alta qualidade que você poderia construir externamente para obter mais $$.

A parte mais difícil pode ser obter uma referência estável e precisa de 1,9v para comparar.


Vim aqui para dizer isso. +1!
Nick Johnson
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.