¿Hay una manera de producir una onda sinusoidal con un arduino? Tal vez utilizando PWM? Sería bueno poder simular algo alrededor de 10kHz. ¿Es esto posible incluso con el hardware en el Uno?
¿Hay una manera de producir una onda sinusoidal con un arduino? Tal vez utilizando PWM? Sería bueno poder simular algo alrededor de 10kHz. ¿Es esto posible incluso con el hardware en el Uno?
Busque DDS (Síntesis Directa Digital) que usa un filtro de paso bajo como se menciona en las otras respuestas:
Luego,utilizaunaseñalPWMvariableparacrearunaondasinusoidal:
Todo lo que necesita para implementarlo con un Arduino, incluido el código fuente del generador PAM, se puede encontrar en este artículo .
Sí, utiliza un filtro de paso bajo combinado con PWM. Cuanto menor sea el ciclo de trabajo, menor será el valor de su salida. Así que modula su ciclo de trabajo como una sinusoide y pasa la salida PWM a través de un LPF. La salida del LPF será entonces una forma de onda sinusoidal, aunque tendrá un desplazamiento de CC.
No es bastante un Arduino, pero recuerdo un ejercicio de laboratorio específico que requería que lo hiciera en mi curso de microcontroladores de la universidad usando un AT90S8515, y como recuerdo, requirió un poco de programación de ensamblaje para obtener el frecuencia en decenas de kHz ... de hecho, aquí está la descripción del laboratorio .
Además de PWM + Low Pass Filtering, otra forma es usar un DAC de escalera R-2R y conduzca salida con un puerto. Pero no va a obtener mucha frecuencia con la función digitalWrite
. Como he dicho, como mínimo deberá realizar asignaciones de puertos directas.