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 (클릭)
구성 배선도
사용된 예제소스
/*
제목 : 피에조 부저 (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 부저의 (+) 방향을 잘 확인해야 합니다
부저모듈의 커버 윗면에 (+)로 표시되어 있습니다
'능동 부저' 와 '수동 부저' 모두 배선은 동일 하지만 '수동 부저'의 경우 소리가 '능동 부저' 보다 작고 약합니다
프로젝트 동영상
'Arduino(아두이노) 키트 강좌' 카테고리의 다른 글
Step.6-Arduino Uno 조도센서를 사용해 LED 밝기 조절하기 (0) | 2015.05.22 |
---|---|
Step.5-Arduino Uno 로 7세그먼트 출력하기 (0) | 2015.05.22 |
Step.3-Arduino Uno 로 스위치를 사용해 LED 깜박이기 (0) | 2015.05.22 |
Step.2-Arduino Uno 로 LED 깜박이기 (0) | 2015.05.21 |
Step.1-Arduino IDE 설치하기 (아두이노 개발환경 IDE 설치하기) (0) | 2015.05.21 |
댓글