본문으로 바로가기

피에조 부저(Piezo buzzer)



피에조 부저는 피에조를 이용하여 소리를 내는 작은 스피커이다. 피에조는 특정 방향으로 압력을 가하면 결정체(수정, 전기석 등)의 표면에서 전기가 발생하는 성질을 이용한 것으로 여기에 얇은 판을 붙여 미세한 떨림으로부터 소리가 나게 된다. 소리가 크지 않다는 단점이 있지만 세밀하게 조작하면 음악도 연주할 수 있다. 

피에조 부저는 극성(+, -)가 있다. 부저 윗면에 +라고 써져 있거나 조그만 홈이 파여있는 쪽에 +극을 연결하면 된다.


피에조 부저 옥타브별 음계의 주파수


소리는 공기의 떨림으로 표현하는데 각 음계마다 고유의 떨림 주파수를 가지고 있다. 예를 들어 1옥타브 도의 경우 32.7032라는 고유 진동수를 가지고 있어 피에조 부저를 1초에 대략 32번정도 진동시키면 1옥타브 도의 음을 낼 수 있다.

<이미지 출처 : google image> 

소스 코드를 작성할 때 위의 표를 참고하면 원하는 연주를 할 수있다.


실습 내용


피에조 부저를 이용하여, 도레미파솔라시도를 연주해 보자.


준비물


아두이노, 브레드보드, 점퍼선 2개, 피에조 부저 or 스피커


회로도





소스 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int piezo = 7;
 
void setup() {
  pinMode(piezo, OUTPUT);
  
  tone(piezo, 523); // 5옥타브 도
  delay(1000);
  tone(piezo, 587); // 레
  delay(1000);
  tone(piezo, 659); // 미
  delay(1000);
  tone(piezo, 698); // 파 
  delay(1000);
  tone(piezo, 784); // 솔
  delay(1000);
  tone(piezo, 880); // 라
  delay(1000);
  tone(piezo, 988); // 시
  delay(1000);
  tone(piezo, 1046); // 6옥타브 도
  delay(1000);
  noTone(piezo);
}
 
void loop() {
  
}
cs

응용(배열 이용)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int piezo = 7;
int tones[] = { 5235876596987848809881046 };
//각 음계 배열에 담는다
 
void setup() {
  pinMode(piezo, OUTPUT);
  for(int i=0; i < 8; i++)  //for문을 이용하여 i값을 증가시켜
  {                         //도레미파솔라시도를 출력한다.
    tone(piezo, tones[i]);   
    delay(1000);
  }
  noTone(piezo);
}
 
void loop() {
  
}
cs


결과 영상