1. 필요한 부품
LED
BLUE - wpi : 29
RED - wpi : 28
GREEN - wpi : 27
BUZZER
wpi : 24
BUTTON
wpi : 25
GND, 5V
GND : 물리적 6번
5V : 물리적 2번
2. 원하는 프로그램 내용
버튼을 첫 번째로 누르면 파란색 LED가 켜졌다 꺼집니다. 두 번째로 누르면 빨간색이 켜진후 꺼집니다. 세 번째로 누르면 초록색 LED가 켜진후 꺼집니다.
무한반복 실행되며, ctrl + C 를 누르면 LED, 부져가 모두 꺼진 후 프로그램은 종료됩니다.
3. 프로그램 코드
선언 부분 코드
const gpio = require('node-wiring-pi');
const BLUE = 29;
const RED = 28;
const GREEN = 27;
const BUZZER = 24;
const BUTTON = 25;
let count = 0;
구현 부분 코드
const toggle = function(color){
gpio.digitalWrite(color,1);
gpio.digitalWrite(BUZZER,1);
gpio.delay(1000);
gpio.digitalWrite(color,0);
gpio.digitalWrite(BUZZER,0);
}
const ButtonHandler = function(){
switch(count){
case 0:
toggle(BLUE);
count++;
break;
case 1:
toggle(RED);
count++;
break;
case 2:
toggle(GREEN);
count = 0;
break;
}
}
const CheckButton = function(){
let data = gpio.digitalRead(BUTTON);
if(!data) ButtonHandler();
setTimeout(CheckButton,300);
}
후반부 종료 및 실행 코드
process.on('SIGINT', function(){
gpio.digitalWrite(BLUE,0);
gpio.digitalWrite(RED,0);
gpio.digitalWrite(GREEN,0);
gpio.digitalWRite(BUZZER,0);
console.log("exit");
process.exit();
});
gpio.setup('wpi');
gpio.pinMode(BUZZER,gpio.OUTPUT);
gpio.pinMode(BLUE,gpio.OUTPUT);
gpio.pinMode(RED,gpio.OUTPUT);
gpio.pinMode(GREEN,gpio.OUTPUT);
gpio.pinMode(BUTTON,gpio.INPUT);
setImmediate(CheckButton);
'Coding > Raspberry pi - node.js' 카테고리의 다른 글
조도센서, 터치센서 다루기 (0) | 2019.10.07 |
---|---|
실습 - Button, Buzzer, LED를 이용한 프로그램 제작하기 - 2 (2) | 2019.10.07 |
Buzzer 제어하기 (0) | 2019.10.06 |
임베디드 센서(Button) 제어하기 (0) | 2019.10.06 |
램프형 LED와 3색 LED 모듈을 제어하는 코드 (0) | 2019.10.06 |
댓글