19. 피에조부저 part1
유튜브 : http://youtube.com/watch?v=5SEfTPpJIYs&feature=youtu.be
안녕하세요 반갑습니다.
이번 시간에는 피에조부저를 알아볼텐데요
구조와 원리가 매우 간단하여 가벼운
마음으로 공부하시면 되겠습니다.

피에조부저는 피에조효과를 이용한 제품인데요
피에조효과란 전류가 흐르면 표면에 진동이 발생하는 것입니다.
표면에 적당한 막을 씌워서 진동을 소리로 변환하는 장치입니다.
네이버쇼핑 기준 검색 결과입니다.
피에조부저를 구매하실 때 종류가 2개 인데요
능동부저
수동부저
얼핏 능동부저가 좋은것 같은
가치판단을 하게 되지만
능동부저는 자기가 알아서 소리를 낸다
= 전원을 공급하면 하나의 소리를 내는 부품 이며
수동부저는 외부에서 입력된 값에 따라
소리를 내는 부품입니다.
쉽게 다시 이야기하자면
능동부저는 경고음만 내는 것이고
수동부저가 "도레미파솔라시도"를
발생하는 부품입니다.
구매하실 때 용도에 따라서 구매하시고
저희는 수동부저를 사용하겠습니다.
다리 길이로도 구별하긴 하지만
가장 확실한 방법은 전압을 걸었을 때
소리가 나면 능동부저
소리가 나지 않으면 수동부저입니다.
회로도 한번 보고 연결하겠습니다.
긴다리 : 디지털 7번핀
짧은 다리 : GND
연결하시면 됩니다.
바로 코딩보겠습니다.
void setup() {
pinMode(7,OUTPUT);
}
void loop() {
tone(7,261,1000);
delay(300);
}
동작 결과입니다.
코드를 하나하나 볼까요?
setup()에서 7번핀을 output으로 해주시고
소리를 내는 가장 중요한 함수는 tone()함수입니다.
tone( 1, 2, 3);
tone함수의 첫번째 인자는 피에조부저에 연결된 핀 번호입니다.
저희의 경우에는 7번 핀이겠죠?
두번째 인자는 내고자 하는 음계의 진동수입니다.
예를 들어 낮은 도를 내고 싶으면
두번째 인자로 261을 넣는 것입니다.
4옥타브의 음계 진동수 표를 올려두겠습니다.
tone()함수의 마지막 인자는 재생시간입니다.
500이면 0.5초간 연주하라는 뜻이겠죠?
tone(7,261,250);
저희 코드를 해석하면 "7번핀에서 제어하고
낮은 도 음을 0.25초 동안 연주해" 가 되겠습니다.
그럼 이것을 응용하여 기본 음계 "도레미파솔라시도"를 1초간
내는 코드를 작성해볼까요?
회로는 그대로 두시고 코드만 바꾸겠습니다.
int notes[8]={262,294,330,349,392,440,494,523};
int i;
void setup() {
pinMode(7,OUTPUT);
}
void loop() {
for(i=0;i<8;i++)
{
tone(7,notes[i],250);
delay(1000);
}
}
위 코드에서 첫번째 줄이 핵심입니다.
바로 "배열"이라는 건데요
int notes[8]={262,294,330,349,392,440,494,523};
int note[8]이라고 하면 뒤에 오는 정수 8개를
순서대로 담아줘! 라는 명령입니다. 그 결과는
notes[0] = 262, notes[1] = 294, notes[2] = 330, notes[3] = 349,
notes[4] = 392, notes[5] = 440, notes[6] = 494, notes[7] = 523
이렇게 저장이 됩니다. 그래서 loop를 보시면 이 배열을
차례대로 0번부터 가져오는 for문을 이용하여 소리를 내고 있습니다.
void loop() {
for(i=0;i<8;i++)
{
tone(7,notes[i],250);
delay(1000);
}
}
다음 글에서 가장 기본적인 학교종이 땡땡땡을
피에조부저를 이용해서 연주해보겠습니다.