//적외선 통신을 하기 위한 라이브러리
#include <IRremote.h>
IRrecv ir1(11);//적외선 센서가 연결된 디지털 핀 번호 매핑
decode_results results; //수신된 적외선 신호를 저장할 변수
void setup()
{
ir1.enableIRIn(); //적외선 센서 활성화
Serial.begin(9600); //시리얼객체 초기화
}
void loop()
{
if(ir1.decode(&results)){ //전송되는 값이 0이 아니라면
Serial.println(results.value, HEX); //16진수 형태로 출력
delay(30); //0.03초 딜레이
ir1.resume();
}
}
실행결과 : 리모컨을 누를 때 마다 시리얼 모니터에 16진수 값이 출력된다.
//실행결과 : EQ버튼을 누르면 LED가 켜지고 다른 버튼을 누르면 LED가 꺼진다.
//(LED가 잠깐 켜졌다 꺼지는거 아님. 계속 켜져있거나 꺼져있는 상태를 유지)
//적외선 통신을 하기 위한 라이브러리
#include <IRremote.h>
IRrecv ir1(11);//적외선 센서가 연결된 디지털 핀 번호 매핑
decode_results results; //수신된 적외선 신호를 저장할 변수
void setup()
{
ir1.enableIRIn(); //적외선 센서 활성화
Serial.begin(9600); //시리얼객체 초기화
pinMode(12, OUTPUT);
}
void loop()
{
if(ir1.decode(&results)){ //전송되는 값이 0이 아니라면
Serial.println(results.value, HEX); //16진수 형태로 출력
if(results.value == 0xFDB04F){ //리모컨의 EQ버튼을 누르면
digitalWrite(12, HIGH); //LED on
}
else{ //EQ버튼 외의 다른 버튼 누르면
digitalWrite(12, LOW); //LED off
}
delay(30); //0.03초 딜레이
ir1.resume();
}
}
//실행결과 : 0버튼을 누르면 빨강과 파랑이 섞여 자주색의 빛이 켜진다.
//적외선 통신을 하기 위한 라이브러리
#include <IRremote.h>
IRrecv ir1(11);//적외선 센서가 연결된 디지털 핀 번호 매핑
decode_results results; //수신된 적외선 신호를 저장할 변수
void setup()
{
ir1.enableIRIn(); //적외선 센서 활성화
Serial.begin(9600); //시리얼객체 초기화
pinMode(12, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(2, OUTPUT);
}
void loop()
{
if(ir1.decode(&results)){ //전송되는 값이 0이 아니라면
Serial.println(results.value, HEX); //16진수 형태로 출력
if(results.value == 0xFDB04F){ //리모컨의 EQ버튼을 누르면
digitalWrite(12, HIGH); //LED on
}
else{ //EQ버튼 외의 다른 버튼 누르면
digitalWrite(12, LOW); //LED off
}
if(results.value == 0xFD30CF){ //0버튼이 눌렸을 경우
digitalWrite(8, HIGH); //빨강
digitalWrite(7, HIGH); //파랑
digitalWrite(2, LOW); //초록
}
delay(30); //0.03초 딜레이
ir1.resume();
}
}
- 디지털 핀을 사용하게 되면 아날로그 신호보다 적은 색상표가 완성된다.
- 좀 더 다양한 색을 표현하고 싶으면 아날로그 신호를 사용해야 한다.
- PWM을 지원하는 디지털 핀을 사용하면 더 다양한 색상의 LED불빛을 만들 수 있다.
//적외선 통신을 하기 위한 라이브러리
#include <IRremote.h>
IRrecv ir1(11);//적외선 센서가 연결된 디지털 핀 번호 매핑
decode_results results; //수신된 적외선 신호를 저장할 변수
void setup()
{
ir1.enableIRIn(); //적외선 센서 활성화
Serial.begin(9600); //시리얼객체 초기화
pinMode(12, OUTPUT);
pinMode(9, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
}
void loop()
{
if(ir1.decode(&results)){ //전송되는 값이 0이 아니라면
Serial.println(results.value, HEX); //16진수 형태로 출력
if(results.value == 0xFDB04F){ //리모컨의 EQ버튼을 누르면
digitalWrite(12, HIGH); //LED on
}
else{ //EQ버튼 외의 다른 버튼 누르면
digitalWrite(12, LOW); //LED off
}
if(results.value == 0xFD30CF){ //0버튼이 눌렸을 경우
analogWrite(9, 120); //빨강
analogWrite(6, 30); //파랑
analogWrite(5, 180); //초록
}
//디지털 핀을 사용하게 되면 아날로그 신호보다 적은 색상표가 완성된다.
//좀 더 다양한 색을 표현하고 싶으면 아날로그 신호를 이용해야 한다.
delay(30); //0.03초 딜레이
ir1.resume();
}
}