Problemas al leer una señal con un pin de entrada MCU (TM4C123GXL)

Estoy tratando de leer una señal generada por una operación. amperio. con un microcontrolador a través de un pin digital de entrada. Todas las señales con las que estoy trabajando son DC.

la operación amperio. está conectado a un sensor de luz para que emita 0 V cuando el sensor está sombreado y entre 4,8 y 5,2 voltios (fluctúa todo el tiempo) cuando el sensor detecta luz. He medido esta señal con un multímetro.

El pin del microcontrolador está configurado como una entrada digital con una resistencia desplegable. Los niveles de voltaje para el pin son lógicos 1si el voltaje de entrada es 3.3V < voltaje < 5V y lógicos 0si el voltaje < 3.3.

El problema que tengo es que cuando conecto el op. amp. de salida al pin digital de entrada, y el sensor está habilitado, el voltaje cae a algo entre 0.8V y 1.5V, y no alcanza un nivel constante (siempre fluctúa, rango más amplio que antes).

Se supone que el microcontrolador cambia el color de un LED según el estado de la entrada digital. Lo que pasa es que el LED parpadea todo el tiempo. Además, sin embargo, he conectado una señal constante de 3.3V que sale del pin (salida) de otro microcontrolador y todo funciona como se esperaba. Además he medido el voltaje en el pin de salida y no baja como pasa con el op. amperio.

No estoy seguro de poder conectar el op. amperio. salida directamente a un pin de entrada digital. Mis preguntas son:

es la op. amperio. señal de salida considerada analógica?

Si es así, si una señal analógica tiene dos estados 'estables' conocidos, ¿puede considerarse una señal digital?

¿Puedo conectar esa señal directamente al pin de entrada, dado que todavía es CC? ¿Necesito conectarlo a un ADC?

Nota: El microcontrolador es un TM4C123GXL. Estoy configurando el pin PB4como entrada digital y PB6como salida digital (3.3V). Cuando se conecta PB6a PB4, todo funciona como se esperaba.

EDITAR

El esquema está aquí:ingrese la descripción de la imagen aquí

Fíjate que R3es una fotocélula. la operación amperio. es un OPA2344

Actualmente, mi MCU se alimenta a través de USB, desde mi computadora portátil. Tenga en cuenta que estoy conectando el op. amperio. Salida directamente al pin de entrada digital. No estoy seguro si esto se puede hacer.

Como puede ver, estoy usando un divisor de voltaje . Esto se debe a que, si enciendo el op. amperio. con los 3,3 V que salen del regulador, su salida siempre está por debajo de los 3,3 V, por lo que la MCU nunca lo interpretará como una lógica 1.

Me gustaría hacer esto sin la ayuda de un transistor.

EDITAR 2

Lo he intentado de nuevo encendiendo el op. amperio. con los 3.3V constantes saliendo del regulador. La salida de la op. amperio. es estable en 3.3V cuando la fotocélula no está sombreada, tan pronto como lo conecto a la entrada digital de MCU, cae a 3.29V, por lo que MCU no lo detecta como una lógica 1.

Observé una lista que estaba haciendo: estaba conectando el pin MCU GND a la tierra común. Eso hace que todo 'se vuelva loco', creo que eso es lo que causó la caída de voltaje en la operación. La salida de amp. que vi antes. Deduzco que está mal conectar el MCU GND a la tierra común, ¿por qué?

¿Qué amplificador operacional estás usando? Por favor incluya un esquema.
¿Y cuál es el valor de la resistencia desplegable en la entrada del microcontrolador? Las fluctuaciones de 4,8 V a 5,2 V que midió con un multímetro pueden ser una indicación de que el amplificador operacional está oscilando. Como dijo Ron Beyer, se necesita un esquema para ir más allá.
Martel, ¿por qué no usa un par de BJT y algunos pasivos para crear un circuito con histéresis y una señal digital limpia? Por ejemplo, no muy diferente a esto .
3.3V como salida digital... ¿en qué voltaje está trabajando su uC (no el launchpad)? 3.3V? ¿Y puedes aplicar 5V al ADC? (Está en la página 1350 más o menos de la hoja de datos, forma tl; dr en este teléfono)
Consulte la hoja de datos, qué voltajes se reconocen como "alto" y "bajo", resp. Estoy seguro de que un voltaje de 3,29 V todavía se leerá como "1" en un microcontrolador de 3,3 V.
Una pequeña lección que aprender aquí: no use amplificadores operacionales como comparadores, use circuitos integrados de comparación. Hay un montón de razones por las cuales, pero se reduce a "los amplificadores operacionales no están diseñados para ser comparadores". Pueden tener problemas inesperados. Probablemente no sea el problema aquí, pero aún así, tal vez al menos agregue un ciclo de histéresis para limpiar cualquier problema en las transiciones. Horowitz y Hill tienen un gran capítulo sobre la interfaz digital Id, mira si tienes una copia

Respuestas (3)

Según su explicación, parece que ha configurado el Op-Amp para generar 0-5 V y el pin digital del microcontrolador está tratando de leer una señal de 0-5 V. Tenga en cuenta que el microcontrolador TM4C123GXL que está utilizando funciona con niveles lógicos de E/S de 3,3 V y está utilizando una lógica de 5 V para controlar el pin digital del microcontrolador. Esta parece ser la causa de lo que está viendo en la salida. Eche un vistazo a la hoja de datos del microcontrolador TM4C123GXL aquí: http://www.ti.com/lit/pdf/spmu296&ved=2ahUKEwjP1-DeqPrnAhVkTxUIHYoLDiEQFjAAegQIBxAC&usg=AOvVaw0XulafQFE2JHx9LJ_xC5p-&cshid=1583103090057 como circuito sugerido y @Steve como @Ron .

En primer lugar, necesita un terreno común. Si solo conecta la salida del amplificador operacional a PB4 de la MCU, ha establecido un voltaje de referencia común. Pero no fluirá corriente antes de que haga una segunda conexión entre los dos para que haya un bucle entre los dos circuitos.

También puede usar uno de los canales ADC de la MCU y leer la fotocélula directamente sin el amplificador operacional. Utilice la fotorresistencia en un divisor de voltaje.

También habría usado solo una fuente de energía. Entonces, encienda todo desde el regulador o desde USB.

El problema era que estaba alimentando todo el circuito con una batería de 9V (convertida a 3.3V a través del regulador) pero la MCU a través del puerto USB de mi laptop.

Desconectando la op. amperio. salida del pin de entrada de MCU pude medir 3.3V constante. En el momento en que conecto el GNDpin MCU (tierra) a la tierra del tablero (que está conectado al terminal negativo de la batería), la operación. amperio. la salida se vuelve mental (empieza a saltar todo el tiempo de 1,5 a 2,3 V aprox.)

Lo que he hecho es desconectar la MCU de la computadora portátil y conectar su GNDpin a la tierra común de la placa de prueba, el VBUSpin a la salida del regulador (3.3V) y el op. amperios Salida a PB4(pin de entrada). Al hacerlo, todo funciona como se esperaba.

EDITAR

He intentado algo diferente: conecte la MCU a mi computadora portátil y encienda la placa con su pin de 3.3V. Al principio no funcionó (la salida del amplificador operacional cayó a 0 V), y descubrí que eso fue causado por el multímetro. Lo he desconectado y todo funciona.