아두이노 코딩-48: 엄마야~ 누나야~ 연주와 LED wave 영상

codingart(66)
Published in
#kr
Words
443
Reading
2 min
Listen
Play
8y

noname01.png

우리에게 너무나 친숙한 노래 엄마야∼누나야∼를 LED wave 와 함께 편곡하였다. 아두이노 연주에 있어서 특히 이음표 처리가 되지 않아 어색한 점이 있을 듯하다. LED wave 에 집중하여 음악 연주를 들어 보자.

연주를 위한 배선은 아래의 클레멘타인 연주 관련 블로그 포스팅을 참조하자.

아두이노 코딩-47: 클레멘타인 연주와 LED wave 영상
https://steemit.com/kr/@codingart/47-led-wave

LED 배선이 여의치 않은 분들은 LED 배선을 빼고 곡만 코딩해 보시기 바란다.

아래 자료는 직접 코딩을 수정하거나 개량하기 위한 악보 코딩을 위한 데이터이니 참고하시기 바란다.

계명과 Note 대조표

레 D4
도 C4
시 B3
라 A3
솔 G3
파 FS3
미 E3
레 D3
도 C3
시 B2
라 A2

엄마야 누나야 계명(Note) 자료

미 라 솔 라 솔 라 미 미 레 미 솔 레 미 13개
NOTE_E3, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_E3, NOTE_E3, NOTE_D3, NOTE_E3, NOTE_G3, NOTE_D3, NOTE_E3,
4 6 5 6 5 6 4 4 3 4 5 3 4
라 도 시 라 레 도 시 라 솔 미 솔 라 라 13개
NOTE_A3, NOTE_C4, NOTE_B3,NOTE_A3, NOTE_D4, NOTE_C4, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_E3, NOTE_G3, NOTE_A3, NOTE_A3,
6, 8, 7, 6, 9, 8, 7, 6, 5, 4, 5, 8, 8,
라 미 미 레 라 미 라 시 도 시 라 솔 라 미 14개
NOTE_A2, NOTE_E3, NOTE_E3, NOTE_D3, NOTE_A3, NOTE_E3, NOTE_A3,NOTE_B3, NOTE_C4,NOTE_B3, NOTE_A3,NOTE_G3,NOTE_A3, NOTE_E3,
6, 4, 4, 3, 6, 4, 6,7,8,7, 6, 5, 6, 4
라 레 도 시 라 솔 미 솔 시 솔 라 11개
NOTE_A3, NOTE_D4, NOTE_C4, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_E3, NOTE_G3, NOTE_B3,NOTE_G3, NOTE_A3

※갯수 체크는 LED 번호를 부여하기 위해 체크하였음

다음의 동연상 연주를 감상하시기 바란다.

//toneMelody_MotherSister_lyric_LED_wave_01

#include "pitches.h"
int speakerPin = 12;

// notes in the melody:
int melody[] = {NOTE_E3, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_E3, NOTE_E3, NOTE_D3, NOTE_E3, NOTE_G3, NOTE_D3, NOTE_E3,
NOTE_A3, NOTE_C4, NOTE_B3,NOTE_A3, NOTE_D4, NOTE_C4, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_E3, NOTE_G3, NOTE_A3, NOTE_A3,
NOTE_A2, NOTE_E3, NOTE_E3, NOTE_D3, NOTE_A3, NOTE_E3, NOTE_A3,NOTE_B3, NOTE_C4,NOTE_B3, NOTE_A3,NOTE_G3,NOTE_A3, NOTE_E3,
NOTE_A3, NOTE_D4, NOTE_C4, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_E3, NOTE_G3, NOTE_B3,NOTE_G3, NOTE_A3
};

int LED[] = {4 ,6 ,5 ,6 ,5 ,6 ,4 ,4 ,3 ,4 ,5 ,3, 4,
6, 8, 7, 6, 9, 8, 7, 6, 5, 4, 5, 8, 8,
6, 4, 4, 3, 6, 4, 6,7,8,7, 6, 5, 6, 4,
6, 9, 8, 7, 6, 5, 4, 5, 7, 5, 6
};
// note durations: 4 = quarter note, 8 = eighth note, etc.:
float noteDurations[] = {
4, 8, 8, 4, 8, 8, 4, 4, 2.67, 8, 8, 8, 1.33,
4, 8, 8, 4, 8, 8, 4, 4, 2.67, 8, 8, 8, 1.33,
4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 12, 12,1.33,
4, 4, 4, 4, 4, 4, 2.67, 8, 8, 8, 1.33
};

int pinLED[] ={2,3,4,5,6,7,8,9,10,11};
int i;

void setup() {
for( i = 0; i<10; i++ ) {
pinMode(pinLED[i],OUTPUT);//10개의 LED 단체로 출력 모드 선언
}

for (int thisNote = 0; thisNote < 51; thisNote++) {
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 2000 / noteDurations[thisNote];
digitalWrite(LED[thisNote]-1, HIGH);
digitalWrite(LED[thisNote], HIGH);
digitalWrite(LED[thisNote]+1, HIGH);
tone(speakerPin, melody[thisNote], noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(speakerPin);// stop the tone playing:
digitalWrite(LED[thisNote]-1, LOW);
digitalWrite(LED[thisNote], LOW);
digitalWrite(LED[thisNote]+1, LOW);
}
}

void loop() {
// no need to repeat the melody.
}//끝

아두이노 코딩-48: 엄마야~ 누나야~ 연주와 LED wave 영상 | Ecency