Estoy construyendo un proyecto que emite audio a través de un Arduino a un altavoz de computadora con alimentación. Esta señal de audio proviene de una búsqueda de tabla de ondas sinusoidales que paso a varias frecuencias, configurando un pin PWM en wave_table[0], luego wave_table[1], etc...
Me gustaría modular el volumen de esta señal, pero no quiero simplemente dividir el valor de la tabla de ondas por un número entero porque me preocupa que distorsione el audio, en lugar de tener un rango de 0-255 para la onda sinusoidal, solo puede ir de 0 a 3, por ejemplo, y luego ya no es una buena forma sinusoidal.
¿Hay alguna manera de que pueda usar un segundo pin Arduino PWM para controlar un amplificador para cambiar la señal analógica que proviene del Arduino para modificar el volumen antes de que llegue al altavoz?
¡¡Gracias!!
Probablemente pueda usar un segundo PWM para generar un voltaje y luego enviarlo a un VCA, u obtener un potenciómetro digital externo (DPOT) y usarlo para cambiar la ganancia de un amplificador operacional si está dispuesto a agregar circuitos integrados adicionales. Sin embargo, si no necesita tantos niveles de volumen y ya tiene un montón de PWM de hardware en su Arduino, puede conectarlos a través de algunas resistencias en serie para crear un circuito de verano. Suponiendo que el parlante de su computadora tiene un amplificador incorporado con alta resistencia de entrada, debería poder agregar varias (por ejemplo, 4) salidas PWM juntas a través de resistencias de 1K.
Siempre que los PWM estén sincronizados como deberían estar, debería obtener 1/4, 2/4, 3/4 y amplitud total usando 4 canales (por ejemplo). Simplemente haga que todos generen lo mismo y apague algunos de los PWM (configurándolo para que sea un 0 digital) si desea reducir el volumen.
[EDITAR] En realidad, pensando un poco más en el problema, puede hacerlo con incluso menos hardware si usa las salidas digitales como atenuación. Considere el siguiente circuito:
simular este circuito : esquema creado con CircuitLab
Cada E/S digital básicamente le brinda un bit de control de volumen, y puede obtener tantos bits como E/S adicionales tenga. Su volumen más alto sería con todas las E / S digitales configuradas en "Z alto" o entrada, ya que su amplificador solo vería el PWM. Configurar cualquiera de las E/S digitales para emitir con un valor de '0' atenuaría la señal (por ejemplo, si el 0 digital emitiera un '0', su señal de audio se atenuaría en un 50% debido a la división de voltaje). en el caso anterior, tendría 8 niveles de volumen, pero puede extender fácilmente el circuito si necesita más bits. También puede convertirlo en una disminución logarítmica eligiendo cuidadosamente los valores de resistencia.
Puede usar un potenciómetro controlado digitalmente entre la salida del filtro y la entrada de audio. Aquí hay un ejemplo usando el DS1669. ( http://pdfserv.maximintegrated.com/en/ds/DS1669.pdf)http://pdfserv.maximintegrated.com/en/ds/DS1669.pdf
Ignacio Vázquez-Abrams
Andy alias
Warren joven
Warren joven