초급⏱ 예상 시간: 40분📝 4단계
3버튼 멜로디 피아노
버튼 3개와 부저로 간단한 피아노를 만들어봅니다. 디지털 입력과 tone() 함수를 배울 수 있습니다.
🧩 필요한 모듈
Arduino Uno
브레드보드
택트 스위치 (버튼)
피에조 부저
점퍼 와이어
저항 (220Ω / 10kΩ)
📖 단계별 설명서
1단계준비물 확인
다음 부품들을 준비해주세요:
- Arduino Uno 1개
- 브레드보드 1개
- 점퍼 와이어 8개
- 택트 스위치 3개
- 피에조 부저 1개
- 10kΩ 저항 3개
2단계회로 연결하기
- 버튼 1을 D2 핀에 연결하고, 10kΩ 풀다운 저항을 GND에 연결합니다.
- 버튼 2를 D3 핀에, 버튼 3을 D4 핀에 같은 방식으로 연결합니다.
- 각 버튼의 반대쪽은 5V에 연결합니다.
- 피에조 부저의 (+)를 D8 핀에, (-)를 GND에 연결합니다.
📐 회로도
회로도 이미지
/images/projects/melody-piano-circuit.png
3단계코드 작성하기
아래 코드를 Arduino IDE에 입력합니다. 각 버튼을 누르면 도, 미, 솔 음이 재생됩니다.
code.ino
// 3버튼 멜로디 피아노 - ModuKit
// 버튼을 누르면 각각 다른 음이 재생됩니다.
const int BUTTON1 = 2; // 도
const int BUTTON2 = 3; // 미
const int BUTTON3 = 4; // 솔
const int BUZZER = 8;
// 음계 주파수
const int NOTE_DO = 262; // C4
const int NOTE_MI = 330; // E4
const int NOTE_SOL = 392; // G4
void setup() {
pinMode(BUTTON1, INPUT);
pinMode(BUTTON2, INPUT);
pinMode(BUTTON3, INPUT);
Serial.begin(9600);
Serial.println("멜로디 피아노 준비 완료!");
}
void loop() {
if (digitalRead(BUTTON1) == HIGH) {
tone(BUZZER, NOTE_DO);
Serial.println("♪ 도");
} else if (digitalRead(BUTTON2) == HIGH) {
tone(BUZZER, NOTE_MI);
Serial.println("♪ 미");
} else if (digitalRead(BUTTON3) == HIGH) {
tone(BUZZER, NOTE_SOL);
Serial.println("♪ 솔");
} else {
noTone(BUZZER);
}
delay(50);
}+19 줄 더 보기
💡 팁: 주파수 값을 바꾸면 다른 음을 재생할 수 있어요! C5는 523Hz입니다.
4단계업로드 및 테스트
코드를 업로드한 후 각 버튼을 눌러보세요!
- 버튼 1: 도 (C4)
- 버튼 2: 미 (E4)
- 버튼 3: 솔 (G4)
여러 음을 조합하면 간단한 멜로디를 연주할 수 있습니다.
💡 팁: 버튼을 더 추가하고 음계를 확장해보세요!