Buzzer란?
먼저 Buzzer 모듈은 Piezo Speaker이랑 같은말입니다.
이것은 압전물질(수정, 세라믹)에 전압을 가하면 떨림이 발생하는데, 이 떨림으로 얇은 판을 대면 판과 부딪혀 소리가 발생합니다.
압력을 주게되면 전압이 발생하는 센서라고도 할 수 있습니다.
Buzzer에는 대표적으로 두가지 종류가 있는데 Passive buzzer모듈과 Active buzzer 모듈이 있습니다.
passive buzzer 모듈
전기 신호를 공급하더라도 짧은 시간만 소리를 냅니다.
주파수(1.5kHz ~ 2.5kHz)를 달리하면 각각 다른 Tone을 생성합니다.
PWM(Pulse Width Modulation)기법이나 Delay를 이용하여 코딩을 합니다.
다양한 소리가 가능합니다(음계연주 가능)
Active buzzer 모듈
전기신호를 공급하면 소리를 지속적으로 냅니다.
신호를 약 2.5kHz 주파수로 소리를 생성하므로 소리 변화가 다양하지 못합니다.
소리가 Passive에 비해서 매우 큽니다.(85db / 10cm)
Buzzer 소리 제어 자바스크립트
먼저 Buzzer의 구조는 아래와 같습니다.
Buzzer가 1초 울리고 꺼지고 반복하는 코드를 작성하겠습니다.
이때 Buzzer의 wpi번호는 29번으로 하겠습니다.
const gpio = requre('node-wiring-pi');
const BUZZER = 29;
const TurnOn = function(){
gpio.digitalWrite(BUZZER,1);
console.log("BUZZER On");
setTimeout(TurnOff,1000);
}
const TurnOff = function(){
gpio.digitalWrite(BUZZER,0);
console.log("BUZZER OFF");
setTimeout(TurnOn,1000);
}
process.on('SIGINT',function(){
gpio.digitalWrite(BUZZER,0);
console.log("exit");
process.exit();
});
gpio.setup('wpi');
gpio.pinMode(BUZZER,gpio.OUTPUT);
setImmediate(TurnOn);
LED와 BUZZER제어하기
빨간색 LED를 1초 동안 켜고 난 뒤에, LED를 끄고 바로 100ms 동안 Buzzer소리가 울리는 코드
BUZZER의 wpi 번호는 24, LED의 wpi 번호는 29로 설정하였습니다.
코드는 아래와 같습니다.
const gpio = require('node-wiring-pi');
const LED = 29;
const BUZZER = 24;
const TurnOnLed = function(){
gpio.digitalWrite(LED,1);
gpio.digitalWrite(BUZZER,0);
console.log("LED On");
setTimeout(TurnOffLed,1000);
}
const TurnOffLed = function(){
gpio.digitalWrite(LED,0);
gpio.digitalWrite(BUZZER,1);
console.log("LED Off");
setTimeout(TurnOnLed,100);
}
process.on('SIGINT',function(){
gpio.digitalWrite(LED,0);
gpio.digitalWrite(BUZZER,0);
console.log("exit...");
process.exit();
});
gpio.setup('wpi');
gpio.pinMode(LED,gpio.OUTPUT);
gpio.pinMode(BUZZER,gpio.OUTPUT);
setTimeout(TurnOnLed,100);
'Coding > Raspberry pi - node.js' 카테고리의 다른 글
조도센서, 터치센서 다루기 (0) | 2019.10.07 |
---|---|
실습 - Button, Buzzer, LED를 이용한 프로그램 제작하기 - 2 (2) | 2019.10.07 |
실습 - Button, Buzzer, LED를 이용한 프로그램 제작하기 (0) | 2019.10.06 |
임베디드 센서(Button) 제어하기 (0) | 2019.10.06 |
램프형 LED와 3색 LED 모듈을 제어하는 코드 (0) | 2019.10.06 |
댓글