El zumbador es un componente que se basa en el efecto piezoeléctrico para emitir sonidos de un voltaje eléctrico en sus terminales. Aunque no es tan eficiente como un altavoz, el zumbador puede usarse para emitir alertas audibles simples en circuitos electrónicos.
El propósito de este artículo es comprender cómo funciona un timbre, cómo controlar un timbre con el Arduino y reproducir una canción con el componente usando el Arduino. Después de este tutorial, incluso puedes componer tu propia música con Arduino.
Indice
Cómo funciona el zumbador y el efecto piezoeléctrico
El zumbador funciona desde el efecto piezoeléctrico inverso. El principio de este efecto es la aparición de un voltaje eléctrico de un esfuerzo mecánico.
El efecto piezoeléctrico ocurre en algunos tipos de materiales cristalinos con una simetría no centralizada. Cuando sufren una tensión mecánica, hay un cambio en los iones del material, lo que influye en la diferencia en el potencial medido.
En el caso del zumbador, el efecto se invierte. A partir de una diferencia potencial, se genera un movimiento mecánico y se genera una onda de sonido. Para que el componente funcione, se aplica un voltaje a sus terminales a una frecuencia determinada. La celda piezoeléctrica dentro del timbre vibrará a la misma frecuencia, produciendo un sonido. A partir de esa frecuencia, es posible crear una multitud de sonidos diferentes, más bajos o más altos.
Cómo controlar el timbre con Arduino
Conectando el zumbador a un puerto digital, solo envía una señal a un nivel lógico alto para que el componente emita un pitido. Tiene dos terminales, uno más largo que es el positivo y el otro más corto que es el GND.
Entre el terminal positivo y la salida digital, se coloca una resistencia para proteger el componente. Para probar, envíe la función de parpadeo (la que parpadea el LED soldado en el Arduino) y conecte el timbre al pin 13. Sonará cada vez que se encienda el LED.
Tocando musica
Ahora, usando un altavoz piezoeléctrico, juguemos la marcha imperial de Star Wars en el Arduino. Para estos proyectos, los materiales necesarios son:
- 1 Arduino
- 1 zumbador de 5V
- 1 protoboard
- 1 resistencia de 220 ohmios
- Varios puentes
Primero, realice las conexiones de la siguiente manera:
- Resistencia de 220 ohmios conectada al pin 8 del Arduino
- Positivo del altavoz piezoeléctrico conectado a la resistencia
- Negativo del altavoz piezoeléctrico conectado a tierra en Arduino
Luego envíe el siguiente código al Arduino:
//Define as notas musicais: const int c = 261; const int d = 294; const int e = 329; const int f = 349; const int g = 391; const int gS = 415; const int a = 440; const int aS = 455; const int b = 466; const int cH = 523; const int cSH = 554; const int dH = 587; const int dSH = 622; const int eH = 659; const int fH = 698; const int fSH = 740; const int gH = 784; const int gSH = 830; const int aH = 880; // const int buzzerPin = 8; const int ledPin1 = 13; void setup() { //Setup pin modes pinMode(buzzerPin, OUTPUT); pinMode(ledPin1, OUTPUT); } void loop() { //Toca a primeira variação firstSection(); //Toca a segunda variação secondSection(); //Variação 1: beep(f, 250); beep(gS, 500); beep(f, 350); beep(a, 125); beep(cH, 500); beep(a, 375); beep(cH, 125); beep(eH, 650); delay(500); secondSection(); //Variação 2: beep(f, 250); beep(gS, 500); beep(f, 375); beep(cH, 125); beep(a, 500); beep(f, 375); beep(cH, 125); beep(a, 650); delay(650); } void beep(int note, int duration) { //Toca um som no buzzer: tone(buzzerPin, note, duration); digitalWrite(ledPin1, HIGH); delay(duration); digitalWrite(ledPin1, LOW); //Para o som no buzzer noTone(buzzerPin); delay(50); } void firstSection() { beep(a, 500); beep(a, 500); beep(a, 500); beep(f, 350); beep(cH, 150); beep(a, 500); beep(f, 350); beep(cH, 150); beep(a, 650); delay(500); beep(eH, 500); beep(eH, 500); beep(eH, 500); beep(fH, 350); beep(cH, 150); beep(gS, 500); beep(f, 350); beep(cH, 150); beep(a, 650); delay(500); } void secondSection() { beep(aH, 500); beep(a, 300); beep(a, 150); beep(aH, 500); beep(gSH, 325); beep(gH, 175); beep(fSH, 125); beep(fH, 125); beep(fSH, 250); delay(325); beep(aS, 250); beep(dSH, 500); beep(dH, 325); beep(cSH, 175); beep(cH, 125); beep(b, 125); beep(cH, 250); delay(350); }
El LED soldado en el Arduino también debería parpadear junto con la música.