본문 바로가기

공대생 주석마루/아두이노 UNO

(22) 적외선 리모콘(IR)으로 LED 제어하기

Youtube주석마루



적외선 리모콘/수신 센서란

눈에 보이지 않는 적외선을 이용해 신호를 주고받는 모듈이다.

리모콘 버튼을 누르면 포토트랜지스터를 이용해 적외선 신호를 보내고, 

적외선 수신 센서를 통해 적외선 신호를 받아 보드로 전송하는 역할을 한다.

이번 실험에는 적외선 리모콘과 수신 센서를 이용해 LED를 제어해보고자 한다.


구성품

아두이노 우노 보드,브렛보드,적외선 수신 센서,리모콘,저항,LED,연결선



코드

#include <IRremote.h> //리모콘 제어에 필요한 헤더 파일 지정(라이브러리 파일 추가 하셔야 합니다)

int remotecon = A1; //리모콘의 아날로그 연결 단자

int led1 = 7; //LED의 디지털 연결 단자

int led2 = 8;

int led3 = 9;

IRrecv irrecv(remotecon); //헤더 파일 내 함수 이용

decode_results results;


void setup() {

Serial.begin(9600); //아날로그 통신 속도 설정

irrecv.enableIRIn(); //수신 센서 작동

pinMode(led1,OUTPUT); //LED 출력 설정

pinMode(led2,OUTPUT);

pinMode(led3,OUTPUT);

}


void loop() {

  if(irrecv.decode(&results)) //리모콘으로부터 신호를 받으면 코드 작동

  {

    Serial.println(results.value,HEX); //수신값을 시리얼 모니터에 나타냄

    switch (results.value) //해당 수신값을 받으면, LED 점멸

    {

      case 0xff6897:

      digitalWrite(led1,HIGH);

      break;

      case 0xff30cf:

      digitalWrite(led1,LOW);

      break;

      case 0xff18e7:

      digitalWrite(led2,HIGH);

      break;

      case 0xff7a85:

      digitalWrite(led2,LOW);

      break;

      case 0xff10ef:

      digitalWrite(led3,HIGH);

      break;

      case 0xff38c7:

      digitalWrite(led3,LOW);

      break;

    }

    irrecv.resume(); //다시 신호를 받도록 대기

  }

}

코드는 

초록 led는 led1으로 설정, 0번으로 켜짐(0xff6897) 1번으로 꺼짐(0xff30cf)

파랑 led는 led2으로 설정, 2번으로 켜짐(0xff18e7) 3번으로 꺼짐(0xff7a85)

빨강 led는 led3으로 설정, 4번으로 켜짐( 0xff10ef) 5번으로 꺼짐(0xff38c7)


회로 연결

실제 연결 모습

LED 연결은 저항을 이용한 방법을 사용,

적외선 수신 센서는 1번 핀은 아날로그(A1)핀과 연결, 2번 핀은 GND, 3번 핀은 VCC(5V)와 연결한다.

-----

Frizing에는 없는 모듈이 많아서 아무래도 다른 프로그램이 필요한 것 같다.