SOUND
- 준비물
- 회로도
코드
1234567891011121314151617181920212223242526272829303132#include "pitches.h" // Buzzer를 사용하기 위한 라이브러리 선언#define SOUND PB4 // Buzzer 신호(S) 핀 설정int melody[] = { // 멜로디를 배열로 저장함NOTE_E4,NOTE_E4,NOTE_F4,NOTE_G4,NOTE_E4,NOTE_E4,NOTE_F4,NOTE_G4,NOTE_E4,NOTE_F4,NOTE_D4,NOTE_C4,NOTE_D4,NOTE_E4,NOTE_E4,NOTE_B4,NOTE_C5,NOTE_A4,NOTE_F4,NOTE_E4,NOTE_G4,NOTE_F4,NOTE_E4,NOTE_D4,NOTE_D4,NOTE_D4,NOTE_E4,NOTE_D4,NOTE_B3,NOTE_D4,NOTE_C4,NOTE_G4,NOTE_A4,NOTE_F4,NOTE_D4,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_C5,NOTE_B4,NOTE_C5,NOTE_A4,NOTE_F4,NOTE_G4,NOTE_A4,NOTE_C5,NOTE_G4,NOTE_C5,NOTE_E5,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_C5,NOTE_A4,NOTE_G4,NOTE_G4,NOTE_A4,NOTE_B4,NOTE_C5};int noteDurations[] = { // 해당 음의 박자 수8,8,8,2,8,8,8,8,8,8,8,8,8,8,2,8,3,4,3,2,8,8,8,8,8,8,4,8,8,4,3,8,2,4,8,2,4,8,2,4,8,2,4,8,4,8,2,8,2,8,8,8,4,8,2,4,8,4,8,1};void setup() {pinMode(SOUND, OUTPUT); // SOUND 출력핀으로 설정}void loop() {for (int thisNote = 0; thisNote < 60; thisNote++) {int noteDuration = 1800/noteDurations[thisNote]; // 박자 시간 변환tone(SOUND, melody[thisNote], noteDuration); // 음색(tone) 설정int pauseBetweenNotes = noteDuration * 1.30 ; // 음 길이를 계산delay(pauseBetweenNotes); // pauseBetweenNotes 동안 대기noTone(SOUND); // 음 출력 중지}}cs
위 해당 소스 헤더파일 다운로드
※ 본 코드에 쓰인 헤더파일의 출처
https://gist.github.com/mikeputnam/2820675
완성
예제 2. iKON의 '사랑을 했다' 사운드 드론
소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | #include pitches.h #define SOUND PB4 int melody[] = {0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_D5,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_B4,NOTE_G4, NOTE_G4,0,NOTE_B4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_D5,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_G4, NOTE_G4,0,NOTE_B4,NOTE_A4,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_D5,NOTE_B4,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_D5,NOTE_B4,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_G5,NOTE_E5,NOTE_E5,NOTE_E5,NOTE_G5, NOTE_E5,NOTE_D5,0,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_D5,NOTE_B4,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_B4, NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_A4,NOTE_B4,NOTE_A4,NOTE_B4,NOTE_B4,NOTE_A4, NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_G4,NOTE_A4,NOTE_B4,NOTE_B4,NOTE_A4, NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4, NOTE_B4,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_G4,NOTE_A4,0,NOTE_G4, NOTE_D5,NOTE_D5,NOTE_B4,0,NOTE_B4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_A4,NOTE_A4, NOTE_A4,NOTE_A4,NOTE_B4,0,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_D5,NOTE_D5,NOTE_B4,0,NOTE_B4,NOTE_A4,NOTE_A4,NOTE_A4,NOTE_G4,NOTE_A4,0,NOTE_A4,NOTE_A4,NOTE_A4, NOTE_A4,NOTE_B4,NOTE_B4,0,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_D5, NOTE_E5,NOTE_B5,NOTE_A5,NOTE_A5,NOTE_G5,NOTE_A5, NOTE_A5,NOTE_A5,0,NOTE_G5,NOTE_G5,NOTE_E5, NOTE_E5,NOTE_B5,NOTE_A5,NOTE_A5,NOTE_G5,NOTE_G5, NOTE_G5,NOTE_E5,NOTE_E5,0,NOTE_D5,NOTE_D5,NOTE_D5, NOTE_E5,NOTE_B5,NOTE_A5,NOTE_A5,NOTE_G5,NOTE_A5, NOTE_A5,NOTE_A5,0,NOTE_A5,NOTE_A5,NOTE_G5, NOTE_G5,0,NOTE_E5,NOTE_E5,NOTE_D5, 0,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_D5,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_B4,NOTE_G4, NOTE_G4,0,NOTE_B4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_D5,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_B4,NOTE_G4, NOTE_G4,0,NOTE_B4,NOTE_A4,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_D5,NOTE_B4,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_D5,NOTE_B4,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_G5,NOTE_E5,NOTE_E5,NOTE_E5,NOTE_G5, NOTE_E5,NOTE_D5,0,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_D5,NOTE_B4,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,0,NOTE_G5,0,NOTE_D5,NOTE_D5,NOTE_D5, NOTE_E5,NOTE_D5,NOTE_D5,0,NOTE_D5,NOTE_D5,NOTE_D5,NOTE_D5,NOTE_D5,NOTE_D5,NOTE_D5, NOTE_E5,NOTE_E5,NOTE_D5,NOTE_D5,NOTE_C5,0,NOTE_D5,NOTE_D5, NOTE_E5,NOTE_D5,NOTE_D5,0,NOTE_D5,NOTE_D5,NOTE_D5,NOTE_D5,NOTE_D5,NOTE_D5,0,NOTE_D5,NOTE_D5, NOTE_E5,NOTE_E5,NOTE_D5,NOTE_D5,NOTE_C5,0,NOTE_D5,NOTE_D5,NOTE_D5,NOTE_D5, NOTE_E5,NOTE_D5,0,NOTE_B4,NOTE_B4,NOTE_B4,NOTE_A4,0,NOTE_D5, NOTE_E5,NOTE_D5,0,NOTE_B4,NOTE_B4,NOTE_G4,0,NOTE_G4, NOTE_A4,NOTE_G4,NOTE_A4,0,NOTE_G4,NOTE_A4,NOTE_A4,NOTE_G4,NOTE_A4,0,NOTE_G4,NOTE_A4, NOTE_A4,NOTE_G4,NOTE_A4,0,NOTE_G4,NOTE_A4,NOTE_G4,0,NOTE_D5, NOTE_E5,NOTE_B5,NOTE_A5,NOTE_A5,NOTE_G5,NOTE_A5, NOTE_A5,NOTE_A5,0,NOTE_G5,NOTE_G5,NOTE_E5, NOTE_E5,NOTE_B5,NOTE_A5,NOTE_A5,NOTE_G5,NOTE_G5, NOTE_G5,NOTE_E5,NOTE_E5,0,NOTE_D5,NOTE_D5,NOTE_D5, NOTE_E5,NOTE_B5,NOTE_A5,NOTE_A5,NOTE_G5,NOTE_A5, NOTE_A5,NOTE_A5,0,NOTE_A5,NOTE_A5,NOTE_G5, NOTE_G5,0,NOTE_E5,NOTE_E5,NOTE_D5, 0,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_D5,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_B4,NOTE_G4, NOTE_G4,0,NOTE_B4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_D5,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_B4,NOTE_G4, NOTE_G4,NOTE_G4,0,NOTE_D5,NOTE_D5, NOTE_A5,NOTE_G5,NOTE_G5,0,NOTE_E5, NOTE_D5,NOTE_E5,NOTE_B4,NOTE_B4,0,NOTE_G4, NOTE_A4,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_B4, NOTE_B4,0,0,NOTE_D5,NOTE_D5,NOTE_D5, NOTE_A5,NOTE_G5,NOTE_G5,0,NOTE_E5, NOTE_D5,NOTE_E5,NOTE_B4,NOTE_B4,0,NOTE_G4, NOTE_A4,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_B4, NOTE_G4,0,NOTE_B4,NOTE_A4,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_D5,NOTE_B4,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_D5,NOTE_B4,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_G4,NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_G4,NOTE_G4, NOTE_E5,NOTE_G5,NOTE_E5,NOTE_E5,NOTE_E5,NOTE_F5, NOTE_E5,NOTE_D5,0,NOTE_G4,NOTE_G4,NOTE_G4,NOTE_E5,NOTE_D5,NOTE_B4,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0, NOTE_D5,NOTE_E5,NOTE_D5,NOTE_E5,NOTE_E5,NOTE_D5, NOTE_E5,NOTE_D5,0, NOTE_A4,NOTE_B4,NOTE_A4,NOTE_B4,NOTE_B4,NOTE_G4, NOTE_A4,NOTE_G4,0, NOTE_D5,NOTE_E5,NOTE_D5,NOTE_E5,NOTE_E5,NOTE_D5, NOTE_E5,NOTE_D5,0, NOTE_A4,NOTE_B4,NOTE_A4,NOTE_B4,NOTE_B4,NOTE_G4, NOTE_A4,NOTE_G4,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_G4,NOTE_D5,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_B4,NOTE_A4,NOTE_A4,0,NOTE_B4,NOTE_A4,NOTE_G4, NOTE_A4,NOTE_A4,0,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_G4, NOTE_G4,NOTE_E4,0 }; 멜로디를 배열로 저장함 int noteDurations[] = {4,4,4,4, 4,1.8,4,4,4,4, 4,4,2,4,4,4,4, 4,4,4,4,4,4,4,4, 2,4,4,4,4,4,4, 4,1.8,4,4,4,4, 4,4,2,4,4,4,4, 4,4,4,4,4,4,4,4, 2,4,4,4,4,4,4, 2,4,4,2,4,4, 4,4,2,4,4,4,4, 2,4,4,2,4,4, 4,4,2,4,4,4,4, 2,4,4,2,4,4, 4,1.8,4,4,4,4, 2,4,4,2,4,4, 4,4,2,2,1.8, 4,4,4,8,8,8,2.6,4,8,8, 8,8,4,8,2.6,2,4,8,8, 4,4,8,8,4,8,8,4,8,8,4, 8,8,4,8,2.6,2,4,4, 4,8,8,8,8,4,8,4,8,4,8,8, 4,8,8,8,8,4,4,2.6,8, 4,8,8,8,8,8,8,4,8,8,8,8,8,8, 4,8,8,8,8,4,2,4,4, 2,4,4,4,2,4, 2,2,4,4,4,4, 2,2.6,8,4,2,4, 4,4,2,4,4,4,4, 2,4,4,4,2,4, 2,2,4,4,4,4, 2,4,4,2,2, 1,4,4,4,4, 4,1.8,4,4,4,4, 4,4,2,4,4,4,4, 4,4,4,4,4,4,4,4, 2,4,4,4,4,4,4, 4,1.8,4,4,4,4, 4,4,2,4,4,4,4, 4,4,4,4,4,4,4,4, 2,4,4,4,4,4,4, 2,4,4,2,4,4, 4,4,2,4,4,4,4, 2,4,4,2,4,4, 4,4,2,4,4,4,4, 2,4,4,2,4,4, 4,1.8,4,4,4,4, 2,4,4,2,4,4, 4,4,4,4,4,4,4,4, 8,4,8,8,8,4,8,4,8,4,4, 4,8,8,8,2.6,2,4,4, 4,8,8,8,8,8,8,4,8,8,8,8,4, 4,8,8,8,2.6,4,8,8,4,4, 2.6,8,8,8,8,8,2,4,4, 2.6,8,4,8,8,2,4,4, 4,8,8,8,8,4,4,8,8,8,8,4, 4,8,8,8,8,4,2,4,4, 2,4,4,4,2,4, 2,2,4,4,4,4, 2,2.6,8,4,2,4, 4,4,2,4,4,4,4, 2,4,4,4,2,4, 2,2,4,4,4,4, 2,4,4,2,2, 1,4,4,4,4, 4,1.8,4,4,4,4, 4,4,2,4,4,4,4, 4,4,4,4,4,4,4,4, 2,4,4,4,4,4,4, 4,1.8,4,4,4,4, 4,4,2,4,4,4,4, 4,4,4,4,4,4,4,4, 2,2,2,4,4, 1.8,4,2,4,4, 2,4,4,2,4,4, 4,4,4,4,4,4,2, 2,2,4,4,4,4, 1.8,4,2,4,4, 2,4,4,2,4,4, 4,4,4,4,4,4,2, 2,4,4,4,4,4,4, 2,4,4,2,4,4, 4,4,2,4,4,4,4, 2,4,4,2,4,4, 4,4,2,4,4,4,4, 2,4,4,2,4,4, 4,1.8,4,4,4,4, 2,4,4,2,4,4, 4,4,2,1, 4,2,4,2,4,4, 4,1.8,1.25, 4,2,4,2,4,4, 4,1.8,1.25, 4,2,4,2,4,4, 4,1.8,1.25, 4,2,4,2,4,4, 4,1.8,4,4,4,4, 4,1.8,4,4,4,4, 4,4,2,4,4,4,4, 4,4,4,4,4,4,4,4, 1.8,4,1 }; 해당 음의 박자 수 void setup() { pinMode(SOUND, OUTPUT); } void loop() { for (int thisNote = 0; thisNote 1000; thisNote++) { int noteDuration = 1000noteDurations[thisNote]; 박자 시간 변환 tone(SOUND, melody[thisNote],noteDuration); int pauseBetweenNotes = noteDuration ; 음 길이를 계산 delay(pauseBetweenNotes); noTone(SOUND); 음 출력 중지 } } | cs |
소스코드 다운로드
동영상
'교육 자료 > Raduino mini' 카테고리의 다른 글
11. SBUS 비행제어 (0) | 2018.10.08 |
---|---|
8. Dot Matrix LED (0) | 2018.10.01 |
5. RGB (0) | 2018.10.01 |
7. RGB + SOUND (0) | 2018.10.01 |
4. 라두이노 미니 조종 (0) | 2018.09.21 |