Proyecto 8 Intérprete Musical

1. Descripción

En este proyecto, utilizaremos un altavoz con amplificador de potencia para reproducir música. Este altavoz no solo puede tocar canciones simples, sino también interpretar lo que desees. Por lo tanto, puedes programar otros códigos interesantes en el proyecto para lograr resultados de aprendizaje espléndidos.

2. Principio de Funcionamiento

La señal eléctrica se introduce desde el pin 1 de RP1 (ajusta la intensidad de la señal, que también es el volumen del sonido).

Después de acoplarse en C4 y pasar por R5, la señal llega al pin IN- del 8002B, donde se amplifica operativamente y se envía al altavoz BEE1.

Tabla de Comparación de Frecuencias en C

Nota

Frecuencia(Hz)

Nota

Frecuencia(Hz)

Nota

Frecuencia(Hz)

Bemol 1 Do

262

Natural 1 Do

523

Sostenido 1 Do

1047

Bemol 2 Re

294

Natural 2 Re

587

Sostenido 2 Re

1175

Bemol 3 Mi

330

Natural 3 Mi

659

Sostenido 3 Mi

1319

Bemol 4 Fa

349

Natural 4 Fa

698

Sostenido 4 Fa

1397

Bemol 5 So

392

Natural 5 So

784

Sostenido 5 So

1568

Bemol 6 La

440

Natural 6 La

880

Sostenido 6 La

1760

Bemol 7 Si

494

Natural 7 Si

988

Sostenido 7 Si

1967

3. Diagrama de Conexiones

4. Código de Prueba

/*
  keyestudio ESP32 Inventor Learning Kit 
  Project 8.1 Music Performer 
  http://www.keyestudio.com
*/
int beeppin = 5; //Define the speaker pin to IO5

void setup() 
{
  pinMode(beeppin, OUTPUT);//Define the IO5 port to output mode 
}

void loop() 
{
  tone(beeppin, 262);//Flat DO plays 500ms
  delay(500);
  tone(beeppin, 294);//Flat Re plays 500ms
  delay(500);
  tone(beeppin, 330);//Flat Mi plays 500ms
  delay(500);
  tone(beeppin, 349);//Flat Fa plays 500ms
  delay(500);
  tone(beeppin, 392);//Flat So plays 500ms
  delay(500);
  tone(beeppin, 440);//Flat La plays 500ms 
  delay(500);
  tone(beeppin, 494);//Flat Si plays 500ms 
  delay(500);
  noTone(beeppin);//Stop for 1s 
  delay(1000);
}

5. Resultado de la Prueba

Después de subir el código y encender, el amplificador reproduce circularmente tonos musicales con la frecuencia correspondiente: DO, Re, Mi, Fa, So, La, Si.

Ajuste de volumen del amplificador de potencia:

Hay un potenciómetro junto al altavoz. Podemos ajustar el volumen del altavoz girándolo. (Nota: Por favor, use la fuerza adecuada para ajustarlo, para no dañar el potenciómetro)

6. Ampliación de Conocimientos

Vamos a tocar una canción de cumpleaños. Las conexiones permanecen sin cambios.

Notación musical numerada:

Diagrama comparativo de Bemol, Natural y Sostenido

/*
  keyestudio ESP32 Inventor Learning Kit  
  Project 8.2 Music Performer
  http://www.keyestudio.com
*/
int beeppin = 5; //Define the speaker pin to IO5
// do、re、mi、fa、so、la、si

int doremi[] = {262, 294, 330, 370, 392, 440, 494,      //Falt 0-6
                523, 587, 659, 698, 784, 880, 988,      //Natural 7-13
                1047,1175,1319,1397,1568,1760,1967};    //Sharp 14-20
int happybirthday[] = {5,5,6,5,8,7,5,5,6,5,9,8,5,5,12,10,8,7,6,11,11,10,8,9,8};   //Find the number in arrey doremi[] according to the numbered musical notation 
int meter[] = {1,1,2,2,2,4, 1,1,2,2,2,4, 1,1,2,2,2,2,2, 1,1,2,2,2,4};    // Beats

void setup() 
{
  pinMode(beeppin, OUTPUT); //Set IO5 pin to output mode 
}

void loop() 
{
  for( int i = 0 ; i <= 24 ;i++)
  {       //i<=24, because there are only 24 tones in this song
    //Use tone()function to generate a waveform in "frequency"
   tone(beeppin, doremi[happybirthday[i] - 1]);
   delay(meter[i] * 200); //Wait for 1000ms
   noTone(beeppin);//Stop singing
  }
}