본문 바로가기
아두이노

아두이노를 이용한 피에조 버저 멜로디 연주

by 모빌리티키즈 2025. 5. 13.
728x90
반응형

아두이노를 활용하여 간단한 멜로디를 연주할 수 있는 프로젝트를 소개합니다. 피에조 버저와 간단한 코드만으로 원하는 곡을 구현할 수 있으며, 초보자도 쉽게 따라 할 수 있습니다.

1. 준비물

아두이노를 이용하여 피에조 버저를 제어하려면 다음과 같은 부품이 필요합니다.

필요한 부품:

  • 아두이노 (Uno, Mega 등)
  • 피에조 버저
  • 점퍼 와이어
  • 브레드보드 (선택 사항)

2. 회로 구성

피에조 버저는 음을 출력할 수 있는 간단한 소자입니다. 아래 회로도를 참고하여 연결하세요.

회로 연결 방법

  1. 피에조 버저의 (+) 단자를 아두이노의 디지털 7번 핀에 연결합니다.
  2. 피에조 버저의 (-) 단자를 GND(접지)와 연결합니다.
  3. 아두이노를 컴퓨터와 USB 케이블로 연결합니다.

3. 코드 설명

아래 코드를 아두이노에 업로드하면 간단한 멜로디가 연주됩니다.

 
const int piezo = 7;
char code[7] = {'C', 'D', 'E', 'F', 'G', 'A', 'B'};
unsigned int freq[7] = {262, 294, 330, 349, 392, 440, 494};
char mData[] = "CCGGAAGpFFEEDDCpGGFFEEDpGGFFEEDpCCGGAAGpFFEEDDCp";
const byte mSize = sizeof(mData);

void setup() {
  pinMode(piezo, OUTPUT);
}

void loop() {
  for (int m = 0; m < mSize; m++) {
    int playT = 200;
    for (int k = 0; k < 7; k++) {
      if (mData[m] == code[k]) tone(piezo, freq[k], playT);
    }
    delay(playT);
  }
  noTone(piezo);
  delay(2000);
}

코드 설명

  • piezo 변수에 버저가 연결된 핀 번호(7번 핀)를 설정합니다.
  • code 배열에는 C, D, E, F, G, A, B 음계가 저장되어 있으며, freq 배열에는 해당하는 주파수가 설정됩니다.
  • mData 배열은 멜로디를 저장하는 부분으로, 특정 음이 순서대로 연주됩니다.
  • setup() 함수에서 버저를 출력으로 설정합니다.
  • loop() 함수에서 mData 문자열을 읽어 각 문자가 해당하는 음을 재생하며, tone() 함수를 이용하여 피에조 버저에서 소리를 냅니다.
  • noTone(piezo)를 사용하여 음이 끝난 후 버저를 끕니다.

4. 결론

이 프로젝트를 활용하면 간단한 피에조 버저를 이용하여 다양한 멜로디를 만들 수 있습니다. 코드를 수정하여 곡의 속도를 조절하거나 다른 음계를 추가하여 멜로디를 더욱 풍성하게 만들 수도 있습니다.

더 나아가 버튼을 추가하여 사용자가 직접 연주할 수 있는 방식으로 개선하는 것도 재미있는 도전이 될 것입니다.

이제 직접 테스트해 보며 자신만의 멜로디를 만들어 보세요! 🎵

728x90
반응형