정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

ir 수신 질문 (2번째..)
김승종 | 2016-02-15

안녕하세요... 오랜지 보드 구입한 초보입니다.

5개의 키를 가진 리모콘을 사용 하여 5개의 LED를 제어하려는 프로그램을 작성중입니다.

프로그램으로 리모콘 은 아래와 같습니다. .

NEC 타입

button1 0x002FD58A7

button2 0x002FD9867

 button3 0x002FD18E7

 button4 0x002FD807F

 button5 0x002FD00FF

문제는 키를 계속 느루고 있을때   0xFFFFFFFFF 이렇게 리피트 값이 출력 되는데...

각가의 키를 누르고 있을때만 LED "on" 이되고 누루지 않을때는 off가 되게 제어하고 싶은데 여러 방면으로 찾아보고

구글링(?)을 해보아도 일주일이 넘게 고생을 하고있습니다.

조언좀 부탁드립니다. ㅠㅠ

아래 프로그램은 구글링(?)통한 프로그램이고 딱 저수준이 제 수순입니다. ㅠㅠ

(참고로 아래 프로그램은 LED가 꺼지질 않네요;;)

감사합니다.

#include <IRremote.h>

int RECV_PIN = 11; // RECV_PIN핀을 11번으로 설정

int led1 = 2; //led1을 2번핀으로 설정

int led2 = 3; //led2을 3번핀으로 설정

int led3 = 4; //led3을 4번핀으로 설정

int led4 = 5; //led4을 5번핀으로 설정

int led5 = 6; //led5을 6번핀으로 설정

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()

{

Serial.begin(9600);

irrecv.enableIRIn();

pinMode(led1,OUTPUT); //LED1핀을 OUTPUT으로 설정

pinMode(led2,OUTPUT); //LED2핀을 OUTPUT으로 설정

pinMode(led3,OUTPUT); //LED3핀을 OUTPUT으로 설정

pinMode(led4,OUTPUT); //LED4핀을 OUTPUT으로 설정

pinMode(led5,OUTPUT); //LED5핀을 OUTPUT으로 설정

pinMode(RECV_PIN,INPUT); // RECV_PIN(11번핀)을 input으로 설정

}

void loop()

{

if(irrecv.decode(&results)){

if(results.decode_type == NEC){

switch(results.value){

case 0x002FD58A7: // Key 0

Serial.println("Press '1'");

digitalWrite(2,HIGH);

break;

case 0x002FD9867: // Key 1

Serial.println("Press '2'");

digitalWrite(3,HIGH);

break;

case 0x002FD18E7: // Key 2

Serial.println("Press '3'");

digitalWrite(4,HIGH);

break;

case 0x002FD807F: // Key 3

Serial.println("Press '4'");

digitalWrite(5,HIGH);

break;

case 0x002FD00FF: // Key 4

Serial.println("Press '5'");

digitalWrite(6,HIGH);

break;

default:

break;

}

}

irrecv.resume();

}

}

 

 

 

이전글   |    지니어스키트 2016-02-13
다음글   |    처음 가입했는데.. 코코아 포인트는 어떻게 얻는 건가요?... 2016-02-15