화사 마리아 멜로디를 피에조 부저를 이용하여 아두이노 우노, NodeMcu, ESP32에서 연주하는 예제 스케치 입니다.
아두이노 우노와 피에조 부저 연결방법
아두이노 우노 피에조 부저 예제 스케치
NodeMcu 피에조 부저 예제 스케치
// ---------------------------------------------------------------------- 마리아
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_nodeMcu_hwasa_maria_update.zip
esp32_melody_hwasa_maria_update.zip
반응형
'Arduino > Piezo Buzzer' 카테고리의 다른 글
피에조 부저 멜로디 - 바둑이 방울 (0) | 2020.10.24 |
---|---|
피에조 부저 멜로디 - 둥근해가 떴습니다 (0) | 2020.10.24 |
피에조 부저 멜로디 - 동요 동네 한 바퀴 (0) | 2020.10.24 |
피에조 부저 멜로디 - 동요 귀여운 꼬마 (0) | 2020.10.24 |
피에조 부저 멜로디 - 동요 겨울밤 (0) | 2020.10.24 |
아두이노 - 피에조 부저 멜로디 BTS Dynamite (0) | 2020.10.23 |
아두이노 - 피에조 부저 멜로디 BTS DNA (0) | 2020.10.23 |
아두이노/ESP32 - 피에조 부저, 악보를 보고 동요 멜로디 코딩하기(동요 겨울밤, 다람쥐, 옹달샘, 작은별) (0) | 2020.08.01 |