본문 바로가기
Arduino

[부저] 아두이노에서 부저 사용하기

by 소나무기운 2020. 12. 12.
반응형

아두이노 나노에 부저를 달고 소리를 내봅니다.

 

사용할 부저는 ON/OFF를 반복하여 신호를 넣어주어야 하는 패시브 부저(Passive Buzzer)에요.

피에조 부저라고도 해요.

 

극성이 있으니 확인하세요.

아래 그림에서 스티커는 나중에 떼어내세요.

 

부저

+극에 전원을 줬다가 뺐다가를 빠르게 반복하여 그 진동이 소리로 들여요.

회로가 내장되어 있어서 5V를 연결하여 삑 소리가 나는 제품도 있어요. 

눈으로는 확인이 안돼요. 전원을 연결해 봤을 때 소리가 나면 액티브, 삑 소리가 안 나면 패시브 소자입니다.

 

사용방법은 아두이노의 PWM신로를 연결하고 TR로 증폭하여 사용해요.

부저 연결 방법

여기서 D2, R8은 필수는 아니에요. 

 

#include "pitches.h"
int nBuzzer = 5;

void BuzzerTest(void)
{
	tone(nBuzzer, 1000); //1000hz
        
    // 0.5sec마다 한번씩 부저 동작 처리
    nLoop++;
    if (nLoop > 5)
    {
        nLoop = 0;

        AlEnable = (analogRead(A6) > 300) ? 1 : 0; // 옵션 상태 읽기
         if (byTargetDuty != 0)                     // 알람상태가 아니면 무시
         {
            if (AlEnable == 1) // 알람 Off이면 무시
             {
                 tone(nBuzzer, 1000); //1000hz
             }
             else
             {
                 tone(nBuzzer, 0);
             }
         }
         else
         {
             tone(nBuzzer, 0);
         }
    }
}

헤더 파일을 추가하고 tone() 함수를 사용해요.

 

tone(pin, frequency);

tone(pin, frequency, duration);

notone(pin);

 

이렇게 명령해주면 50% duty의 PWM 신호를 출력해 줘요.

부저는 대략 1Khz가 공진 주파수예요. 가장 소리가 크죠.

 

tone 명령을 넣으면 멜로디를 넣을 수 있어요.

음계 주파수 주파수
523 1046
587 1174
659 1318
698 1396
783 1567
880 1760
987 1975
1046 2093

 

제품에서 동작시 전원 ON시 도미솔처럼 상승음을 사용해요.

                      전원 OFF 시에는 솔미도 처럼 하강음을 사용해요.

 

 

그럼 즐거운 코딩 하세요

반응형

댓글