GPIO Pin
먼저 모듈을 제어하는 코드를 소개하기전에 GPIO Pin 구성을 보겠습니다
터미널로 들어가 $gpio readall 명령어를 실행시키면 아래와 같은 GPIO Pin 구성이 나옵니다.
여기서 Physical번호는 하드웨어 핀번호 순서를 나타낸 것이며 wpi번호는 프로그램에서 사용하는 번호를 나타낸 것입니다.
램프형 LED 모듈 제어
먼저 램프형 LED 모듈은 다음과 같은 구조를 가지고 있습니다.
이 중에서 저희는 GND이것을 0V인 6번핀에 꽂고 D0을 프로그램에서 wpi번호가 29인 40번핀에 꽂겠습니다.
const gpio = require('node-wiring-pi');
const LEDPIN = 29;
var flag = 0;
const TimeOutHandler = function(){
if(flag>0){
gpio.digitalWrite(LEDPIN,1);
console.log("LED 켜짐");
flag = 0;
}
else{
gpio.digitalWrite(LEDPIN,0);
console.log("LED 꺼짐");
flag = 1;
}
setTimeout(TimeOutHandler,1000);
}
gpio.setip('wpi');
gpio.pinMode(LEDPIN,gpio.OUTPUT);
setTimeout(TimeOutHandler,1000);
const gpio = require('node-wiring-pi');
const LEDPIN = 29;
var flag = 0;
const LedController = function(){
gpio.digitalWrite(LEDPIN,1);
gpio.delay(1000);
gpio.digitalWrite(LEDPIN,0);
setTimeout(LedController,1000);
}
gpio.setip('wpi');
gpio.pinMode(LEDPIN,gpio.OUTPUT);
setImmediate(LedController);
3색형 LED 제어
3색 LED의 구조는 아래와 같습니다.
3색 LED를 1초 간격으로 빨간색>초록색>파랑색>모두 꺼짐을 구현하려고 합니다.
이때 빨간색-물리40(wpi29), 초록색-물리38(wpi28), 파란색-물리36(wpi27), 0v-물리6번 으로 하겠습니다.
코드는 아래와 같습니다.
const gpio = require('node-wiring-pi');
const BLUE = 29;
const RED = 28;
const GREEN = 27;
var count = 0;
const TimeOutHandler = function(){
switch(count % 4){
case 0:
gpio.digitalWrite(RED,1);
console.log("RED ON");
break;
case 1:
gpio.digitalWrite(RED,0);
gpio.digitalWrite(GREEN,1);
console.log("GREEN ON");
break;
case 2:
gpio.digitalWrite(GREEN,0);
gpio.digitalWrite(BLEU,1);
console.log("BLUE ON");
break;
case 3:
gpio.digitalWrite(RED,0);
gpio.digitalWrite(GREEN,0);
gpio.digitalWrite(BLUE,0);
console.log("ALL OFF");
break;
default:
break;
}
count++;
setTimeOut(TimeOutHandler,1000);
}
gpio.setup('wpi');
gpio.pinMode(RED,gpio.OUTPUT);
gpio.pinMode(GREEN,gpio.OUTPUT);
gpio.pinMode(BLUE,gpio.OUTPUT);
setImmediate(TimeOutHandler);
'Coding > Raspberry pi - node.js' 카테고리의 다른 글
조도센서, 터치센서 다루기 (0) | 2019.10.07 |
---|---|
실습 - Button, Buzzer, LED를 이용한 프로그램 제작하기 - 2 (2) | 2019.10.07 |
실습 - Button, Buzzer, LED를 이용한 프로그램 제작하기 (0) | 2019.10.06 |
Buzzer 제어하기 (0) | 2019.10.06 |
임베디드 센서(Button) 제어하기 (0) | 2019.10.06 |
댓글