Voltaje de escala para entrada analógica de Arduino, más allá de los divisores de voltaje

14

Recientemente construí algunos sensores de flexión 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 Fibras ópticas industriales . 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 bastante pequeñas, ya que la fibra se deforma, incluso de manera bastante radical. Con la fibra recta, dependiendo de la fibra (es difícil marcarlos de manera idéntica), el voltaje se mantiene en torno a 1.92V, por ejemplo, y con la flexión aumentará, digamos, de 1.93 a 1.94V. No me preocupa que los voltajes sean idénticos, ya que puedo escalar el software.

Lo que me preocupa es perder resolución cuando hago A / D con el Arduino. Si mis fluctuaciones de voltaje son del orden de 10 mV, ¿el A / D de 10 bits del Arduino no se cuantificará, incluso si elevo el voltaje a 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 esta tiene que ser una operación común en la electrónica, pero nunca la he estudiado formalmente, por lo que me pierdo muchas cosas.

(Puede estar pensando, como lo dijo davr, "¿por qué usa fibra óptica para la detección de la curva? ¿Por qué esperaría un cambio de voltaje cuando la fibra está doblada?" El truco es quitar el revestimiento de un lado de la cable de fibra óptica. Esto permite que la luz se derrame. Cuando el cable se dobla para alejarse de la punta, se deja salir aún más luz del cable, lo que provoca una caída de voltaje en el receptor y viceversa. Existe poca documentación de esta técnica en línea. , así que planeo hacer un Instructable una vez que finalice mi proyecto. Vea más abajo.)

enlace

    
pregunta msutherl

5 respuestas

10

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

Si ese es el caso, entonces sugeriría dos etapas separadas. El primero será un fotodiodo amplificador (página 9 es el estándar de la mayoría de los circuitos). Esto ayudará a que la corriente de su fotodiodo se traduzca en voltaje.

La segunda etapa será un amplificador de instrumentación, como la familia INA de Texas Instruments (la mejor, pero también puede ser costosa). 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 simple amplificador operacional en una configuración no inversa al final para ayudar a ganar su señal hasta los 5 V necesarios.

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

Como nota final, me gusta la idea de David sobre las abrazaderas, aunque eso puede causar algunos errores de medición en el convertidor A / D. Sin embargo, lo que es más importante es que si puedes activarlo, 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

    
respondido por el Chris Gammell
12

El acondicionamiento de la señal en este sentido es extremadamente común. Desea utilizar un amplificador para hacer que el rango de 10 mV abarque (por ejemplo) el rango completo de 0-5 V del arduino. Esto se puede hacer utilizando amplificadores operacionales como el LM741. También es probable que desee utilizar una "pinza de voltaje" (por ejemplo, dos diodos Zener) en la salida de su acondicionador / entrada de señal en el ADC para asegurarse de que el valor no exceda de 5V. Si observa en línea las hojas de datos del amplificador operacional y / o los circuitos de acondicionamiento de señales, debería encontrar guías que indiquen exactamente lo que está buscando.

    
respondido por el David Brenner
4

Sugiera 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 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, ponga esa tensión en el DAC y aumente la ganancia.

PGA308 de TI parece ser una buena solución.

Si desea una solución menos costosa, use un amplificador diferencial de ganancia fija (el 4-resistor estándar + op-amp haría) + un DAC de 8 bits estable y silencioso (características de estabilidad / ruido más importantes que la precisión) , vuelva a colocar la salida del sensor en la entrada "+" del amplificador diferencial y la salida DAC en la entrada "-".

Ejercicio para el lector: demuestre que puede sacar la salida del difusor diferencial de la saturación y dentro de un rango lineal utilizando una técnica de búsqueda binaria con el DAC, y asegurarse de que la ganancia no sea mayor que G1 = el ADC de escala completa voltaje de entrada, 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 del ADC de escala completa dividido por el rango de voltaje de salida del sensor que le interesa.

    
respondido por el Jason S
3

El uso de fibra óptica como sensor de curvatura puede ser una mala elección, ¿no es el punto completo de la fibra óptica que le permita fácilmente doblar la luz alrededor de las esquinas con una pérdida mínima?

    
respondido por el davr
2

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

Para obtener los mejores resultados, debe utilizar amplificadores de instrumentación de alta calidad externos o amplificadores operacionales. Pero podrías intentar usar instalaciones integradas en el microcontrolador. El Arduino Mega (chip ATMega2560) y Arduino Leonardo incluyen la opción de entradas amplificadas diferenciales 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 pines 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 tienes que colocar esa ventana de 25 mV donde la necesites!

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 de 1.9v estable y precisa con la que comparar.

    
respondido por el Zeph

Lea otras preguntas en las etiquetas