Project 8 Muziekuitvoerder

1. Beschrijving

In dit project gebruiken we een versterkerluidspreker om muziek af te spelen. Deze luidspreker kan niet alleen eenvoudige liedjes afspelen, maar ook uitvoeren wat je wenst. Zo kun je andere interessante codes in het project programmeren om schitterende leerresultaten te bereiken.

2. Werking

Het elektrische signaal wordt ingevoerd vanaf pin 1 van RP1 (regelt de signaalsterkte, wat ook het geluidsvolume is).

Na koppeling in C4 en het passeren van R5 bereikt het signaal de IN- pin van 8002B, waar het operationeel wordt versterkt en naar de BEE1 luidspreker wordt uitgegeven.

Frequentietabel in C

Toon

Frequentie(Hz)

Toon

Frequentie(Hz)

Toon

Frequentie(Hz)

Vlak 1 Do

262

Natuurlijk 1 Do

523

Kruidig 1 Do

1047

Vlak 2 Re

294

Natuurlijk 2 Re

587

Kruidig 2 Re

1175

Vlak 3 Mi

330

Natuurlijk 3 Mi

659

Kruidig 3 Mi

1319

Vlak 4 Fa

349

Natuurlijk 4 Fa

698

Kruidig 4 Fa

1397

Vlak 5 So

392

Natuurlijk 5 So

784

Kruidig 5 So

1568

Vlak 6 La

440

Natuurlijk 6 La

880

Kruidig 6 La

1760

Vlak 7 Si

494

Natuurlijk 7 Si

988

Kruidig 7 Si

1967

3. Aansluitschema

4. Testcode

/*
  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. Testresultaat

Na het uploaden van de code en het inschakelen speelt de versterker cirkelvormig muziektonen met de bijbehorende frequenties: DO, Re, Mi, Fa, So, La, Si.

Geluidregeling van de versterker:

Er zit een potentiometer naast de luidspreker. We kunnen het geluid van de luidspreker regelen door eraan te draaien. (Opmerking: Gebruik gepaste kracht om te voorkomen dat de potentiometer beschadigd raakt)

6. Kennisuitbreiding

Laten we een verjaardagsliedje spelen. De bedrading blijft ongewijzigd.

Genummerde muzieknotatie:

Vergelijkingsdiagram van Vlak, Natuurlijk en Kruidig

/*
  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
  }
}