javascript21 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. 실습 - Button, Buzzer, LED를 이용한 프로그램 제작하기 - 2 1. 필요한 부품 LED BLUE - wpi : 29 RED - wpi : 28 BUZZER wpi : 24 BUTTON wpi : 25 GND, 5V GND : 물리적 6번 5V : 물리적 2번 2. 원하는 프로그램 내용 버튼을 3초 미만으로 계속 누르고 있으면, 파랑색 LED가 0.5초동안만 켜진후 꺼집니다. 버튼을 3초 이상 계속해서 누르고 있으면, Active 부져에서 300ms 동안 소리가 난 뒤에 빨간색 LED가 켜지도록 합니다. 3. 프로그램 코드 선언 부분 코드 const gpio = requre('node-wiring-pi'); const BLUE = 29; const RED = 28; const BUZZER = 24; const BUTTON = 25; let clock = null; l.. 2019. 10. 7. 이전 1 2 3 4 다음