이번 포스팅 에서는 Piezo Buzzer로 소리내는 법을 알아보겠습니다.
부저는 압전효과에 의해서 음향을 출력하는 전자 부품으로,
수많은 전자기기에서 경고음, 알람, 멜로디등의 소리를 낼 때 주로 사용이 됩니다.
부저를 자세히 보게되면 +, - 극성이 나뉘어져 있다는 것을 알 수 있습니다.
LED와 마찬가지로 다리가 긴 쪽이 + 극성을 나타냅니다.
위와 같이 기본적인 회로를 구성해 봅니다.
저항은 330옴을 사용하였습니다.
_____________________________________________________________________
int buzzer = 9;
}
스피커는 출력장치 이기 때문에 LED를 켤 때와 코드는 같습니다.
위와 같이 코드를 넣으면 "딱딱딱딱......." 소리가 탑니다.
이번 코드는 "도레미파솔라시도"를 출력해보는 코드 입니다.
아래 표는 주파수에 따른 음계표 입니다.
음계를 표현할 수 있기 때문에 악보를 연주 할 수 있습니다.
tone함수와 delay함수를 이용해서 연주를 하였습니다.
int scale[2][7] = {{262,294,330,349,392,440,494}, {523,587,659,699,784,880,988}};int duration = 80; //음의 지속시간 (ms)int delaytime = 200; //delay 시간 (ms)
void setup() { pinMode(buzzer,OUTPUT); }
void loop() {
tone(buzzer,scale[1][2],duration); delay(delaytime-50); tone(buzzer,scale[1][2],duration); delay(delaytime-100); tone(buzzer,scale[1][2],duration*1.5); delay(delaytime*1.5); tone(buzzer,scale[1][0],duration); delay(delaytime); tone(buzzer,scale[1][2],duration); delay(delaytime); tone(buzzer,scale[1][4],duration*1.5); delay(delaytime*1.5); tone(buzzer,scale[0][4],duration); delay(delaytime*2);
.............
위 코드에서는 4옥타브와 5옥타브 음계를 scale 이라는 이차원 배열에 넣어서 사용 했습니다.
나머지 코드는 첨부파일을 확인해 보시면 됩니다.
인터넷에 검색을 해보면 부저를 이용한 더욱 다양한 예제가 있으니 참고해 보시기 바랍니다.
112,899
2
0
lood() -> loop()
피에조부저를 이용해 스위치로 소리 재생, 정지를 하고 싶습니다.
확인