¿Puedo controlar una salida de voltaje desde un microcontrolador?

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?

Respuestas (5)

Sí, todos los microcontroladores tienen alguna forma de producir señales de voltaje controladas por el firmware. El método de fuerza bruta es 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/A de múltiples bits incorporados porque hay poca demanda para esto. Por lo general, tratamos de convertir valores analógicos a digitales lo antes posible en el proceso, hacemos las manipulaciones digitalmente y luego controlamos las cosas con pulsos. Es inusual querer que un micro produzca un voltaje analógico. Incluso en aplicaciones como el audio que puede pensar que se trata inherentemente de 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 del conjunto limitado de micros que tienen un D/A incorporado, puede agregar uno externamente. Hay muchos D/A disponibles que el micro puede controlar a través de un bus SPI, por ejemplo.

Sin embargo, a menos que necesite una salida de alta velocidad, el filtrado de paso bajo de 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 velocidad de 1 MHz). Suponga que agrupó los intervalos de tiempo de 1 µs en bloques de 1023. Para cada bloque, puede tener entre 0 y 1023 intervalos 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 frecuencias altas a partir de 1 MHz / 1023 = 978 Hz. Al aplicar algunos polos de filtrado de paso bajo (una resistencia y un capacitor por polo),

Este tipo de A/D tiene algunas buenas propiedades en el sentido de que es muy lineal, monótono y sin potencia de 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ápida que unas pocas décimas de Hz.

Tenga en cuenta que usar 1023 rebanadas por bloque fue una elección arbitraria que hizo. Si desea más resolución, haga los bloques más grandes, pero luego la salida filtrada tendrá que cambiar más lentamente. Sin embargo, muchos micros pueden hacer la generación de PWM en hardware mucho más rápido que una tasa de corte de 1 MHz.

Intentaría ver si se puede hacer que el método PWM funcione antes de ir a un D/A externo.

Como un completo novato, esto fue útil para ver el espectro de filtros disponibles: analog.com/designtools/en/filterwizard

Lo que estás tratando de 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 con él a través de lo que pueda (I2C, SPI, UART, etc.)

Notó que etiquetó microchip, tienen microcontroladores con un DAC desde los simples (pic12f752, pic16f753,782) hasta los avanzados (dsPIC33fj16GS504,502,302) y varios más. puede encontrarlos aquí http://www.microchip.com/maps/microcontroller.aspx

Entonces podría usar el 12F752 por ejemplo, usar su CDA para generar un voltaje y usar un CAD para tomar los valores del sistema y analizar, ¿no?
@user26136 si CDA = DA del microcontrolador y CAD = AD del microcontrolador, ¡entonces sí! Recomiendo también mirar las notas de aplicación de calibración
Jaja si, lo es.

Dependiendo de la corriente consumida por el sistema, puede hacer esto con una escalera de resistencia como DAC: http://en.wikipedia.org/wiki/Resistor_ladder

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

Si consume una corriente no trivial, querrá un amplificador operacional en la salida configurado como un búfer. Asegúrese de que su amplificador operacional funcione con una linealidad adecuada cerca de 0V; es posible que necesite una fuente de alimentación negativa para esto.

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

Si está 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 microcontroladores que vengan con módulos DAC. Algunos de los microcontroladores MSP430 tienen DAC ( consulte la página 23 ) que puede usar. Necesitas mirar en sus hojas de datos.

Si se encuentra limitado 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.