Librería toneAC con el zumbador bq



  • buenas,

    quería saber si hay alguna posibilidad de usar el zumbador que viene con el zum kit con la librería toneAC. Enseño a músicos, y sería estupendo poder controlar el volumen además de la frecuencia. Así podríamos hacer un theremin mas musical. Veo por ahí que podría hacerlo con zumbadores estándar, conectándolos a dos pines digitales, uno de ellos con PWM para control de volumen, el otro para la frecuencia, pero sería posible con los de bq? (porque es lo que tengo en el aula, mas que nada)


  • Moderador

    Hola @{jmanrique},


    Acabo de cargar un código sencillo con esa librería y funciona perfectamente. El código es:

    #include <toneAC.h>

    void setup() {}

    void loop() {
      for (unsigned long freq = 150; freq <= 15000; freq += 10) {  
        toneAC(freq);
        delay(1); 
      }
      toneAC(0);
    }

    Un saludo,



  • claro, pero ahí no estás controlando volumen, solo frecuencia. toneAC admite más cosas:

    toneAC( frequency [, volume [, length [, background ]]] )

    donde solo el primer parámetro, frequency, es obligatorio, pero si quiero controlar volumen al mismo tiempo? porque entiendo que necesitaria dos pines de control.

    gracias y un saludo,


  • Moderador

    Hola @{jmanrique},


    Sí que se puede controlar perfectamente el volumen dando valores entre el 1 y el 10. Te invito a que lo pruebes y, en caso de querer volver al firmware inicial, podrás hacerlo mediante la App de Zowi.



  • pues la verdad es que a mí no me funciona ese código. Por lo que veo aquí la librería toneAC requiere la conexión del zumbador a dos pines, concretamente el 9 y el 10 para una ATmega328 como la ZUM. ¿Cómo hago eso con el zumbador de bq, que solo destina uno de los tres cables a un pin de control?


  • Moderador

    Hola @{jmanrique},


    Conectando el zumbador al pin 10 funciona correctamente, aunque sólo disponga de un pin de control, incluso se controla el volumen. Adjunto un nuevo código donde cambio el volumen. Cambio además las llaves por corchetes para que se vea correctamente el código:

    #include <toneAC.h>

    void setup() []

    void loop() [
      for (unsigned long freq = 150; freq <= 18000; freq += 10) {  
        toneAC(freq,5);
        delay(1); 
      ]
      for (unsigned long freq = 18000; freq >= 150; freq -= 10) [  
        toneAC(freq,5);
        delay(1); 
      ]
    ]

    Un saludo,



  • mil gracias, funciona perfectamente!!


    con dos sensores de ultrasonidos ya se podría hacer así un theremin de verdad. Imagino que dividirá el ancho de banda para alternar el control de las dos cosas por un solo pin, supongo. Ahora lo estoy probando con un sensor de luz y un potenciómetro, controlando frecuencia y volumen en tiempo real, y va perfectamente, con la salvedad (que creo que es de la librería) de que el control de volumen es de poca resolución (10 valores), aparte de que el zumbador no está pensado para hacer música, desde luego, pero resulta simpático, y muy atractivo para mis alumnos, músicos.

    muchas gracias de nuevo y un saludo,


  • Moderador

    Hola @{jmanrique},


    Me alegro de que al final pudieras utilizar la librería toneAC con el zumbador. Si te animas a hacer el theremín o cualquier otro proyecto no olvides publicarlo en nuestra comunidad para que veamos cómo te ha salido.

    Un saludo,