아두이노 UNO로 만드는 미니 피아노 - 단계별 튜토리얼
부품 및 소모품
| 아두이노 UNO | 1개 |
| 브레드보드 (일반) | 1개 |
| SparkFun 푸시버튼 스위치 12mm | 7개 |
| 점퍼 와이어 (일반) | 1세트 |
| 부저 | 1개 |
필요한 도구 및 기계
프로젝트 소개
1단계: 부품 및 재료
필요한 부품:
- 아두이노
- 피에조 부저
- 푸시 버튼 - 7개
- 점퍼 케이블
2단계: 연결
버튼은 아두이노의 D4~D10 핀에 연결합니다.
피에조 부저는 아두이노의 D11 핀에 연결합니다.
3단계: 코드
피아노 연주를 시작하기 전에 Tone 아두이노 라이브러리가 설치되어 있지 않다면 설치해야 합니다. GitHub에서 다운로드할 수 있습니다. 아두이노 IDE에서 서드파티 라이브러리 설치 방법을 모른다면 Arduino.cc의 가이드를 참조하세요. 아래 첨부된 압축 파일에 아두이노 피아노용 코드가 들어 있습니다. 다운로드하여 압축을 풀고 Arduino_Piano.ino를 아두이노 IDE에서 열어 아두이노에 업로드하세요.
Arduino_Piano.rar 다운로드
4단계: 연주!
이제 키를 누르면 해당 음이 부저를 통해 재생됩니다. 음이 정확하지 않으면 아두이노 스케치의 음값을 조정하여 피치를 맞출 수 있습니다. 포함된 몇 가지 음계 중 하나를 주석 해제하거나 직접 음계를 만들어 연주할 수도 있습니다. 직접 피아노를 만들었다면 댓글에 사진과 영상을 공유해 주세요. 창의적인 악기들을 보고 싶습니다!
도움이 되었다면 엄지 척 부탁드리고, 흥미로운 프로젝트를 위해 채널 구독도 해주세요 :)
읽어주셔서 감사합니다!
프로젝트 작동 원리
(작동 원리에 대한 자세한 설명은 생략되었습니다.)
코드
코드
//Arduino Piano
/* Visit the Channel for more interesting projects https://www.youtube.com/channel/UCks-9JSnVb22dlqtMgPjrlg */
#define T_C 262
#define T_D 294
#define T_E 330
#define T_F 349
#define T_G 392
#define T_A 440
#define T_B 493
const int C = 10;
const int D = 9;
const int E = 8;
const int F = 7;
const int G = 6;
const int A = 5;
const int B = 4;
const int Buzz = 11;
const int LED = 13;
void setup() {
pinMode(LED, OUTPUT);
pinMode(C, INPUT); digitalWrite(C, HIGH);
pinMode(D, INPUT); digitalWrite(D, HIGH);
pinMode(E, INPUT); digitalWrite(E, HIGH);
pinMode(F, INPUT); digitalWrite(F, HIGH);
pinMode(G, INPUT); digitalWrite(G, HIGH);
pinMode(A, INPUT); digitalWrite(A, HIGH);
pinMode(B, INPUT); digitalWrite(B, HIGH);
digitalWrite(LED, LOW);
}
void loop() {
while(digitalRead(C) == LOW) { tone(Buzz, T_C); digitalWrite(LED, HIGH); }
while(digitalRead(D) == LOW) { tone(Buzz, T_D); digitalWrite(LED, HIGH); }
while(digitalRead(E) == LOW) { tone(Buzz, T_E); digitalWrite(LED, HIGH); }
while(digitalRead(F) == LOW) { tone(Buzz, T_F); digitalWrite(LED, HIGH); }
while(digitalRead(G) == LOW) { tone(Buzz, T_G); digitalWrite(LED, HIGH); }
while(digitalRead(A) == LOW) { tone(Buzz, T_A); digitalWrite(LED, HIGH); }
while(digitalRead(B) == LOW) { tone(Buzz, T_B); digitalWrite(LED, HIGH); }
noTone(Buzz);
digitalWrite(LED, LOW);
}
프로젝트 저장소
https://github.com/Rahul24-06/Mini-Piano
회로도
영상에서 설명했습니다. 영상을 참조하세요.
