Cómo generar una onda sinusoidal con un microcontrolador

Hay una manera muy conveniente de hacer esto.

El circuito de ejemplo muestra las puertas CMOS XOR controladas por un contador, pero puede hacerlo con cuatro pines de puerto en un microcontrolador y cuatro resistencias, más el amplificador sumador. El 4040 solo cuenta una y otra vez de 0 a 15, y cada dos veces el Q4 sube y convierte todos los XOR en inversores. Con un micro, contarías de 0 a 15 y luego volverías a bajar de 15 a 0.

Funciona como un DAC de bricolaje con bits ponderados. A medida que el conteo avanza de 0000 a 1111, las salidas, sumadas por el amplificador operacional, se ajustan al perfil de una onda sinusoidal ascendente desde -pi / 2 a pi / 2. La misma secuencia, con polaridad invertida, crea la parte descendente de la curva. La curva es bastante suave (32 pasos) y se ajusta a la verdadera onda sinusoidal dentro de un par de por ciento. Los pasos se pueden suavizar con un condensador a través de R5, valor elegido de modo que la constante de tiempo C.R5 (uF.k) milisegundos sea 1/16 del período de onda sinusoidal o más.

La respuesta es utilizar un convertidor digital a analógico (DAC) y escribir en el DAC a una velocidad regular, quizás controlable. Los valores escritos en el DAC serán una función de sin( time ) . Si no desea comunicarse con un DAC IC discreto, puede hacer uno bastante decente usando algunas resistencias en una escalera R / 2R (investigue eso en línea) y algunos bits de E / S digitales. Puede hacer un poco de filtrado y escalado utilizando amplificadores operacionales y Rs & Cs si desea que sea un poco más útil.

Corríjame si me equivoco, pero ¿no enviar una función sinusoidal a un DAC daría una salida de onda sinusoidal? ¿Por qué todos hablan del ADC?

Además, el Arduino Due tiene dos DAC y tiene un programa de ejemplo para una salida de onda sinusoidal.

Si es de frecuencia bastante baja, debería funcionar un filtro simple de paso bajo (RC).
¿Alguna razón por la que no desea utilizar una parte de sintetizador digital directo en su lugar?

¿No tienes ya un pin de salida analógica? Úselo para generar valores sinusales con CORDIC – Wikipedia

Cordic es normalmente rápido, por lo que incluso puedes hacerlo en tiempo real.

Algunos microcontroladores tienen un ADC, el Espruino tiene un generador de forma de onda: Espruino – Forma de onda

No creo que haya otras buenas opciones que tenga.
Personalmente, creo que adc es una buena opción y la complejidad del circuito y la programación no será muy alta
y si usa un microcontrolador con adc incorporado en su tablero, entonces es solo un paseo fácil.

More Interesting

¿Qué tipo de procesadores especializados se utilizan en los teléfonos inteligentes para un mejor rendimiento óptimo?

¿Cuáles son algunos lenguajes c-to-gates de última generación?

¿Cuáles son algunos ejemplos de sistemas integrados en la aviación?

Cómo aprender a programar sistemas integrados y VLSI por mi cuenta

¿Cuál es la diferencia entre la instrucción de salto y llamada en 8051?

¿Cuáles son las áreas de investigación en sistemas embebidos?

¿Qué cuidado se debe tener al conectar el microcontrolador con la memoria?

Cómo convertirme en un desarrollador IOT aprendiendo todo por mí mismo

¿Cuáles son las ventajas y desventajas de utilizar una emulación EEPROM real versus una emulación EEPROM en flash en un microcontrolador?

Empecé a trabajar en Raspberry Pi usando Python. Tengo el problema de que los programas que se ofrecen en Internet no se explican. P.ej. para ejecutar UART se proporciona un archivo llamado 'serial'. ¿Cómo sabría qué funciones se dan en este archivo y qué opciones de parámetros están disponibles?

¿Cómo debo prepararme para comenzar una maestría en sistemas embebidos? ¿Cuál es el conocimiento básico que debo tener antes de comenzar?

¿Alguien puede ayudarme a encontrar la dirección de Pc0-Pc5? La hoja de datos: http://www.pmt-fl.com/downloads/picocap/DB_PCap01Ax_0301_en.pdf

¿Cuál es la arquitectura de puerto paralelo de 8051?

¿Qué / quién determina qué microcontrolador utiliza una empresa para un producto?

¿Cuáles son algunas buenas sugerencias de proyectos para los estudiantes de ECE de último año?