¿Te has preguntado alguna vez cómo crear varios proyectos bonitos con un simple zumbador? Este tutorial le mostrará cómo interconectar un zumbador con Arduino.
Aprenderás a conectar un zumbador a Arduino, junto con el principio básico de funcionamiento del zumbador.
Voy a dar una guía paso a paso para conectar y manejar el zumbador.
Puedes reproducir canciones en él como en un altavoz normal, utilizar el zumbador para avisar o dar una respuesta audible en los juegos, y mucho más.
En la primera parte del artículo, te llevaré a través del principio de funcionamiento básico y los tipos más comunes de zumbador sed en los proyectos de Arduino.
Encontrarás una guía paso a paso para conectar un zumbador a un Arduino, un programa de ejemplo para probar el circuito.
Más adelante en el artículo, encontrarás varios proyectos con diagramas de conexiones y código Arduino.
Comencemos.
Componentes necesarios para utilizar el plotter de serie Arduino
Componentes de hardware
- Arduino Uno Rev3 x 1
- Zumbador x 1
- Alambre Dupont x 2
- Cable USB de Arduino (para alimentación y programación) x 1
- Tablero de pruebas x 1
- Pulsador x 8 ( para el proyecto Arduino mini-piano)
Software
Consejo rápido: Compra los zumbadores que son compatibles con Arduino UNO. El zumbador anterior puede trabajar de 3V a 24 V; por lo tanto, esta es una buena opción.
-> Conozca más sobre Lo fácil que es aprender Arduino aquí.
¿Qué es un timbre?
Como su nombre indica, el zumbador crea un tono audible cuando se le aplica energía eléctrica.
Los zumbadores más comunes que se encuentran son los zumbadores piezoeléctricos, que son fáciles de usar.
El elemento principal de un zumbador es un piezo (palabra griega que significa apretar), que oscila y crea un tono cuando se le aplica corriente continua.
Los zumbadores piezoeléctricos son muy fiables y están disponibles en varios formatos. Puedes ver aplicaciones de zumbadores piezoeléctricos en juguetes, hornos microondas, lavadoras, otros electrodomésticos, etc.
El zumbador piezoeléctrico tiene dos pines. El cable positivo (rojo) y el negativo (negro).
Conectarás el cable negativo al pin GND y el positivo a un pin PWM del Arduino.
En la siguiente sección, le mostraré los parámetros más críticos de un zumbador piezoeléctrico.
Los parámetros le ayudan a elegir el zumbador correcto para su próximo proyecto de zumbador piezoeléctrico Arduino.
Tensión nominal: es la tensión a la que se miden todas las demás especificaciones (sonido, consumo de corriente, etc.) mencionadas en la ficha técnica.
Rango de tensión de funcionamiento - Rango de tensión de funcionamiento seguro, que puede utilizar para trabajar con el zumbador. Por ejemplo, si trabajas con el Arduino UNO, la tensión aplicada al zumbador será de 5 V. Sigue siendo aceptable si 5V está en el rango de tensión de funcionamiento.
Rango de temperatura de funcionamiento: Rango de temperatura más allá del cual el rendimiento del zumbador no será fiable o fallará permanentemente.
Frecuencia: La mayoría de los zumbadores piezoeléctricos tienen rangos de 2 a 4 kHz. La gama de frecuencias estará en el rango audible (20 Hz a 20 kHz).
Un tipo común de zumbador que se ve por ahí en una foto.
El principio básico de funcionamiento se ilustra en la siguiente imagen.
Cuando envíes una onda cuadrada, apretarás el elemento a una frecuencia determinada.
La frecuencia a la que conduce la onda cuadrada será la frecuencia a la que vibra el Piezo.
Encontrarás toda la información necesaria para conectar y accionar el zumbador a la frecuencia (tono) deseada en los ejemplos del proyecto Arduino del zumbador en las siguientes secciones.
Instrucciones paso a paso para conectar un zumbador piezoeléctrico a Arduino
Las siguientes secciones le mostrarán cómo conectar el zumbador piezoeléctrico con un Arduino y construir varios proyectos interesantes de zumbadores.
Proyecto 1: Un simple tono de melodía en Arduino usando un zumbador
En este proyecto, conectarás un zumbador a un Arduino y construirás un proyecto que reproducirá las melodías.
Este proyecto dará los bloques básicos requeridos para construir el proyecto del zumbador en Arduino UNO.
1) Empieza con el Arduino y un zumbador
Los mismos pasos se aplican a Arduino UNO, Arduino Mega y otras placas Arduino. Estoy usando el PIN 8 del Arduino para este proyecto de ejemplo.
Siempre puedes utilizar otros pines en función de la disponibilidad de pines en tu próximo proyecto.
Asegúrese de actualizar el nuevo PIN en el nuevo código.
No necesitas ninguna resistencia limitadora de corriente para un zumbador. Puedes conectarlo directamente al Arduino UNO.
2) Conecta el cable negro del Buzzer al pin GND del Arduino
Conecta el cable negro del zumbador al pin GND del Arduino. Hay tres pines GND en el Arduino UNO. Puedes elegir cualquiera de los tres pines GND.
3) Conecta el cable rojo del zumbador al PIN8 de Arduino
Conecta el cable rojo del zumbador al PIN 8 de Arduino. Esto completa todas las conexiones esenciales.
En la siguiente sección, programarás el Arduino con el código de ejemplo dado.
4) Programa Arduino para crear una simple melodía usando un zumbador piezoeléctrico
Puedes utilizar el código siguiente para probar el circuito y también para completar el primer proyecto.
/* Melody Plays a melody circuit: - 8 ohm speaker on digital pin 8 created 21 Jan 2010 modified 30 Aug 2011 by Tom Igoe This example code is in the public domain. http://www.arduino.cc/en/Tutorial/Tone */ #include "pitches.h" // notes in the melody: int melody[] = { NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4 }; // note durations: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 }; void setup() { // iterate over the notes of the melody: for (int thisNote = 0; thisNote < 8; thisNote++) { // to calculate the note duration, take one second divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000 / noteDurations[thisNote]; tone(8, melody[thisNote], noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(8); } } void loop() { // no need to repeat the melody. }
El archivo pitches. h consiste en la lista de notas definidas como constantes. Puede crear un nuevo archivo con el nombre pitches.h y pegar en él el contenido siguiente.
/************************************************** Este archivo define las constantes con la frecuencia de diferentes notas musicales. *************************************************/ #define NOTA_B0 31 #define NOTA_C1 33 #define NOTA_CS1 35 #define NOTA_D1 37 #define NOTA_DS1 39 #define NOTA_E1 41 #define NOTA_F1 44 #define NOTA_FS1 46 #define NOTA_G1 49 #Definición de NOTA_GS1 52 #Definición de NOTA_A1 55 #Definición de NOTE_AS1 58 #Definición de NOTA_B1 62 #define NOTA_C2 65 #define NOTA_CS2 69 #Definición de NOTA_D2 73 #Definición de NOTA_DS2 78 #Definición de NOTA_E2 82 #Definición de NOTA_F2 87 #Definición de NOTA_FS2 93 #Definición de NOTA_G2 98 #Definición de NOTA_GS2 104 #Definición de NOTA_A2 110 #Definición NOTA_AS2 117 #Definición de NOTA_B2 123 #Definición de NOTA_C3 131 #Definición de NOTA_CS3 139 #Definición de NOTA_D3 147 #Definición de NOTA_DS3 156 #Definición de NOTA_E3 165 #Definición de NOTA_F3 175 #Definición de NOTE_FS3 185 #Definición de NOTA_G3 196 #Definición de NOTA_GS3 208 #Definición de NOTA_A3 220 #Definición de NOTE_AS3 233 #Definición de NOTA_B3 247 #Definición NOTA_C4 262 #Definición de NOTA_CS4 277 #Definición NOTA_D4 294 #Definición de NOTE_DS4 311 #Definición NOTA_E4 330 #Definición de NOTE_F4 349 #Definición de NOTE_FS4 370 #Definición NOTA_G4 392 #Definición de NOTE_GS4 415 #Definición de NOTE_A4 440 #Definición de NOTE_AS4 466 #Definición de NOTE_B4 494 #Definición de NOTA_C5 523 #Definición de NOTE_CS5 554 #Definición de NOTA_D5 587 #define NOTA_DS5 622 #define NOTA_E5 659 #define NOTA_F5 698 #Definición de NOTE_FS5 740 #Definición de NOTE_G5 784 #define NOTA_GS5 831 #define NOTA_A5 880 #define NOTA_AS5 932 #define NOTA_B5 988 #define NOTA_C6 1047 #define NOTA_CS6 1109 #define NOTA_D6 1175 #define NOTA_DS6 1245 #define NOTA_E6 1319 #define NOTA_F6 1397 #define NOTA_FS6 1480 #define NOTA_G6 1568 #define NOTA_GS6 1661 #define NOTA_A6 1760 #Definición de NOTE_AS6 1865 #define NOTA_B6 1976 #define NOTA_C7 2093 #Definición NOTA_CS7 2217 #Definición NOTA_D7 2349 #define NOTA_DS7 2489 #define NOTA_E7 2637 #define NOTA_F7 2794 #define NOTA_FS7 2960 #define NOTA_G7 3136 #define NOTA_GS7 3322 #define NOTA_A7 3520 #define NOTA_AS7 3729 #define NOTA_B7 3951 #define NOTA_C8 4186 #define NOTA_CS8 4435 #define NOTA_D8 4699 #define NOTA_DS8 4978
La tabla le ayuda a consultar rápidamente las notas de cualquiera de los proyectos. La tabla asigna cada tono a una frecuencia concreta.
En la siguiente sección, se definirán dos matrices. Melody[ ] y noteDuration[ ]
La melodía[ ] consiste en una lista de notas, y la matriz noteDuration[ ] contiene la duración durante la cual el Arduino debe tocar la nota correspondiente.
// notes in the melody: int melody[] = { NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4 }; // note durations: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 };
La duración real de la nota se obtendrá utilizando los valores de la matriz noteDuration[ ].
Para convertir los valores de la matriz noteDuration [ ] en la duración exacta de la nota, hay que dividir 1000 por el valor de la matriz noteDuration[ ] .
Por ejemplo, la negra (en nuestra matriz, representada por el dígito 8 en la matriz noteDuration[ ] ) es 1000/8 en segundos. Una media nota es 1000/4 y así sucesivamente.
La función tone() es el corazón del código. La función tone( ) crea una onda cuadrada en el pin de Arduino UNO (PIN 8 en este ejemplo) utilizando un temporizador de hardware interno incorporado.
-> Lea nuestra guía sobre lo que puede construir con Adruino.
¿Qué argumentos hay que enviar a la función tone()?
La función tone() puede aceptar 2 o 3 argumentos.
1. tono(pin, frecuencia)
- PIN - El número PIN del Arduino en el que se debe generar una onda cuadrada
- Frecuencia - La frecuencia de la onda cuadrada
2. tono(pin, frecuencia, duración)
- PIN - El número PIN del Arduino en el que se debe generar una onda cuadrada
- Frecuencia - La frecuencia de la onda cuadrada
- Duración - La duración de la generación del tono
Puedes encontrar fácilmente el proyecto de ejemplo de tone() en el IDE de Arduino.
¡Enhorabuena! Así se completa el primer ejemplo de un zumbador piezoeléctrico y un proyecto Arduino.
Si tiene problemas, vuelva a comprobar las conexiones y el código.
Si tienes alguna duda, no dudes en dejar un comentario, estaré encantado de responder a todas tus dudas y apoyarte.
Proyecto 2: Cómo hacer un proyecto de piano usando un zumbador y Arduino
En este proyecto encontrarás una de las formas más sencillas de construir tu propio instrumento musical. Reutilizarás los componentes comentados en el Proyecto 1 para construir un mini Piano.
Para completar este proyecto, necesitarás ocho pulsadores, un zumbador y un Arduino UNO.
A continuación puedes ver el esquema de conexión para completar el proyecto con un interruptor en configuración activo-alto.
1) Realiza las conexiones de tierra entre los interruptores y el Arduino
Empieza con las conexiones a tierra. Los pines GND de todos los pulsadores están unidos al pin GND de Arduino. Mantén todos los cables tan cortos como sea posible.
2) Conecta el zumbador a Arduino
Puedes conectar el zumbador a cualquier pin libre del Arduino. Para mantener los ejemplos uniformes, conectaré el cable rojo del zumbador al PIN 8 de Arduino y el cable negro al pin GND de Arduino.
3) Conecta los pulsadores a los pines digitales de Arduino
Tienes que configurar 8 pines de Arduino como entradas. Utilizarás estos pines de entrada para detectar la pulsación en los pulsadores y reproducir las melodías correspondientes.
Aquí está la tabla para una visión general de los pines de Arduino utilizados y las conexiones realizadas.
Pines de Arduino | Propósito |
PIN 8 | Salida digital - Zumbador |
PIN 12-9, 7-4 | Entrada digital - Pulsadores |
No dejes los pines de entrada del Arduino flotando. Cuando no estés pulsando el botón, el pin de entrada correspondiente flotará.
Las entradas flotantes pueden causar un comportamiento errático.
Puedes utilizar opciones de pull-up interno para todos los pines de entrada para mantenerlos en un estado estable.
La imagen muestra las cuatro primeras conexiones entre Arduino y los pulsadores.
Ahora puede realizar todas las conexiones necesarias para completar el proyecto.
Si has seguido todos los pasos, tus conexiones están ahora completas. En los próximos pasos programarás el Arduino UNO con el código del minipiano.
4) Programar el Arduino UNO con el código del minipiano
El código del mini-Piano presente a continuación es todo lo que necesitas. Tienes que seguir tres sencillos pasos para programar el Arduino:
- Abrir un boceto vacío
- Copie y pegue el siguiente código en el editor
- Programar el Arduino UNO
/** Mini piano for Arduino. You can control the colorful buttons with your keyboard: After starting the simulation, click anywhere in the diagram to focus it. Then press any key between 1 and 8 to play the piano (1 is the lowest note, 8 is the highest). Copyright (C) 2021, Uri Shaked. Released under the MIT License. */ #include "pitches.h" #define SPEAKER_PIN 8 const uint8_t buttonPins[] = { 12, 11, 10, 9, 7, 6, 5, 4 }; const int buttonTones[] = { NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5 }; const int numTones = sizeof(buttonPins) / sizeof(buttonPins[0]); void setup() { for (uint8_t i = 0; i < numTones; i++) { pinMode(buttonPins[i], INPUT_PULLUP); } pinMode(SPEAKER_PIN, OUTPUT); } void loop() { int pitch = 0; for (uint8_t i = 0; i < numTones; i++) { if (digitalRead(buttonPins[i]) == LOW) { pitch = buttonTones[i]; } } if (pitch) { tone(SPEAKER_PIN, pitch); } else { noTone(SPEAKER_PIN); } }
Cuando tengas que definir propiedades para múltiples pines de Arduino, puedes hacerlo más fácilmente usando bucles for.
Para configurar los ocho pines como entradas y activar los pull-ups internos, sólo necesitas estas tres líneas de código.
for (uint8_t i = 0; i < numTones; i++) { pinMode(buttonPins[i], INPUT_PULLUP); }
También puede echar un vistazo a la simulaciónaquí.
Proyecto 3: ¿Cómo reproducir tonos en varios pines de Arduino de forma secuencial?
Como has aprendido, la función tone() utiliza el temporizador interno de Arduino para crear una onda cuadrada que impulsa el zumbador.
Puedes conectar varios zumbadores al Arduino y reproducirlos secuencialmente.
1) Conecta tres zumbadores a Arduino UNO
También puedes utilizar cualquier otro pin. Yo estoy usando los pines 6, 7 y 8.
2) Programa para accionar tres zumbadores con Arduino
/* Multiple tone player Plays multiple tones on multiple pins in sequence circuit: - three 8 ohm speakers on digital pins 6, 7, and 8 created 8 Mar 2010 by Tom Igoe based on a snippet from Greg Borenstein This example code is in the public domain. http://www.arduino.cc/en/Tutorial/Tone4 */ void setup() { } void loop() { // turn off tone function for pin 8: noTone(8); // play a note on pin 6 for 200 ms: tone(6, 440, 200); delay(200); // turn off tone function for pin 6: noTone(6); // play a note on pin 7 for 500 ms: tone(7, 494, 500); delay(500); // turn off tone function for pin 7: noTone(7); // play a note on pin 8 for 300 ms: tone(8, 523, 300); delay(300); }
El código anterior reproduce un tono secuencialmente en los tres zumbadores conectados.
Tenga en cuenta que el retardo dado coincide con la duración del tono en la línea anterior.
3) Arduino Simulación de tres zumbadores ejemplo
Puedes utilizar este enlace para echar un vistazo a la simulación creada en el Simulador Arduino Wokwi.
Preguntas sobre proyectos Arduino-Buzzer
Esta sección responderá a las preguntas más frecuentes sobre los zumbadores y Arduino.
Siéntase libre de publicar las preguntas en los comentarios si no están cubiertas.
¿Qué es un Arduino Buzzer?
Un zumbador es un dispositivo de dos pines que genera un tono basado en el código de Arduino. Puede utilizar la función tone() para generar un tono en cualquier pin digital de Arduino.
¿Cómo se enciende el zumbador en Arduino?
Utilice la función tone() para generar el tono. Hay dos opciones para usted.
- 2 Argumentos - tone(Arduino-pin, Frequency) - Esta función generará el tono en el PIN particular de Arduino mencionado en los argumentos. El tono continuará reproduciéndose hasta que usted lo detenga.
- 3 Argumentos - tone(Arduino-pin, Frequency, note-duration) - Esto generará el tono para una duración particular
¿Cómo se apaga el timbre en Arduino?
Para detener el timbre, puede utilizar la función noTone(). La función detendrá el tono en marcha si hay alguna función de tono activa.
Si no es así, no tendrá ningún efecto el uso de la función noTone().
¿Cómo se conecta el zumbador a Arduino Mega?
Puedes reutilizar los ejemplos de proyecto para tus proyectos de Arduino Mega y buzzer. El diagrama de conexión será similar para Arduino UNO, Arduino Mega y Arduino Nano también.
¿Para qué sirve la función noTone()?
La función noTone() detiene el tono en curso. Si no se está reproduciendo ningún tono, esta función no tiene efecto.
->Consulta nuestra guía de los 12 mejores cursos online de Arduino
Conclusión
En este artículo he mostrado cómo conectar un zumbador a un Arduino. He demostrado las conexiones esenciales y el código de Arduino que necesitarás.
Espero que estés de acuerdo en que los zumbadores son componentes beneficiosos en un proyecto.
Ahora puede añadir con confianza la función de timbre a otros proyectos. He utilizado los pulsadores para controlar la velocidad del ventilador y los patrones de luz en proyectos recientes.
Me encantaría escuchar tus comentarios. ¿Te ha resultado útil este artículo sobre el proyecto Arduino-buzzer? ¿Tienes algún comentario para que este artículo sea más útil?
Por favor, comparta su opinión en la sección de comentarios. Estaré encantado de responder a todos sus comentarios.
No dudes en compartir los proyectos y pedir opiniones.
Estoy seguro de que los zumbadores serán ahora una parte integral de sus futuros proyectos de Arduino. Estaré encantado de saber más al respecto.
Ahora te toca a ti sugerir un tema sobre el que te gustaría aprender a continuación.
No olvides compartir el artículo con tus amigos.
I am Puneeth. I love tinkering with open-source projects, Arduino, ESP32, Pi and more. I have worked with many different Arduino boards and currently I am exploring, Arduino powered LoRa, Power line communication and IoT.
Beau
Tuesday 3rd of January 2023
Good tutorial. Showed me how to deal with stepping through dual arrays with a for loop, had me create my first .h file and use it, and play with the piezo with a melody instead of random tones. If I have one thing to add, its that I find these notes to be more pleasing for the melody over the ones you've provided, but just a personal choice!
int melody[] = { NOTE_G4, NOTE_D4, NOTE_D4, NOTE_E4, NOTE_D4, 0, NOTE_FS4, NOTE_G4 };