화사 마리아 멜로디를 피에조 부저를 이용하여 아두이노 우노, NodeMcu, ESP32에서 연주하는 예제 스케치 입니다.

 

아두이노 우노와 피에조 부저 연결방법

 

아두이노 우노 피에조 부저 예제 스케치

piezo_Uno_bts_dna.zip
0.00MB

NodeMcu 피에조 부저 예제 스케치

piezo_nodeMcu_hwasa_maria.zip
0.00MB

// ---------------------------------------------------------------------- 마리아
uint8_t Tempo = 120;
float tempoRatio = float(Tempo)/60.0;
uint8_t KeySign = 1;
uint8_t octaveTemp = 4;
//float beatTime = 4/4;

const note_t Mnote[] PROGMEM= {
NOTE_A,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_D,NOTE_E,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_A,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_D,NOTE_C,NOTE_C,NOTE_E,NOTE_C,NOTE_D,NOTE_MAX,
NOTE_A,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_D,NOTE_E,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_A,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_D,NOTE_C,NOTE_C,NOTE_E,NOTE_C,NOTE_D,NOTE_MAX,
NOTE_A,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_D,NOTE_E,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_A,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_D,NOTE_C,NOTE_C,NOTE_E,NOTE_C,NOTE_D,NOTE_MAX,NOTE_A,NOTE_G,NOTE_A,NOTE_G,NOTE_A,NOTE_G,
NOTE_A,NOTE_D,NOTE_MAX,NOTE_A,NOTE_A,NOTE_MAX,NOTE_MAX,NOTE_A,NOTE_G,NOTE_A,NOTE_G,NOTE_A,NOTE_G,NOTE_A,NOTE_D,NOTE_MAX,NOTE_A,NOTE_A,NOTE_MAX,NOTE_MAX,NOTE_A,NOTE_A,NOTE_F,
NOTE_E,NOTE_A,NOTE_MAX,NOTE_G,NOTE_G,NOTE_C,NOTE_A,NOTE_G,NOTE_G,NOTE_A,NOTE_MAX,NOTE_F,NOTE_G,NOTE_F,NOTE_G,NOTE_F,NOTE_G,NOTE_A,NOTE_C,NOTE_C,NOTE_C,NOTE_D,NOTE_MAX,
NOTE_F,NOTE_F,NOTE_F,NOTE_G,NOTE_A,NOTE_G,NOTE_G,NOTE_G,NOTE_F,NOTE_G,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_MAX,NOTE_F,NOTE_F,NOTE_G,NOTE_A,NOTE_G,NOTE_G,NOTE_F,NOTE_G,NOTE_F,NOTE_G,NOTE_F,NOTE_MAX,NOTE_G,NOTE_F,NOTE_F,
NOTE_F,NOTE_G,NOTE_A,NOTE_A,NOTE_G,NOTE_C,NOTE_C,NOTE_A,NOTE_MAX,NOTE_A,NOTE_A,NOTE_G,NOTE_MAX,NOTE_G,NOTE_F,NOTE_G,NOTE_F,NOTE_G,NOTE_F,NOTE_A,NOTE_A,NOTE_MAX,
NOTE_MAX,NOTE_A,NOTE_A,NOTE_F,NOTE_E,NOTE_D,NOTE_A,NOTE_MAX,NOTE_A,NOTE_A,NOTE_G,NOTE_A,NOTE_C,NOTE_A,NOTE_MAX,NOTE_G,NOTE_G,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_MAX,NOTE_D,NOTE_D,NOTE_C,
NOTE_D,NOTE_A,NOTE_G,NOTE_MAX,NOTE_F,NOTE_E,NOTE_D,NOTE_A,NOTE_MAX,NOTE_A,NOTE_A,NOTE_G,NOTE_A,NOTE_C,NOTE_A,NOTE_MAX,NOTE_G,NOTE_G,NOTE_A,NOTE_G,NOTE_D,NOTE_D,NOTE_D,NOTE_F,NOTE_G,NOTE_A,
NOTE_G,NOTE_D,NOTE_D,NOTE_D,NOTE_F,NOTE_G,NOTE_A,NOTE_MAX,NOTE_D,NOTE_F,NOTE_G,NOTE_A,NOTE_MAX,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_MAX,NOTE_D,NOTE_F,NOTE_G,NOTE_A,
NOTE_MAX,NOTE_G,NOTE_G,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_MAX,NOTE_D,NOTE_F,NOTE_G,NOTE_A,NOTE_MAX,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_C,NOTE_MAX,NOTE_D,NOTE_F,NOTE_G,NOTE_A,
NOTE_MAX,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_D,NOTE_D,NOTE_D,NOTE_MAX,NOTE_A,NOTE_A,NOTE_MAX,NOTE_A,NOTE_A,NOTE_MAX,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_F,NOTE_MAX,NOTE_D,NOTE_A,NOTE_A,NOTE_MAX,NOTE_D,NOTE_A,NOTE_A,
NOTE_MAX,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_F,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_F,NOTE_F,NOTE_MAX,NOTE_D,NOTE_D,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_A,NOTE_F,NOTE_F,NOTE_MAX,NOTE_D,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_F,NOTE_G,NOTE_F,NOTE_G,NOTE_MAX,NOTE_F,NOTE_G,
NOTE_MAX,NOTE_D,NOTE_D,NOTE_D,NOTE_D,NOTE_F,NOTE_F,NOTE_F,NOTE_G,NOTE_A,NOTE_G,NOTE_G,NOTE_G,NOTE_F,NOTE_G,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_MAX,NOTE_F,NOTE_F,NOTE_G,NOTE_A,NOTE_G,NOTE_G,NOTE_F,
NOTE_G,NOTE_F,NOTE_G,NOTE_F,NOTE_MAX,NOTE_G,NOTE_F,NOTE_F,NOTE_F,NOTE_F,NOTE_G,NOTE_A,NOTE_G,NOTE_G,NOTE_D,NOTE_C,NOTE_A,NOTE_C,NOTE_A,NOTE_C,NOTE_D,NOTE_F,NOTE_D,NOTE_D,NOTE_MAX,NOTE_A,NOTE_A,NOTE_G,NOTE_A,
NOTE_MAX,NOTE_A,NOTE_A,NOTE_F,NOTE_E,NOTE_D,NOTE_A,NOTE_MAX,NOTE_A,NOTE_A,NOTE_G,NOTE_A,NOTE_C,NOTE_A,NOTE_MAX,NOTE_G,NOTE_G,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_MAX,NOTE_D,NOTE_D,NOTE_C,
NOTE_D,NOTE_A,NOTE_G,NOTE_MAX,NOTE_F,NOTE_E,NOTE_D,NOTE_A,NOTE_MAX,NOTE_A,NOTE_A,NOTE_G,NOTE_A,NOTE_C,NOTE_A,NOTE_MAX,NOTE_G,NOTE_G,NOTE_A,NOTE_G,NOTE_D,NOTE_D,NOTE_D,NOTE_F,NOTE_G,NOTE_A,
NOTE_G,NOTE_D,NOTE_D,NOTE_D,NOTE_F,NOTE_G,NOTE_A,NOTE_MAX,NOTE_D,NOTE_F,NOTE_G,NOTE_A,NOTE_MAX,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_MAX,NOTE_D,NOTE_F,NOTE_G,NOTE_A,
NOTE_MAX,NOTE_G,NOTE_G,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_MAX,NOTE_D,NOTE_F,NOTE_G,NOTE_A,NOTE_MAX,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_C,NOTE_MAX,NOTE_D,NOTE_F,NOTE_G,NOTE_A,
NOTE_MAX,NOTE_G,NOTE_G,NOTE_G,NOTE_G,NOTE_D,NOTE_D,NOTE_D,NOTE_A,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_D,NOTE_E,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_A,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_D,
NOTE_C,NOTE_C,NOTE_E,NOTE_C,NOTE_D,NOTE_MAX,NOTE_A,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_D,NOTE_E,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_MAX,NOTE_A,NOTE_G,NOTE_F,NOTE_E,NOTE_D,NOTE_D,
NOTE_C,NOTE_C,NOTE_E,NOTE_C,NOTE_D,NOTE_MAX,NOTE_MAX,NOTE_MAX,NOTE_A,NOTE_A,NOTE_F,NOTE_E,NOTE_D,NOTE_A,NOTE_MAX,NOTE_A,NOTE_A,NOTE_G,
NOTE_A,NOTE_C,NOTE_A,NOTE_MAX,NOTE_G,NOTE_G,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_MAX,NOTE_D,NOTE_D,NOTE_C,NOTE_D,NOTE_A,NOTE_G,NOTE_MAX,NOTE_F,NOTE_E,NOTE_D,NOTE_A,NOTE_MAX,NOTE_A,NOTE_A,NOTE_G,
NOTE_A,NOTE_C,NOTE_A,NOTE_MAX,NOTE_G,NOTE_G,NOTE_A,NOTE_G,NOTE_D,NOTE_D,NOTE_D,NOTE_F,NOTE_A,NOTE_G,NOTE_A,NOTE_G,NOTE_A,NOTE_G,NOTE_A,NOTE_C,NOTE_D,NOTE_MAX,NOTE_D,NOTE_F,NOTE_G,NOTE_A,
NOTE_MAX,NOTE_C,NOTE_D,NOTE_C,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_D,NOTE_F,NOTE_G,NOTE_A,NOTE_MAX,NOTE_C,NOTE_D,NOTE_C,NOTE_D,NOTE_C,NOTE_F,NOTE_MAX,NOTE_D,NOTE_F,NOTE_G,NOTE_A,
NOTE_MAX,NOTE_G,NOTE_G,NOTE_A,NOTE_G,NOTE_F,NOTE_D,NOTE_C,NOTE_D,NOTE_D,NOTE_F,NOTE_G,NOTE_A,NOTE_MAX,NOTE_A,NOTE_G,NOTE_A,NOTE_G,NOTE_D,NOTE_D,NOTE_D,NOTE_MAX,
};

const uint8_t Moct[] PROGMEM= {
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,
5,4,0,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,5,5,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,5,5,5,4,0,4,4,4,4,5,4,0,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,5,5,5,4,0,4,4,4,4,5,4,0,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,0,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,0,4,4,4,4,4,4,4,4,4,5,5,4,5,4,5,5,5,5,5,5,4,4,4,4,
0,4,4,5,5,5,4,0,4,4,4,4,5,4,0,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,5,5,5,4,0,4,4,4,4,5,4,0,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,5,5,5,4,0,4,4,4,
4,5,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,4,0,4,4,4,
4,5,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,
4,5,5,5,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
0,
};

const uint8_t localKey[] PROGMEM= {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
3,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
3,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,
};

const uint8_t Mdur[] PROGMEM= {
16,
2,2,2,2,6,2,2,2,2,2,8,2,2,2,2,6,2,2,1,1,2,2,8,
2,2,2,2,6,2,2,2,2,2,8,2,2,2,2,6,2,2,1,1,2,2,8,
2,2,2,2,6,2,2,2,2,2,8,2,2,2,2,6,2,2,1,1,2,2,2,1,1,1,1,1,1,
4,4,2,2,4,8,2,1,1,1,1,1,1,4,4,2,2,4,8,2,2,2,2,
4,4,2,2,2,2,4,4,2,2,2,2,2,2,2,2,2,4,2,4,2,2,8,
2,2,2,2,2,2,4,2,2,2,2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,1,
2,4,2,2,4,2,3,1,2,2,3,1,4,1,3,1,3,1,3,3,1,16,
4,4,4,4,2,2,4,2,2,2,2,2,2,4,2,2,2,2,2,2,4,2,2,2,2,
2,2,4,4,4,2,2,4,2,2,2,2,2,2,4,2,2,2,2,1,3,1,3,4,2,2,
1,3,1,3,4,2,2,4,4,4,2,2,4,4,2,2,4,4,4,4,2,2,
2,2,2,2,2,2,4,4,4,4,2,2,4,4,2,2,2,2,4,4,4,2,2,
4,1,3,1,3,1,1,2,4,2,2,4,2,2,4,2,2,2,2,1,3,3,1,2,2,3,1,2,2,
4,2,2,2,2,1,3,1,1,2,1,1,1,1,2,1,1,2,1,1,1,1,1,1,2,2,2,1,1,2,2,1,1,1,1,2,2,2,1,1,1,2,1,
8,1,3,3,1,2,2,2,2,2,2,4,2,2,2,2,2,2,4,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,2,2,2,1,1,
4,4,4,4,2,2,4,2,2,2,2,2,2,4,2,2,2,2,2,2,4,2,2,2,2,
2,2,4,4,4,2,2,4,2,2,2,2,2,2,4,2,2,2,2,1,3,1,3,4,2,2,
1,3,1,3,4,2,2,4,4,4,2,2,4,4,2,2,4,4,4,4,2,2,
2,2,2,2,2,2,4,4,4,4,2,2,4,4,2,2,2,2,4,4,4,2,2,
4,1,3,1,3,1,1,2,2,2,2,2,6,2,2,2,2,2,8,2,2,2,2,6,2,
2,1,1,2,2,8,3,1,2,2,6,2,3,1,2,2,4,4,3,1,2,2,6,2,
2,1,1,2,2,8,16,4,4,4,4,2,2,4,2,2,2,2,
2,2,4,2,2,2,2,2,2,4,2,2,2,2,2,2,4,4,4,2,2,4,2,2,2,2,
2,2,4,2,2,2,2,1,3,1,3,4,2,2,1,3,1,3,4,2,2,4,4,4,2,2,
4,2,2,2,2,3,1,4,4,4,2,2,2,2,2,2,2,2,4,4,4,4,2,2,
2,2,2,2,2,2,2,2,4,4,4,2,2,4,1,3,1,3,1,1,2,16,
};
// ----------------------------------------------------------------------

2023년 2월 7일 업데이트 코드

piezo_Uno_hwasa_maria_update.zip

piezo_Uno_hwasa_maria_update.zip
0.00MB

 

piezo_nodeMcu_hwasa_maria_update.zip

piezo_nodeMcu_hwasa_maria_update.zip
0.00MB

esp32_melody_hwasa_maria_update.zip

esp32_melody_hwasa_maria_update.zip
0.00MB

 

 

youtu.be/_uWWKr3AAEo

 

 

반응형

+ Recent posts