본문 바로가기
Coding/Raspberry pi - node.js

인터럽트 방식으로 버튼 제어하기

by hyun-am 2019. 10. 9.

인터럽트 처리방식

 

기존의 무한반복(polling) 대신에, 인터럽트 처리방식으로 센서측정하는 기법(함수)

 

int wiringPiISR(pin, edgeType, callback)

 

 

해석하자면 특정 pin에서, 지정된 인터럽트가 발생되면, 콜백함수가 자동적으로 호출됩니다. 

 

edge_type은 아래 그림을 보고 참고 하시기 바랍니다.

 

 

코드 구현

const gpio = require('node-wiring-pi');
const BUTTON = 29;
const LED = 7;

const DetectButton = function(){
    gpio.digitalWrite(LED,1);
    gpio.delay(50);
    gpio.digitalWrite(LED,0);
}

process.on('SIGINT',function(){
    gpio.digitalWrite(LED,0);
    console.log("Exit...");
    process.exit();
});

gpio.pinMode(BUTTON,gpio.INPUT);
gpio.pinMode(LED,gpio.OUTPUT);
console.log("이벤트 방식 : 버튼을 누르면 LED가 켜집니다...");
gpio.wiringpiISR(BUTTON,gpio.INT_EDGE_RISING,DetectButton);
    

 

 

댓글