초급 예제

누구나 쉽게 따라해볼 수 있는 쉬운 예제들입니다. 가볍게 도전~!

피에조 부저로 소리내기

2015-01-16 13:24:21

개요

 

1) 피에조 부저란 무엇인가?
 

피에조 부저 (piezo buzzer)는 피에조 효과를 이용하여 소리를 내는 작은 스피커입니다.

피에조 효과란 수정이나 세라믹 같은 결정체의 성질을 이용하는 것으로 압력을 주게되면 변형이 일어나면서 표면에 전압이 발생하고, 반대로 전압을 걸어주면 응축,신장을 하는 현상을 말하며 압전효과라고도 합니다. 여기에 얇은 판을 붙여주면 미세한 떨림으로 소리가 나게 됩니다.

피에조 부저는 큰 소리를 내지 못 하는 단점이 있으나, 값이 싸고 단순하며, 주파수 2만Hz 이상의 초음파를 발생시킬 수 있기 때문에 초음파을 활용한 다양한 제품에서 사용됩니다.



 

2) 피에조 부저 사용방법
 

피에조 부저는 2개의 전극단자로 구성되어 있으며, 각 단자는 극성을 가지고 있습니다. 커버 윗면을 확인하면, (+)라고 써져 있거나, 옆에 조그만 홈이 파져있는 의 단자에 +전극을 연결하면 됩니다.

아래의 그림은 옥타브 및 음계별 표준 주파수를 나타내는 표입니다.  피에조 부저에 주파수에 맞는 신호를 줌으로써 원하는 음계의 소리를 낼 수 있습니다.

우리에게 익숙한 음계는 4옥타브에 해당됩니다. 즉, ‘도’라는 음은 4옥타브의 C 261.6256Hz의 주파수를 가지는 소리입니다.
 

 

부품 목록

 

NO 부품명 수량 상세설명
 1 오렌지 보드  
피에조 부저  KPX 1203S 
스위치   
브레드 보드   
점퍼 케이블   

 

 

부품명 오렌지 보드 피에조 부저 스위치 브레드 보드 점퍼 케이블
파트

 

 

하드웨어 making

 

브레드 보드

1. 오렌지보드의 GND을 브레드보드의 -버스에 연결합니다.

2. 피에조 부저를 그림과 같이 +단자가 위로 향하게하여 세로로 꽂습니다.

3. 스위치를 그림과 같이 양쪽 IC영역에 걸치게 꽂습니다.

4. 피에조 부저의 +단자가 연결된 행을 오렌지보드 3번핀에 연결합니다.

5. 피에조 부저의 -단자를 -버스에 연결합니다.

6. 스위치의 왼쪽 하단 단자를 오렌지보드 5번핀에 연결합니다.

7. 스위치의 오른쪽 상단 단자를 -버스에 연결합니다.


 

 

 

전자 회로도


 

 

 

소프트웨어 coding

/*
 제목		: 피에조 부저 (Piezo Buzzer) 소리내기
 내용		: 스위치를 누를 때마다, '도레미파솔라시' 음계를 소리내도록 만들어 봅니다.
 */

// 피에조 부저를 3번 핀으로 설정합니다.
int piezo = 3;
// 스위치를 5번 핀으로 설정합니다.
int sw = 5;
// 톤 배열 수
int numTones = 8;
// 음계 표준 주파수(4옥타브) : 도, 레, 미, 파, 솔, 라, 시, 도
int tones[] = {261, 294, 330, 349, 392, 440, 494, 523};

// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
// 변수를 선언하거나 초기화를 위한 코드를 포함합니다.
void setup() {
	// 피에조 부저가 연결된 핀을 OUTPUT으로 설정합니다.
	pinMode(piezo, OUTPUT);
	// 스위치가 연결된 핀의 모드를 INPUT_PULLUP 상태(초기 로직레벨을 HIGH로 설정)로 설정합니다.
	// 설정된 디지털 핀은 아래와 같은 값을 반환합니다.
	// 스위치가 열려있다면 (누르지 않은 상태) HIGH
	// 스위치를 닫혀있다면 (누른 상태), LOW
	pinMode(sw, INPUT_PULLUP);
}

// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행됩니다.
void loop() {
	// 스위치가 연결된 핀의 로직레벨이 LOW라면,
	// 스위치가 닫혀있는 상태(누른 상태) 이므로, 아래의 블록을 실행합니다.
	if (digitalRead(sw) == LOW) {

		for (int i = 0; i < numTones; i++) {
			// 피에조 부저가 연결된 핀으로 지정된 주파수를 가지는 square-wave(구형파 또는 사각파)플 생성하도록 설정합니다.
			// 도가 261Hz의 주파수를 가진다면, 1초에 261번의 square-wave을 발생신킨다는 의미입니다.
      		// 디지털은 0 과 1 (HIGH와 LOW)로 표현이되므로, 1초 동안에 0과 1의 변화를 261번 주는 것과 같습니다.
			tone(piezo, tones[i]);
			// 0.5초 동안 대기합니다.
			delay(500);
		}
		// 피에조 부저가 연결된 핀으로부터 square-ware를 생성을 중단하도록 설정합니다.
		noTone(piezo);
	}
}

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

오렌지 보드, 피에조 부저, 버튼

노짱 2015-04-03 00:51:07

신기하네요. ~ +0+ 피에조 부저로 떳다떳다 비행기 노래 나오게 만들수도 있겠네요.ㅎㅎ

노짱 2015-04-03 00:58:54

[♪ 비행기] 노래입니다. ㅋㅋㅋ 해보실 분 해보셔요.
int numTones = 8;
int tones[] = { ~
부분만 아래걸로 바꾸고 실행시키면 됩니다. ㅎㅎ

int numTones = 26;
int tones[] = {
330, 294, 261, 294, 330, 330, 330, 294, 294, 294,
330, 392, 392, 330, 294, 261, 294, 330, 330, 330,
294, 294, 330, 294, 261, 523};

ㅋㅋ 마지막 음은 포인트!!!