초급⏱ 예상 시간: 40분📝 4단계

3버튼 멜로디 피아노

버튼 3개와 부저로 간단한 피아노를 만들어봅니다. 디지털 입력과 tone() 함수를 배울 수 있습니다.

🧩 필요한 모듈

Arduino Uno
브레드보드
택트 스위치 (버튼)
피에조 부저
점퍼 와이어
저항 (220Ω / 10kΩ)

📖 단계별 설명서

📝

1단계준비물 확인

다음 부품들을 준비해주세요:

  • Arduino Uno 1개
  • 브레드보드 1개
  • 점퍼 와이어 8개
  • 택트 스위치 3개
  • 피에조 부저 1개
  • 10kΩ 저항 3개
📝

2단계회로 연결하기

  1. 버튼 1을 D2 핀에 연결하고, 10kΩ 풀다운 저항을 GND에 연결합니다.
  2. 버튼 2를 D3 핀에, 버튼 3을 D4 핀에 같은 방식으로 연결합니다.
  3. 각 버튼의 반대쪽은 5V에 연결합니다.
  4. 피에조 부저의 (+)를 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)

여러 음을 조합하면 간단한 멜로디를 연주할 수 있습니다.

💡 팁: 버튼을 더 추가하고 음계를 확장해보세요!

🎉

축하합니다!

"3버튼 멜로디 피아노" 프로젝트를 완성했습니다!