적외선 수신기, 리모컨
본문에서는 리모컨의 0버튼을 누를 시 LED가 켜지고 다른 버튼을 누를 시 꺼지는 예제를 진행합니다.
- 적외선 수신기
- 38KHz 대역의 적외선을 수신하여 출력하는 센서입니다.
- 수신만 가능합니다.
- IR 리모컨
- 적외선 수신기로 수신할수 있는 신호를 보내는 리모컨입니다.
스펙
- 적외선 수신 센서
- 작동 전압 : 2.7V ~ 5.5V
- 수신 각도 : 약 90도
- 적외선 주파수 : 38KHz
- 리모컨
- 작동 전압 : 5V
- 주파수 : 38KHz
하드웨어
- 아두이노 우노
- 적외선 수신기
- LED
- 저항 220옴
- 적외선 리모컨
연결
| 아두이노 우노 | 적외선 수신 센서 | LED | 저항 |
| 5V | VCC | ||
| GND | GND | - | |
| A0 | 연결 | ||
| D8 | + | ||
| OUT | 연결 |
라이브러리
- IRremote by shirriff, z3t0, ArminJo(라이브러리 매니저로 설치)
예제 코드
첫번째 코드를 업로드하여 시리얼모니터를 켠 뒤 리모콘의 버튼을 누르면 버튼이 입력되었을 경우에 해당하는 값이 무엇인지 알 수 있다.
0을 눌렀을때의 값을 두번재 코드의 값을 집어넣으라는 주석이 잇는 부분에 넣으면 0을 눌렀을 때 LED가 점등한다.
컨트롤러 값 확인
#include <IRremote.h>
#define irOut A0
IRrecv irrecv(irOut);
void setup() {
Serial.begin(9600);
Serial.println("Serial start");
irrecv.enableIRIn();
}
void loop() {
if (IrReceiver.decode()) {
Serial.println(IrReceiver.decodedIRData.decodedRawData);
irrecv.resume();
}
}
메인 코드
#include <IRremote.h>
#define irOut A0
#define led 8
IRrecv irrecv(irOut);
void setup() {
pinMode(led, OUTPUT);
digitalWriteFast(led, LOW);
Serial.begin(9600);
Serial.println("Serial start");
irrecv.enableIRIn();
}
void loop() {
if (IrReceiver.decode()) {
if (IrReceiver.decodedIRData.decodedRawData == 3910598400)
digitalWrite(led, HIGH);
else
digitalWrite(led, LOW);
irrecv.resume();
}
}
실행 결과
구매 링크
적외선 리모컨
적외선 수신기