적외선 리모콘은 적외선(Infrared, IR)은 가시광선보다 파장이 길어서 눈에 보이지 않습니다. 때문에 TV나 에어컨 등의 가전기기에서 주로 통신을 위해 많이 사용합니다.
IR리모콘을 아두이노에서 사용하기 위해서는 IRremote라이브러리가 필요합니다.
아두이노 IDE - 툴 - 라이브러리 관리에서 IRremote를 다운로드해 주세요.
준비물: 아두이노 우노, 점퍼선, 브레드보드, IR 수신기, led 2개, 220Ω 저항 2개, IR 리모컨
적외선 수신기의 핀맵은 순서대로 Output/Gnd/Vcc입니다.
그리고 첫번째로 IR리모콘의 적외선 신호를 확인해야합니다.
그러기 위해서 위에 사진과 같은 예제를 실행시켜 줍니다.
아두이노 IDE - 파일 - 예제 - IRremote - IRrecvDumpV2 실행
실행하신후 IR 수신기에 리모콘 버튼을 눌러주면,
시리얼 모니터에 이렇게 리모컨 버튼에 대한 신호 정보가 나타나게 됩니다.
통신 프로토콜에 대한 많은 정보가 있지만
우리가 알고 싶은 데이터는 16진수로 나와있습니다.
0xFFA23D, 0xFFE21D등의 정보이죠.
이 정보를 가지고 IR리모콘을 통해 led를 on/off하는 예제를 실행시켜 보겠습니다.
회로도는 위와 같습니다.
/*
리모콘으로 적외선 센서에 값을 넣고, led를 제어
http://www.devicemart.co.kr/
*/
#include <IRremote.h>
int RECV_PIN = 11; // IR 수신기 D11에 연결
int LED_pin1 = 7; // led 연결
int LED_pin2 = 8;
IRrecv irrecv(RECV_PIN); // IR리모콘 사용을 위한 클래스 생성
decode_results decodedSignal; // IR리모콘으로부터 받은 데이터
void setup() {
Serial.begin(9600); // 시리얼 통신 시작
irrecv.enableIRIn(); // 리모콘 수신 시작
pinMode(LED_pin1, OUTPUT); // led 출력모드로 설정
pinMode(LED_pin2, OUTPUT);
}
void loop() {
if (irrecv.decode(&decodedSignal) == true){ // IR 수신값이 있는지 판단.
Serial.println(decodedSignal.value);
switch (decodedSignal.value) {
// 리모콘의 ch-버튼이 눌리면 LED 1 ON
case 0xFFA25D: digitalWrite(LED_pin1, HIGH); break;
// 리모콘의 ch+버튼이 눌리면 LED 1 OFF
case 0xFFE21D: digitalWrite(LED_pin1, LOW); break;
// 리모콘의 prev버튼이 눌리면 LED 2 ON
case 0xFF22DD: digitalWrite(LED_pin2, HIGH); break;
// 리모콘의 play버튼이 눌리면 LED 2 OFF
case 0xFFC23D: digitalWrite(LED_pin2, LOW); break;
}
irrecv.resume(); // IR 다음 데이터 수신
}
}
|
감사합니다.
아래링크에서 적외선 리모콘과 수신기를 구매하실 수 있습니다.
or
0 댓글