Voltaje de escala para Arduino Analog In, más allá de los divisores de voltaje

16

Recientemente construí algunos sensores de doblez de fibra óptica y quiero leer los valores que obtengo de ellos en una computadora a través de un Arduino. Estoy midiendo la luz con este fotodiodo de Industrial Fiber Optics . Actualmente, estoy dando el LED en el otro extremo, así como el fotodiodo 2.2V. Mi pregunta tiene que ver con el hecho de que las fluctuaciones de voltaje medidas por un multímetro en el fotodiodo son lineales, pero más bien pequeñas a medida que la fibra se deforma, incluso de manera bastante radical. Con la fibra recta, dependiendo de la fibra (es difícil calificarlas de manera idéntica), el voltaje oscila alrededor de 1.92V, por ejemplo, y con la flexión lo hará, digamos, 1.93-1.94V. No me preocupa que los voltajes sean idénticos, ya que puedo escalarlos en el software.

Lo que me preocupa es perder resolución cuando hago A / D con Arduino. Si mis fluctuaciones de voltaje son del orden de 10 mV, ¿no se cuantificará el A / D de 10 bits del Arduino, incluso si paso el voltaje hasta 5 V con un divisor de voltaje? Lo que estoy buscando es un escalador analógico. ¿Cómo puedo extender ese rango entre 1.92 y 1.94 para cubrir el rango completo, de 0V a 5V para poder aprovechar el rango completo del Arduino A / D?

Siento que esto tiene que ser una operación común en electrónica, pero nunca lo he estudiado formalmente, así que muchas cosas se me han perdido.

(Tal vez piense, como estaba Davr, "¿por qué está utilizando fibra óptica para la detección de doblez? ¿Por qué esperaría un cambio de voltaje cuando la fibra está doblada?" El truco es quitar el revestimiento en un lado del cable de fibra óptica Esto permite que la luz se derrame. Cuando el cable se dobla lejos de la puntuación, se deja salir aún más luz del cable, causando una caída de voltaje en el receptor, y viceversa).

terraza
fuente
¿Sería tan amable de mostrar un esquema de su receptor? ¿Está suministrando el voltaje de polarización de 1.9 V?
endolith
Si te refieres al esquema para el receptor en sí, lo vinculé a la hoja de datos anterior. Aquí está de nuevo: i-fiberoptics.com/pdf/IFD91.pdf Si te refieres a cómo lo tengo conectado, puedes verlo en la fotografía. El receptor es el negro. Le doy 2,2 V (aunque en la foto es una batería de iones de litio) a través del cable rojo al lado del receptor con el punto naranja, y estoy midiendo el voltaje a través de la resistencia que se conecta a tierra el otro lado.
terraza

Respuestas:

11

Entonces, si entiendo correctamente, ¿quiere poder "leer" una variación de 10 mV sobre una señal de 1.9V?

Si ese es el caso, sugeriría dos etapas separadas. El primero será un amplificador de fotodiodos (la página 9 es el más estándar de los circuitos). Esto ayudará a obtener la corriente de su fotodiodo traducida en voltaje.

La segunda etapa será un amplificador de instrumentación, como la familia INA de Texas Instruments (el mejor pero también puede ser costoso). Esto ayudará a eliminar su señal de "modo común", que en este caso es de 1.9 V. También puede agregar ganancia al amplificador de instrumentación o, alternativamente, agregar un amplificador operacional simple en una configuración no inversora al final para ayudar a ganar su señal hasta los 5 V. necesarios

No digo que sea perfecto, pero creo que es un buen comienzo.

Como nota final, me gusta la idea de David anterior sobre las abrazaderas, a pesar de que pueden causar algunos errores de medición en el convertidor A / D. Sin embargo, lo que es más importante es que si puedes balancearlo, prueba un amplificador operacional mejor que el 741. Esos son comunes pero las especificaciones son terribles. Los 3 o 4 mV de voltaje de compensación en los terminales de entrada realmente podrían estropear una pequeña señal como si estuviera tratando de medir.

~ Chris Gammell

Chris Gammell
fuente
1
No necesita un amplificador de instrumentación. Un simple amplificador diferencial servirá. Sin embargo, necesita un suministro constante de 1.9 V para usar como referencia. Supongo que algo así ya existe en el circuito como el sesgo del sensor. Sería útil tener un esquema. Además, después de eliminar el sesgo, debe volver a agregar otro sesgo para obtenerlo entre el rango de 0 y 5 V del ADC.
endolith
1
Estoy de acuerdo en que NO NECESITAS, pero es una buena idea. Un amplificador de instrumentación es solo un amplificador diferencial con buffers antes (a veces con resistencias adicionales para ganancia). Si solo usa un amplificador diff, está a merced de las resistencias en su amplificador diff; a veces tan bajo como 1K. Si está tratando de medir algo, esa alta impedancia (de los amortiguadores de un iAmp) realmente puede ayudar (es decir, no hay flujo de corriente en el dispositivo de medición).
Chris Gammell
12

El acondicionamiento de señales en este sentido es extremadamente común. Desea usar un amplificador para hacer que ese rango de rango de 10mV (por ejemplo) sea el rango completo de 0-5V del arduino. Esto se puede hacer usando amplificadores operacionales como el LM741. Probablemente también desee utilizar una "abrazadera de voltaje" (por ejemplo, dos diodos zener) en la salida de su acondicionador de señal / entrada en el ADC para asegurarse de que el valor no exceda los 5V. Si mira en línea las hojas de datos del amplificador operacional y / o los circuitos de acondicionamiento de señal, debe encontrar guías sobre exactamente lo que está buscando.

David Brenner
fuente
4

Le sugerimos que mire la combinación de un PGA diferencial (amplificador de ganancia programable) y un DAC, con la salida del sensor yendo a la entrada "+" y el DAC yendo a la entrada "-". (O algo integrado que le brinde una funcionalidad equivalente.) Básicamente, observe la señal con baja ganancia, descubra cuál es su compensación, coloque ese voltaje en el DAC y aumente la ganancia.

TI PGA308Parece que podría ser una buena solución.

Si desea una solución menos costosa, use un amplificador diferencial de ganancia fija (la resistencia estándar de 4 + amplificador operacional sería suficiente) + un DAC estable y silencioso de 8 bits (características de estabilidad / ruido más importantes que la precisión), nuevamente la salida del sensor en la entrada "+" al amplificador diferencial y la salida DAC en la entrada "-".

Ejercicio para el lector: demuestre que puede sacar la salida del amplificador diferencial de la saturación y ponerla en un rango lineal mediante el uso de una técnica de búsqueda binaria con el DAC, y asegurándose de que la ganancia no sea mayor que G1 = el voltaje de entrada ADC a escala completa, dividido por la suma del tamaño de paso nominal del DAC y su DNL (no linealidad diferencial). Probablemente usaría el menor de (G1 / 2) y G2, donde G2 = el voltaje de entrada ADC a escala completa dividido por el rango de voltaje de salida del sensor que le interesa.

Jason S
fuente
Demasiado ambicioso para mí en este momento dadas las limitaciones de tiempo, pero gracias por la sugerencia. Estoy emocionado de sumergirme más en el acondicionamiento de señal analógica para futuros prototipos.
terraza
¿Por qué necesitas un DAC? ¿Estás generando un desplazamiento DC con él? Eso parece bastante exagerado.
endolith
Si. El DAC se basaba en la suposición de tener que cambiar el desplazamiento de CC en un amplio rango. Si tiene un sistema con un voltaje que abarca solo un rango estrecho (suponiendo que haya realizado su análisis de tolerancia correctamente), entonces un divisor de resistencia y una referencia pueden ser adecuados para producir un voltaje de compensación. O para un poco más de complejidad, una red de resistencia + multiplexores (que es lo que son algunos DAC). Un DAC no es realmente un dispositivo tan complicado o costoso, si no necesita una velocidad ultra alta o una resolución ultrafina.
Jason S
3

Usar fibra óptica como sensor de curvatura podría ser una mala elección, ¿no es el objetivo de la fibra óptica permitirle fácilmente doblar la luz en las esquinas con una pérdida mínima?

davr
fuente
2
Sí, pero si le quita la chaqueta y raspa ligeramente el revestimiento de un lado con una cuchilla de afeitar, la cantidad de luz que atraviesa variará a medida que dobla la fibra. Una buena característica es que obtienes una señal bidireccional. Si te alejas de la puntuación, pasará menos luz, si te inclinas hacia ella, pasará más luz. Tendría que usar dos sensores de curvatura tradicionales para obtener eso. También se ven geniales.
terraza
2

Necesita dos cosas: usar una entrada diferencial para comparar con un estándar de 1.9v (o cercano) y un amplificador para aumentar la resolución de esa diferencia.

Para obtener los mejores resultados, debe utilizar amplificadores de instrumentación externos o amplificadores operacionales. Pero podría intentar usar las instalaciones integradas en el microcontrolador. El Arduino Mega (chip ATMega2560) y Arduino Leonardo incluyen la opción de entradas diferenciales y amplificadas al ADC directamente en el chip. (El Uno no tiene esto). Un ATMega2560 podría hacer múltiples canales (multiplexados) de ADC diferencial amplificado para múltiples sensores: lea la hoja de datos para ver qué combinaciones de clavijas son posibles. Tiene una opción de amplificación de 200x, que pondría la resolución completa de 1024 pasos en 25 mv. ¡Solo tiene que colocar esa ventana de 25 mV donde la necesita!

Eso puede o no ser lo suficientemente libre de ruido para sus propósitos: no es tan alta calidad como podría construir externamente por más $$.

La parte más difícil puede ser obtener una referencia estable y precisa de 1.9v para comparar.

Zeph
fuente
Vine aquí para decir esto. +1!
Nick Johnson