부저(BUZZER)란?
소리를 발생시키는 장치입니다. 아두이노를 다루시는 분들은 피에조 부저라는 이야기를 많이 들어보셨을 겁니다. 여기서 피에조란 그리스어에서 유래된 말로 '누른다'라는 뜻을 가지고 있습니다. (piezein)
압력 >> 전기 발생 (압전효과)
말을 하면 우리는 귀를 통해 들을 수 있습니다. 바로 음성이 공기의 압력을 발생시키고 이를 통해 전기적 신호가 발생하게 됩니다. 부저는 이와 반대로 전기적신호를 이용해 압력을 발생시키고 소리게 나게 됩니다.
전자 제품의 음향장치를 일컫는 말로 우리주위에 사용되는 제품 중 경보기, 자동차에 달려 있는 전자 장비, 아이들이 가지고 노는 완구 등 사회 전반에 걸쳐 많이 사용됩니다.
주파수 : 1초 동안 진동하는 수
가청 주파수 : 사람이 들을 수 있는 소리(즉, 떨림으로 인해 나는 소리 ) 20Hz~ 20,000Hz (단위 헤르츠)
능동부저와 수동부저의 차이점
능동부저 | 수동부저 |
음이 하나 밖에 없다. | 주파수 범위 내에 다양한 음을 출력할 수 있다. |
다리의 길이가 다르다 | 다리의 길이가 같다. |
전원만 공급해도 바로 소리가 난다. | 전원뿐만 아니라 주파수까지 알려줘야 소리가 난다.(tone) |
특정음악이나, 원하는 멜로디를 연주하고 싶다. (수동부저)
위험을 알리는 경고음이나, 단순히 신호음만 보내기 위해 사용한다 (능동부저)
부저 회로도
능동부저 수동부저 회로도는 동일하며, +는 핀번호에, -는 gnd에 연결해 주면 됩니다.
부저 사용에 필요한 함수
수동부저
tone(pin, frequency);
tone 함수 안에는 두 가지 정보가 입력되어야 합니다. 첫 번째 pin에는 부저를 연결한 핀번호(아두이노에 꽂은 핀번호) 그리고 frequency는 주파수를 뜻합니다. 즉 음계를 입력해야 하는 것이죠.
또는 이렇게도 사용할 수 있습니다.
tone(pin, frequency, dtime);
뒤에 dtime(음의 지속시간)이 있습니다. 만약에 음의 지속 시간을 설정하지 않으면, 또 그다음 소리를 내는 tone 함수가 실행됩니다. (다음 tone함수가 없고, noTone함수가 실행되지 않으면 계속 소리가 남)
noTone(pin);
tone함수와 반대로 noTone함수입니다. 말 그대로 소리를 내지 않겠다는 것인데요, 안에 들어가 있는 pin번호는 해당핀번호의 소리를 내지 않겠다는 뜻입니다.
능동부저
digitalWrite(pin, HIGH or LOW);
능동부저는 수동부저와 반대로 그냥 전기만 흐르게 한다면 소리가 바로 나게 됩니다. HIGH이면 소리가 나고, LOW이면 소리가 나지 않게 됩니다.
부저 코드로 작동시켜 보기
수동부저
void setup(){
pinMode(5, OUTPUT); // 5번 핀을 출력 핀으로 설정
}
void loop(){
tone(5, 262); // 도 (여기서 262는 주파수)
delay(500); //0.5초 대기
tone(5, 294); //레
delay(500); //0.5초 대기
tone(5, 330); //미
delay(500); //0.5초 대기
}
능동부저
void setup(){
pinMode(5, OUTPUT);
}
void loop(){
digitalWrite(5, HIGH); // 소리를 낸다
delay(500); //0.5초 대기
digitalWrite(5, LOW); // 소리를 내지 않는다.
delay(500); //0.5초 대기
}
'아두이노(arduino)' 카테고리의 다른 글
아두이노 기본 문법 for()문을 배워봅시다. led 밝기 조절해보기. (0) | 2023.02.08 |
---|---|
아두이노 적외선센서 원리와 사용방법 / 예제 (1) | 2023.02.01 |
아두이노 조도센서(빛 센서 / 포토레지스터) 알아보기 / 사용법 (1) | 2023.01.18 |
아두이노 서보모터란? 서보모터 제어하기 (0) | 2023.01.13 |
아두이노 analogRead() 정보를 가져오자 #2 (0) | 2023.01.11 |