Tone() con control de volumen de 8 bits – ¡Sin componentes adicionales! © GPL3+

 

Tone() con control de volumen de 8 bits - ¡Sin componentes adicionales!

Tone() con control de volumen de 8 bits – ¡Sin componentes adicionales! © GPL3+

¡Usando frecuencias PWM ultrasónicas, el Arduino ahora puede producir ondas de tono cuadrado () con 256 niveles de volumen desde nada más que un altavoz!

  • audio
  • dispositivos inteligentes
  • control del volumen
  • 26,097 puntos de vista
  • 2 comentarios
  • 14 saludos

Componentes y suministros

Ph a000066 iso (1) ztbmubhmho
Arduino UNO
×1
10722 01
Altavoz: 0,25 W, 8 ohmios
×1

Acerca de este proyecto

La biblioteca Arduino Volume permite que el Arduino de un usuario genere ondas cuadradas con 256 niveles de volumen, ¡usando nada más que un altavoz/piezoeléctrico y un pin digital!

Producir salidas analógicas con un pin digital puede sonar como vudú, pero es simple si usa un filtro RC para suavizar una señal PWM en un voltaje correspondiente. ¡Pero eso requiere circuitos y tiempo adicionales! En lugar, podemos engañar al propio hablante para que actúe como filtro. Conduciendo el PWM más rápido de lo que el altavoz puede responder físicamente (62.500 Hz para ser exactos) una señal PWM de 5 voltios al 50 % del ciclo de trabajo hará que el altavoz actúe como si estuviera alimentado por 2,5 V. ¡Esta es la técnica utilizada para producir sonido a diferentes volúmenes!

Para generar una onda cuadrada de 440 Hz, normalmente repetiríamos esto:

  • Establecer la salida en ALTO
  • Espere 1136 microsegundos
  • Establezca la salida en BAJA
  • Espere 1136 microsegundos

Pero con este truco de PWM ultrasónico, podemos hacer 440 Hz a medio volumen:

  • analogWrite (salida, 127);
  • Espere 1136 microsegundos
  • analogWrite (salida, 0);
  • Espere 1136 microsegundos

De esta forma, el altavoz responde como lo haría con una onda cuadrada de 2,5 V. Para ello, la biblioteca utiliza dos temporizadores de hardware, el temporizador 0 y el temporizador 1.

Temporizador 0:

Primero configura el temporizador 0 para producir PWM en los pines 5 y 6 (Uno) a 62500 Hz. De esta manera, cuando escribimos analogWrite () en uno de estos pines, el altavoz conectado no puede rastrear la frecuencia PWM y, en cambio, emite su promedio para un analógico. tipo de salida.

Temporizador 1:

El temporizador 1 está configurado para interrumpir al doble de la frecuencia deseada, para alternar el pin de salida entre salida PWM y 0 voltios.

Ahora todo lo que tienes que hacer es llamar volumen de tono (434, 64); para producir una onda cuadrada de 434 Hz ​​al 25 % del volumen.

Para obtener la documentación completa de la biblioteca y el código de muestra, descargue Volume a través de Arduino Library Manager y visite el LÉAME en Github!

codificado

Biblioteca de volúmenes
¡La biblioteca de volúmenes también está disponible a través del administrador de bibliotecas de Arduino!

diagramas

Guía de conexión
Descargar
El volumen

 

Fuente Arduino.cc