안녕하세요. 디바이스마트 대짜이찐입니다.
오랜만에 아두이노 관련 포스팅을 하겠습니다.
아두이노를 사용할 때 자주 쓰이는 피에조 부저입니다.
피에조 부저는 전기적 신호를 주었을 때 수축하거나 확장하는 피에조 효과를
오랜만에 아두이노 관련 포스팅을 하겠습니다.
아두이노를 사용할 때 자주 쓰이는 피에조 부저입니다.
피에조 부저는 전기적 신호를 주었을 때 수축하거나 확장하는 피에조 효과를
이용해서 공기를 진동 시켜 소리를 만들어 냅니다.
아두이노에서 사용하는 피에조 부저는 2종류가 있습니다.
능동부저(active buzzer)와 수동부저(passive buzzer)입니다.
능동부저에는 내부에 내장된 회로가 있어서, 외부에서 전원을 연결해주면 ‘삐~’하는 소리가 출력되지만,
수동부저에는 내장된 회로가 없어서, 따로 주파수 명령을 주어야 소리가 출력됩니다.
능동 부저와 수동부저의 차이점은 다리 길이가 같다면 수동부저, 다리길이가 다르다면 능동부저입니다.
또 단순히 전원을 주었을 때 소리의 유무로 확인 할 수 있습니다.
피에조 수동 부저는 소리의 음량을 제어할 수 없습니다.
하지만 아래 표와 같이 주파수를 사용하여 음계를 출력할 수 있습니다.
옥타브
|
C(도)
|
C#
|
D(레)
|
D#
|
E(미)
|
F(파)
|
F#
|
G(솔)
|
G#
|
A(라)
|
A#
|
B(시)
|
1
|
33
|
35
|
37
|
39
|
41
|
44
|
46
|
49
|
52
|
55
|
58
|
62
|
2
|
65
|
69
|
73
|
78
|
82
|
87
|
93
|
98
|
104
|
110
|
117
|
123
|
3
|
131
|
139
|
147
|
156
|
165
|
175
|
185
|
196
|
208
|
220
|
233
|
247
|
4
|
262
|
277
|
294
|
311
|
330
|
349
|
370
|
392
|
415
|
440
|
466
|
494
|
5
|
523
|
554
|
587
|
622
|
659
|
698
|
740
|
784
|
831
|
880
|
932
|
988
|
6
|
1047
|
1109
|
1175
|
1245
|
1319
|
1397
|
1480
|
1568
|
1661
|
1760
|
1865
|
1976
|
7
|
2093
|
2217
|
2349
|
2489
|
2637
|
2794
|
2960
|
3136
|
3322
|
3520
|
3729
|
3951
|
8
|
4186
|
4435
|
4699
|
4978
|
아래 예제는 스위치를 누르면, 부저에서 ‘도레미파솔라시도’의 음계를 출력하는 예제입니다.
준비물: 아두이노, 피에조 수동부저, 택트스위치, 점퍼선, 브레드보드
/*
스위치-부저 테스트
http://www.devicemart.co.kr/
*/
int buzzer =5; // 부저를 핀 5번에 연결
int sw =4; // 스위치를 핀 4번에 연결
// '도레미파솔라시도' 음계 주파수 배열로 선언
int melody[]={262, 294, 330, 349, 392, 440, 494, 523};
void setup ()
{
pinMode(buzzer,OUTPUT); // 핀 5번을 출력 설정
pinMode(sw,INPUT_PULLUP); // 핀 4번을 내부풀업으로 입력 설정
}
void loop()
{
if(digitalRead(sw)==0)
{
for(int a=0; a<8; a++)
{
tone(5,melody[a],500); // 0.5초동안 음계 출력
}
}
else
{
noTone(5); // 피에조 부저 OFF
}
}
|
소스 코드중에
-tone()함수는 입력받은 주파수의 소리를 내는 함수로,
문법은 tone(pin, frequency) 혹은 tone(pin, frequency,duration)입니다.
이 함수는 한번에 1개의 핀만 제어할 수 있으며, 다른 핀에서 tone 이 연주하고 있다면,
tone 함수를 불러도 아무일도 일어나지 않습니다. 같은 핀에서 tone이 연주하고 있으면, 주파수가 새로 설정됩니다.
문법은 tone(pin, frequency) 혹은 tone(pin, frequency,duration)입니다.
이 함수는 한번에 1개의 핀만 제어할 수 있으며, 다른 핀에서 tone 이 연주하고 있다면,
tone 함수를 불러도 아무일도 일어나지 않습니다. 같은 핀에서 tone이 연주하고 있으면, 주파수가 새로 설정됩니다.
0 댓글