Conectando un timbre con Arduino (+ ¡Música!)

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.

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.

Te puede interesar  ARDUINO ESPLORA

zumbador

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:

zumbador

  • 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.

Te puede interesar  ARDUINO: Una guía de inicio. Empezando con Arduino

¿Quieres aprender más sobre electrónica?