본문 바로가기

node11

실습 - PWM을 이용한 LED 밝기 제어 사용한 부품 BUTTON wpi : 29 LED BLUE - wpi : 23 RED - wpi : 24 GREEN - wpi : 25 BUZZER wpi - 22 실습 내용 버튼처리는 반드시 인터럽트방식을 이용하는데, 눌렀다가 떼는 순간에 처리한다. 3색 LED처리는 반드시 PWM방식을 사용합니다 버튼을 클릭할때마다 LED가 점점 밝아진다. 단, PWM은 1~100중에서 밝아지는 단계를 5개 단계로 구분합니다.(즉, 25씩으로 증가합니다. 예, 값이 1->25->50->75->100) 버튼을 클릭할때마다 켜지는 LED의 색상은 각 단계별로 초록->청색->빨간->흰색 순이며, 그 이후에는 다시 처음으로 되돌아 갑니다. 생상이 바뀌는 시점에 부져스피커가 0.05초간 짧게 울립니다. 프로그램은 무한 실행되며,.. 2019. 10. 9.
WiringPi GPIO API인 PWM이용하기 PWM PWM이랑 Pulse Width Modulation의 줄임말로 펄스폭변조 라는 뜻을 가지고 있습니다. 디지털 기기에서 아날로그 결과를 얻기 위한 기법으로(DC모터 속도제어, LED밝기제어에 활용되는 기술입니다.) 대표적인 함수는 int softPwmCreate(pin, initialValue, pwmRange);// 정상 0 리턴 void softPwmWrite(pin, value); initialValue - 한 주기(Frequency)를 세분화했을때 시작 값 pwmRange - 한 주기의 끝 값. ex) softPwmCreate(REDLED_PIN, 1, 100); value - Duty cycle 크기의 값. 단, 범위에 있어야 합니다. ex) softPwmWrite(REDLED_PIN, 1.. 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.. 2019. 10. 9.
실습 - 버튼, 광센서, 터치센서, Relay를 이용한 프로그램 1. 필요한 부품 BUTTON wpi : 29 LIGHT wpi : 28 TOUCH wpi : 21 BUZZER wpi : 26 LED RED - wpi : 23 GREEN - wpi : 24 BLUE - wpi : 27 RELAY wpi : 25 2. 구현 내용 Touch센서에 터치할때마다, 1색 LED가 0.2초동안 켜졌다 꺼진다. 버튼을 첫 번째 누르면 부져소리가 0.1초동안 나면서 3색 LED가 모두 켜진다. 3색 LED가 모두 켜져있을때만 광센서가 빛을 센싱을 할 수 있다. 광센서에서 변화(밝음 → 어두움)가 측정되면 Relay를 제어하여 전류를 흐르게한다. 광센서에서 변화(어두움 → 밝음)가 측정되면 Relay를 제어하여 전류를 차단시킨다. 버튼을 두 번째 누르면 부져소리가 0.1초 동안 나면.. 2019. 10. 7.
실습 - 터치센서, 광센서를 활용한 코드 1. 필요한 부품 LED BLUE - wpi : 29 GREEN - wpi : 28 RED - wpi : 27 BUZZER wpi : 25 LIGHT wpi : 7 TOUCH wpi : 23 2. 원하는 프로그램 내용 터치센서를 첫 번째로 터치하면 부져소리를 0.05초 동안 발생시킨 후, 3색 LED의 청록색을 켠다. 터치센서를 두 번째로 터치하면 부져소리를 0.08초 동안 발생시킨 후, 3색 LED의 청록색을 끈다. 청녹색LED가 켜진상태에서만 조도센서가 빛을 측정한다. 밝다가 어두워지면 빨강색 LED를 켜고, 다시 밝아지면 빨강색 LED를 끈다. 터치센서를 세 번째로 터치하면 부져소리를 0.1초 동안 2번(삐,삐) 발생시킨후, 3색LED가 모두 꺼진다 무한반복 실행되며, Ctrl + c를 누르면 모든.. 2019. 10. 7.
Relay 스위치와 소리센서 제어하기 1. Relay 스위치 제어 Relay Switch 내부 구조 Relay Switch 외부구조 스위치 제어 코드 const gpio = require('node-wiring-pi'); const RELAY = 22; const TurnOn = function(){ gpio.digitalWrite(RELAY,gpio.HIGH); console.log("Relay On"); setTimeout(TurnOff,3000); } const TurnOff = function(){ gpio.digitalWrite(RELAY,gpio.LOW); console.log("Relay Off"); setTimeout(TurnOn,3000); } gpio.wiringPisetup(); gpio.pinMode(RELAY,gpio.. 2019. 10. 7.