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.