아두이노로 반짝반짝 작은별 멜로디 연주하는 방법. 전자 회로 구성은 아주 간단합니다. 아래 그림처럼 부저의 양(+)단자를 디지털 핀9번 음(-)단자를 접지(GND)에 각각 연결하면 됩니다. 이제부터 아두이노에 작은별 멜로디 스케치를 업로드하기만 하면 된답니다. 부저(Buzzer)가 동작하는 함수가 tone() 함수랍니다. tone() 함수에서 주파수 값을 바꾸기만 하면 다양한 음계의 소리음을 아두이노가 만들어 낼수 있답니다.~~~ 가장 간단하게 도~레~미~파~솔~라~시~도~를 자작 연주해볼 수도 있답니다. 각 음계의 주파수 값을 쉽게 아두이노 스케치 코드에 적용할 수 있어요! 위의 그림에 표시된 값들을 사용하세요~~ 동영상의 작은별 멜로디 연주에 사용된 아두이노 업로드 스케치 프로그래밍 코드입니다. 복사하시려면 스크랩하면 된답니다. int BuzzerPin = 9; char noteNames[] = {'C','D','E','F','G','a','b','c'}; int frequency[] = {1047,1175,1319,1397,1568,1760,1976,2093}; byte noteCount = sizeof(noteNames); char score[] = "CCGGaaGFFEEDDC GGFFEEDGGFFEED CCGGaaGFFEEDDC"; byte scoreLen = sizeof(score); void setup(){ } void loop(){ for (int i=0 ; i<scoreLen ; i++) { int duration = 333; playNote(score[i], duration); } delay(5000); } void playNote(char note, int duration){ for (int i=0 ; i<noteCount ; i++) { if (noteNames[i] == note) tone(BuzzerPin, frequency[i], duration); } delay(duration); } 참고로 위 아두이노 스케치 코드에서 char score[] = "CCGGaaGFFEEDDC GGFFEEDGGFFEED CCGGaaGFFEEDDC" ; 의 공란(빈칸)의 숫자는 아두이노로 연주되는 음악의 쉼표 길이를 나타냅니다. 관련글 : 아델 hello LED 막대그래프 불빛으로 표시하기 https://youtu.be/IzXwBBxzRwA 다리 2개 - (+) 핀과 (-) 핀. ▶ [실습 1. 부저 기본 소리 제어]- 회로 구성 - 소스 코드 : 직접 타이핑
-> note : 소리의 주파수 ex) 1000 -> 1000 HZ 소리 -> note_time : 소리 출력 시간(밀리 세컨드) ex) 500 -> 0.5초 1000 hz 소리를 직접 들어 보자. [★도전과제 1 ★] - 주파수별 옥타브 음계 - 빠르게를 나타내는 음악 기호 [★ 도전과제 2 ★] - 배열의 구조 메모리 구조 - 소스 코드 : 아래 코드를 복붙 한뒤, int note_time[] 을 생성하여 음의 길이를 조절하는 코드를 작성하시오.
▶ [실습 2. 부저 악보 연주]- 학교종 악보 - 학교종 연주 소스코드 - 복붙 후 코드 실행
[★ 도전과제 3 ★] - 예시) 생일축하 노래 ▶ [실습 3. 전자 피아노 만들기]- 아두이노 회로 - 소스코드 - 코드 복붙후 /* 직접 코드를 작성해 주세요 */ 부분 직접 코딩 후 동작.
|