적외선 신호포멧은 NEC, SONY, RC5, RC6 등 여러가지가 있으나 대표적으로 NEC(아시아 태평양 연안), RC5(유럽 등) 포멧이 주로 이용됩니다. 삼성과 LG는 NEC포멧을 사용합니다.
NEC 포멧은 아래와 같은 배열로 구성되어야 합니다.
Lead code
|
Custom code (8bit) |
Custom code (8bit) |
Data code (8bit) |
Data code (반전된 8bit) |
Lead code
- 신호가 시작됨을 알립니다.
삼성 : 4.5ms HIGH, 4.5ms LOW
LG : 9ms HIGH, 4.5ms LOW
Custom code
- 제조사와 제품별 구분용입니다.
16bit를 통째로 이용하거나 8bit와 반전된 8bit를 이용하기도 합니다.
Data code
- 데이타를 표시합니다
8bit 와 반전된 8bit를 이용합니다
포멧의 개념은 대충 이렇게 구성되는구나라고만 이해하면 됩니다.
IR 센서 이미지가 좀 흐려서 잘 안보이네요. x모양 이미지가 수신램프이고요 그 아래로 3개의 다리가 핀으로 나와 있는 형태입니다. 왼쪽이 신호, 중간이 GND, 오른쪽이 VCC입니다. (다른 형태일 수도 있으나 보통 이렇게 구성되어 있습니다)
다음으로 IR 라이브러리인 IRremote 를 다운로드 해야 합니다
아래 링크를 클릭하고 다운로드 후에 라이브러리 폴더에 압축을 해제합니다.
https://github.com/shirriff/Arduino-IRremote/archive/master.zip
제 경우엔 라이브러리 폴더가 아래와 같은 위치네요
c:UsersAdministratorDocumentsArduinolibraries
이제 스케치를 열어서 코딩을 합니다.
#include <IRremote.h> #include <IRremoteInt.h>
IRrecv irrecv(A5); //IRrecv 객체를 만듭니다 (아날로그 5번핀으로 수신) decode_results result; //수신받은 데이타를 저장할 구조체를 만듭니다
void setup(){ Serial.begin(9600); irrecv.enableIRIn(); //수신을 시작합니다 irrecv.blink13(true); //수신받았을 경우 아두이노 13번핀을 깜빡입니다 }
void loop(){ if(!irrecv.decode(&result)) return; //수신받은게 없으면 아래를 수행하지 않습니다.
if(result.decode_type == SAMSUNG){ //삼성리모콘이면 Serial.println("Samsung"); }else if(result.decode_type == LG){ //LG리모콘이면 Serial.println("LG"); }else{ //기타 NEC, SONY, RC5 등을 쓴다면 else if 로 추가해주세요
Serial.println("기타"); }
Serial.print("데이타: "); Serial.println(result.value, HEX); //받은 데이타를 16진수로 표시합니다 Serial.print("길이: "); Serial.println(result.bits, DEC); //데이타의 길이를 10진수로 표시합니다. delay(10); irrecv.resume(); // 다시 수신할 수 있도록 합니다 } |
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | IR 리모콘 코드 따기 [1] | 묵묵이 | 2017.02.10 | 14 |
공지 | rc 카 작업용 [1] | 묵묵이 | 2017.02.07 | 14 |
공지 | [sketch_mydust] 미세멘지 측정기 작업 용 [2] | 묵묵이 | 2017.02.07 | 35 |
23 | sprintf2 사용법 | 묵묵이 | 2017.02.07 | 5 |
22 |
디지털 온 습도계 사용 DHT22
[2] ![]() | 묵묵이 | 2017.02.06 | 5 |
21 | 미세먼지 측정기 참조 [3] | 묵묵이 | 2017.02.06 | 5 |
20 | test ir 리모컨 테스트 [1] | 묵묵이 | 2017.01.23 | 5 |
19 | ir 리모컨 값 기록 | 묵묵이 | 2017.01.18 | 2 |
18 | 아두이노 IR 리모컨 R 신호 반복문제 test | 묵묵이 | 2017.01.18 | 6 |
17 | 아두이노 톤함수를 사용하지 않고 부저 소리내기 | 묵묵이 | 2017.01.17 | 1 |
16 | 키보드로 멜로디 연주하기 | 묵묵이 | 2017.01.17 | 4 |
15 | 아두이노에 작은별 멜로디 스케치 | 묵묵이 | 2017.01.17 | 4 |
14 |
아두이노 미세먼지 측정기 .. 만들기
![]() | 묵묵이 | 2017.01.17 | 2 |
13 | 서버모터 테스트 소스 | 묵묵이 | 2017.01.16 | 7 |
12 | 서보모터 제어하기 | 묵묵이 | 2017.01.16 | 1 |
11 | 아두이노 프로 미니 보드와 USB TO TTL 모듈을 이용한 프로그램 업로드 | 묵묵이 | 2017.01.13 | 1 |
10 |
ir 리모컨 수신 test ( 현제 작업중 소스)
[1] ![]() | 묵묵이 | 2017.01.12 | 4 |
9 | ir 적외선 센서를 이용한 거리 측청 - test 잘됨 | 묵묵이 | 2017.01.12 | 2 |
8 | 초음파 센서 참고 소스 [1] | 묵묵이 | 2017.01.12 | 4 |
» | 아두이노 기초강좌 - IR 센서 [1] | 묵묵이 | 2017.01.11 | 7 |
6 | Arduino 아두이노 - relay module control 릴레이 모듈 제어 [1] | 묵묵이 | 2017.01.10 | 19 |
5 | 아두이노 나노 알아보기 | 묵묵이 | 2017.01.10 | 2 |
#include "PIR.h" //- 센서 제어 라이브러리 헤더 파일
#define LED_PIN 11 //- LED 연결 핀 번호
#define PIR_PIN 39 //- PIR 센서 연결 핀 번호
PIR pir; //- PIR 센서 객체
//- 초기화 함수 구현
void setup() {
pir.begin(PIR_PIN); //- PIR 센서 초기화
pinMode(LED_PIN, OUTPUT); //- LED 초기화
void loop() {
int nExist = pir.readValue();
// 물체 감지여부 값 읽어오기