¿Puedo controlar una salida de voltaje de un microcontrolador?

7

Tengo que generar valores entre 0 V y 0,8 V para un circuito y tomar el valor de la salida de voltaje del sistema y analizar los datos. ¿Puedo generar valores de voltaje automáticamente usando un microcontrolador? (Por ejemplo: 0.05 V, 0.1 V, 0.15 V ...)

Si la respuesta es sí, ¿qué microcontrolador debo usar y qué técnicas recomendaría?

Si la respuesta es no, ¿puede sugerir algún otro medio?

    
pregunta user26136

5 respuestas

8

Sí, todos los microcontroladores tienen alguna forma de producir señales de voltaje controladas por el firmware. El método de fuerza bruta es para que el micro incluya un convertidor digital a analógico (D / A). El firmware escribe un número en el D / A y produce un voltaje proporcional a ese número.

Una especificación importante de D / As es cuántos bits tiene el número. Esto determina su resolución. El D / A puede producir 2 N valores diferentes cuando hay N bits en el número. Por ejemplo, un D / A de 8 bits puede producir 256 niveles de voltaje diferentes. Tenga en cuenta que un pin de salida digital ordinario puede considerarse como un D / A de 1 bit. El número tiene dos estados, 0 y 1, y el voltaje de salida es alto o bajo.

La mayoría de los micros no vienen con D / As de múltiples bits porque hay poca demanda para esto. Por lo general, tratamos de convertir valores analógicos a digitales lo más temprano posible en el proceso, hacemos las manipulaciones digitalmente y luego controlamos las cosas con pulsos. Es raro que un micro produzca una tensión analógica. Incluso en aplicaciones como el audio que puede parecer inherente a una señal analógica, las cosas a menudo se manejan digitalmente o con pulsos al final. Eso es básicamente lo que es un amplificador de clase D.

Si no desea utilizar uno de los micros limitados que tienen un D / A integrado, puede agregar uno externamente. Hay muchas D / As disponibles que el micro puede manejar sobre un bus SPI, por ejemplo.

Sin embargo, a menos que necesite una salida de alta velocidad, el paso bajo que filtra la salida PWM de un micro da como resultado una buena señal analógica. Los micros son buenos para producir secuencias de pulsos bien controladas, y muchos tienen hardware incorporado para este propósito. Por ejemplo, considere una salida digital que se puede cambiar cada 1 µs (a una frecuencia de 1 MHz). Suponga que agrupó los intervalos de tiempo de 1 µs en bloques de 1023. Para cada bloque, puede tener de 0 a 1023 de los segmentos altos. Si tuviera que promediar esto, obtendría un valor analógico con 1024 niveles posibles, que es lo que obtendría de un D / A de 10 bits. La señal sin procesar contendrá el valor promedio que desea, más las frecuencias altas que comienzan en 1 MHz / 1023 = 978 Hz. Al aplicar algunos polos de filtrado de paso bajo (una resistencia y un condensador por polo), puede mantener la señal de promedio de baja frecuencia y deshacerse de 978 Hz y componentes más altos.

Este tipo de A / D tiene algunas buenas propiedades ya que es muy lineal, monótono y no tiene potencia en dos salidas de falla. El único inconveniente suele ser el ancho de banda. Para algunas resistencias y condensadores simples que forman el filtro de paso bajo, probablemente no pueda obtener una señal analógica más rápido que unos pocos 10s de Hz.

Tenga en cuenta que el uso de 1023 cortes por bloque fue una decisión arbitraria que realizó. Si desea más resolución, haga los bloques más grandes, pero luego la salida filtrada tendrá que cambiar más lento. Sin embargo, muchos micros pueden hacer la generación de PWM en hardware con una velocidad de corte mucho más rápida que la de 1 MHz.

Intentaría ver si el método PWM puede funcionar antes de ir a una D / A externa.

    
respondido por el Olin Lathrop
2

Lo que estás intentando diseñar es un sistema de adquisición de datos

Si tiene un convertidor de digital a analógico (DAC), entonces puede hacerlo. De lo contrario, obtenga un DAC externo y haga que el microcontrolador se comunique a través de lo que pueda (I2C, SPI, UART, etc.)

Notado que etiquetaste el microchip, tienen microcontroladores con un DAC desde sencillos (pic12f752, pic16f753,782) hasta avanzados (dsPIC33fj16GS504,502,302) y varios más. puede encontrarlos aquí enlace

    
respondido por el Iancovici
1

Dependiendo de la corriente dibujada por el sistema, puede hacer esto con una escalera de resistencia como un DAC: enlace

Si desea un pequeño número de valores de voltaje específicos, incluso podría diseñar la escalera de resistencias para que emita esos valores exactamente en lugar del sistema normal de 2 ^ n valores espaciados uniformemente.

Si dibuja una corriente no trivial, deseará un amplificador operacional en la salida configurada como un búfer. Asegúrese de que su amplificador operacional funcione con una linealidad adecuada cercana a 0V; Es posible que necesite una fuente de alimentación negativa para esto.

    
respondido por el pjc50
1

Además de las otras respuestas, la mayoría de los microcontroladores tienen una función PWM (y si no es así, siempre se puede golpear uno a uno). Si alimenta PWM en un filtro RC simple, puede crear un DAC primitivo sin muchos componentes o costos adicionales.

    
respondido por el Phil Frost
1

Si estás de acuerdo con PWM, entonces la salida analógica de Arduino haría el trabajo bien. También puede considerar agregar un filtro de paso bajo, ya que los pulsos pueden ser muy ruidosos.

Si necesita una solución más limpia, busque los microcontroladores que vienen con los módulos DAC. Algunos de los microcontroladores MSP430 tienen DAC ( vea la página 23 ) que puede usar. Necesitas mirar sus hojas de datos.

Si se encuentra restringido a un microcontrolador sin DAC, puede considerar obtener un chip DAC. Estos chips se pueden controlar fácilmente a través de SPI o I2C, y son baratos. Aquí hay un DAC de 12 bits que cuesta un poco más de un dólar.

Espero que esto ayude.

    
respondido por el bot3663369

Lea otras preguntas en las etiquetas