본문 바로가기
Arduino(아두이노) 키트 강좌

Step.4-Arduino Uno 로 부저를 사용해 멜로디 연주하기

by 오마이엔지니어 2015. 5. 22.
반응형

Arduino Uno 로 스위치를 누르면 부저에서 멜로디가 나오게 하는 프로젝트 입니다
피에조 부저(piezo buzzer)는 피에조 효과를 이용하여 소리를 내는 작은 스피커 입니다
큰 소리를 내지는 못하지만 주파수 2만Hz이상의 초음파를 발생시킬수 있어 다양한 제품에 활용 됩니다

RJ테크의 Arduino Starter Kit 에는 두개(Active & Passive)의 부저가 포함되어 있습니다
(모양은 아래와 같습니다)

능동부저(Active Buzzer)는 전원을 연결하면 스스로 소리를 내는 타입 입니다

(3~5V 전원을 부저 핀에 연결하면 소리가 '삐' 하고 소리가 납니다)


수동부저(Passive Buzzer)는 주파수를 만들어 전류를 흘려 주어야만 그 주파수 대로 음을 내는 타입 입니다
(3~5V 전원을 부저 핀에 연결해도 소리가 나지 않습니다)

 

사용된 부품

Arduino Uno R3 (Italy)

브래드 보드

Buzzer (Active & Passive)

Tact Switch

점퍼케이블

 

사용된 키트

Arduino Starter kit (클릭)
지니어스 키트 Starter Pack (클릭)



구성 배선도

 

 

사용된 예제소스 

button Buzzer.txt

 

/*
 제목  : 피에조 부저 (Piezo Buzzer) 소리내기
 내용  : 스위치를 누를 때마다, '도레미파솔라시' 음계를 소리내도록 만들어 봅니다.
 */

// 피에조 부저를 3번 핀으로 설정합니다.
int piezo = 3;
// 스위치를 5번 핀으로 설정합니다.
int sw = 5;
// 톤 배열 수
int numTones = 8;
// 음계 표준 주파수(4옥타브) : 도, 레, 미, 파, 솔, 라, 시, 도
int tones[] = {
  261, 294, 330, 349, 392, 440, 494, 523};

// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
// 변수를 선언하거나 초기화를 위한 코드를 포함합니다.
void setup() {
  // 피에조 부저가 연결된 핀을 OUTPUT으로 설정합니다.
  pinMode(piezo, OUTPUT);
  // 스위치가 연결된 핀의 모드를 INPUT_PULLUP 상태(초기 로직레벨을 HIGH로 설정)로 설정합니다.
  // 설정된 디지털 핀은 아래와 같은 값을 반환합니다.
  // 스위치가 열려있다면 (누르지 않은 상태) HIGH
  // 스위치를 닫혀있다면 (누른 상태), LOW
  pinMode(sw, INPUT_PULLUP);
}

// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행됩니다.
void loop() {
  // 스위치가 연결된 핀의 로직레벨이 LOW라면,
  // 스위치가 닫혀있는 상태(누른 상태) 이므로, 아래의 블록을 실행합니다.
  if (digitalRead(sw) == LOW) {

    for (int i = 0; i < numTones; i++) {
      // 피에조 부저가 연결된 핀으로 지정된 주파수를 가지는 square-wave(구형파 또는 사각파)플 생성하도록 설정합니다.
      // 도가 261Hz의 주파수를 가진다면, 1초에 261번의 square-wave을 발생신킨다는 의미입니다.
      // 디지털은 0 과 1 (HIGH와 LOW)로 표현이되므로, 1초 동안에 0과 1의 변화를 261번 주는 것과 같습니다.
      tone(piezo, tones[i]);
      // 0.5초 동안 대기합니다.
      delay(500);
    }
    // 피에조 부저가 연결된 핀으로부터 square-ware를 생성을 중단하도록 설정합니다.
    noTone(piezo);
  }
}

주의사항
Buzzer 부저의 (+) 방향을 잘 확인해야 합니다
부저모듈의 커버 윗면에 (+)로 표시되어 있습니다
'능동 부저' 와 '수동 부저' 모두 배선은 동일 하지만 '수동 부저'의 경우 소리가 '능동 부저' 보다 작고 약합니다

 

프로젝트 동영상


button Buzzer.txt
0.0MB
반응형

댓글