|
|
# 부저 (Buzzer)
|
|
|
|
|
|
일반적으로 사용하는 피에조 부저는 피에조 현상을 사용한 부저입니다.
|
|
|
여기에는 능동 부저와 수동 부저, 두 가지 종류가 있습니다.
|
|
|
피에조 부저에는 2개의 전극단자가 있는데 각 단자는 극성을 가지고 있습니다.
|
|
|
|
|
|
![http://kocoafab.cc/data/150121032508.png](http://kocoafab.cc/data/150121032508.png)
|
|
|
|
|
|
능동 부저는 회로의 연결 설정에서 전류만 흐른다면 소리를 출력하고, 전류가 흐르지 않게 된다면 소리가 출력되지 않는 부저 입니다.
|
|
|
능동 부저의 2개 다리 길이는 서로 다릅니다.
|
|
|
능동 부저는 단일음을 출력하기 때문에, 경보음과 같이 단순한 음이 필요할 때 적합합니다.
|
|
|
|
|
|
수동 부저는 회로에 전류가 흐르더라도 소리를 자동적으로 출력하지 않습니다.
|
|
|
수동 부저의 2개 다리의 길이는 서로 같습니다.
|
|
|
수동 부저는 음계를 사용하여 멜로디를 출력하기 때문에, 다양한 음을 이용하는 상황에 적합합니다.
|
|
|
|
|
|
>피에조 현상?
|
|
|
>
|
|
|
> 피에조 효과는 1880년 프랑스 물리학자인 자크 큐리(Paul-Jacgues Curie)와 그의 동생 피에르 큐리(Pierre Curie)가 함께 발견한 효과 입니다.
|
|
|
>석영, 규소, 생체의 뼈, 단백질 등의 물질에 압력을 주면 그 에너지가 전기 에너지로 변환되며 전기를 발생시킵니다.
|
|
|
>물체에 압력을 주면 전기가 발생하는 물리적 현상이기 때문에 압전 효과라고도 합니다.
|
|
|
>![http://kormax.cafe24.com/wp-content/uploads/2015/07/Piezoelectric-Effect1.png](http://kormax.cafe24.com/wp-content/uploads/2015/07/Piezoelectric-Effect1.png)
|
|
|
>![http://mblogthumb3.phinf.naver.net/MjAxNzEyMTdfMjUw/MDAxNTEzNDgxNTEwNTI3.z7Zl1VM5_Ad43RsS2xxmZrHOcYILn41-8sCZFAq8DKUg.h2cCbP7Y3xOKE1JXGY7ttG4brk3LD9AfUAQGyTyucz8g.PNG.iotsensor/image.png?type=w800](http://mblogthumb3.phinf.naver.net/MjAxNzEyMTdfMjUw/MDAxNTEzNDgxNTEwNTI3.z7Zl1VM5_Ad43RsS2xxmZrHOcYILn41-8sCZFAq8DKUg.h2cCbP7Y3xOKE1JXGY7ttG4brk3LD9AfUAQGyTyucz8g.PNG.iotsensor/image.png?type=w800)
|
|
|
|
|
|
수동 부저로 멜로디를 연주하기 위해선 tone() 함수를 사용합니다.
|
|
|
|
|
|
```c++
|
|
|
tone(Pin_Number, Frequency, Duration);
|
|
|
// Pin_Number : 부저의 핀 번호
|
|
|
// Frequency : 음의 주파수
|
|
|
// Duration : 음의 지속시간
|
|
|
```
|
|
|
옥타브 및 음계별 표준 주파수는 다음과 같습니다.
|
|
|
|
|
|
![http://eduict.org/edu/_system/include/image.view.php?id=common&uid=29690](http://eduict.org/edu/_system/include/image.view.php?id=common&uid=29690)
|
|
|
|
|
|
코드는 [코딩어레이](https://codingarray.cc/forum/view/8083)의 예제를 그대로 이용하었습다.
|
|
|
|
|
|
```C++
|
|
|
|
|
|
#include "pitches.h"
|
|
|
|
|
|
int buzzer=6; //피에조 부저를 6번에 연결
|
|
|
//연주할 음계
|
|
|
int melody[] ={NOTE_G7,NOTE_G7,NOTE_A7,NOTE_A7,NOTE_G7,
|
|
|
NOTE_G7,NOTE_E7,NOTE_G7,NOTE_G7,NOTE_E7,
|
|
|
NOTE_E7,NOTE_D7,0,NOTE_G7,NOTE_G7,NOTE_A7,
|
|
|
NOTE_A7,NOTE_G7,NOTE_G7,NOTE_E7,NOTE_G7,
|
|
|
NOTE_E7,NOTE_D7,NOTE_E7,NOTE_C7,0
|
|
|
};
|
|
|
//음의길이, 4 = 4분음표, 2 = 2분음표
|
|
|
int noteDurations[] ={4,4,4,4,4,4,2,4,4,4,4,3,1,4,4,4,4,4,4,2,4,4,4,4,3,1};
|
|
|
|
|
|
void setup() {
|
|
|
for(int thisNote =0; thisNote <26; thisNote++)
|
|
|
{
|
|
|
int noteDuration =1000 /noteDurations[thisNote];
|
|
|
tone(buzzer, melody[thisNote], noteDuration); //6번핀에 피에조 부저 연결
|
|
|
int pauseBetweenNotes =noteDuration *1.30; //음표 구분 시간
|
|
|
delay(pauseBetweenNotes); //delay
|
|
|
noTone(buzzer); //음악 재생을 멈춤
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void loop() {
|
|
|
}
|
|
|
``` |
|
|
\ No newline at end of file |