[아두이노 공부] 7. 적외선(IR) 센서 사용해보기  - 적외선 수신값 확인
공부/아두이노, 전자·전기

[아두이노 공부] 7. 적외선(IR) 센서 사용해보기 - 적외선 수신값 확인

안녕하세요.

기계과감성쟁이입니다.

 

오늘은

적외선 수신모듈을 활용한 적외선 수신값 확인을 공부했어요.

 

두근거린다고 생각해야 재밌다.

 

회로도


 

회로도 재탕. 바뀐게 없기 때문.

아두이노 회로도 그리는 프로그램

좋은 거 어디 없나... 무료로......

 

전과 같이,

 

전원과 GND 확장을 위해 브레드 보드를 이용하였다.

5V 를 (+), GND를 (-)에 꽂고,

10번에 수신기, 11번에 송신기, 12번에 LED를 꽂았다.

 

달라지는 것은 사용하는 코드!

 

IRremote 라이브러리 다운 받기


이번 코드에서는 IRremote 라는 라이브러리를 사용합니다.

 

라이브러리 제작자들은 IRremote 라이브러리를

'Infrared remote library for Arduino: send and receive infrared signals with multiple protocols'

라고 말하네요.

 

'아두이노 적외선 통신을 위한 라이브러리 : 여러 프로토콜의 적외선 신호들을 송·수신 할 수 있는'

정도로 해석할 수 있습니다.

 

프로토콜은 기기들끼리 통신할 때 사용하는 통신규약인데, 쉽게 말해 서류 양식, 문법 등으로 이해하시면 됩니다.

이 단어는 리모콘을 만들 때 설명할게요.

 

아무튼, 해당 라이브러리를 사용하기 위해선

직접 다운받아주셔야 해요!

 

아두이노 IDE - 툴 - 라이브러리 관리 - 'IRremote' 를 검색하여 다운 받아주세요.

 

혹은,

 

 

Arduino-IRremote/Arduino-IRremote

Infrared remote library for Arduino: send and receive infrared signals with multiple protocols - Arduino-IRremote/Arduino-IRremote

github.com

해당 사이트에 들어가셔서 zip 파일을 다운받고

아두이노가 설치된 폴더 안 library 폴더 안에 압축을 풀어주시면 됩니다.

 

코드 작성과 결과값


#include <IRremote.h>
int ir_recieve = 10; 
int ir_trans = 11;
IRrecv irrecv(ir_recieve); //IRrecv 객체생성
decode_results signals;  //수신 데이터 저장 구조체

void setup()
{
    Serial.begin(9600);   //시리얼모니터 시작
    irrecv.enableIRIn();   //수신시작
    pinMode(ir_trans, OUTPUT);
}
void loop() {
  digitalWrite(ir_trans, 1); // 송신기 on 
  delay(1000);
if (irrecv.decode(&signals)) {
        Serial.println(signals.value, HEX); // 수신값을 16진법으로 출력
        Serial.println(signals.bits, DEC); // 비트를 10진법으로 출력
        irrecv.resume(); // 계속해!
    }

}

 

라는 코드를 입력해주시면

 

적외선 수신값

처럼 적외선값이 16진법으로, 비트가 10진법으로 출력됩니다.

 

근데 값이 들쭉날쭉이네요. 저번 게시글처럼 송신부가 오락가락 하나봅니다.

그래서...

 

활용 및 예고


 

세월의 풍파를 정직하게 맞았음에도

아직 멀쩡히 작동하고 있는 저희집 리모콘을 들고 왔습니다.

 

수신부에 대고 버튼을 눌러 보았습니다.

 

 

버튼들끼리 나름의 통일성을 가지는게, 수신부가 정상이긴 한 것 같나보네요.

 

근데 저 FFFFFFFF 는 무엇이냐?

이건 프로토콜과 연관되어 있습니다. 마찬가지로 다음 시간에...

 

그러면 저 신호를 송신 모듈로 다시 TV에 쏴주면!?

 

TV가 작동되겠죠?

이걸 이용해 언젠가 리모콘을 만들겁니다. 일단은 시험기간이므로ㅠㅠ;;

 


시험기간이라 한동안 글이 좀 짧아질 것 같아요 엉엉

그래도 글을 쓰는게 어딘가요... 다 먹고 살자고 하는 건데 ㅎㅎ;