아두이노-적외선 통신하기

아두이노

아두이노-적외선 통신하기

기본 제공되는 적외선 통신 프로그램을 LED와 결합하여 보았습니다.

위 이미지는 적외선 모듈 결합도 입니다.
LED는 아두이노 핀 2,3,4번을 이용하였습니다.
리모컨 의 [CH-]를 누르면 가장 왼쪽 LED가 밝혀지고 [CH]를 누르면 가운데 LED
[CH+]를 누르면 가장 오른쪽 LED가 켜집니다.
[ << ] 이런모양의 단추(두번째줄 첫번째칸)를 누르면 LED 3개가 파도타기처럼 점멸합니다.
[ - ]단추를 누르면 점멸속도가 0.1초씩 빨라자고 [ + ] 를 누르면 점멸속도가 0.1초씩 느려집니다



#include <IRremote.h>

int RECV_PIN  = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

int key=0,i=1,c=1,speed=1000;

void setup()

{

  Serial.begin(9600);

  irrecv.enableIRIn(); //Start the receiver

  pinMode(2, OUTPUT);

  pinMode(3, OUTPUT);

  pinMode(4, OUTPUT);

 }

void loop()

{

   int j,b;

  if (irrecv.decode(&results)){


     switch ( results.value)

      {

       case 16753245 :

          Serial.println("Channel -");

          digitalWrite(2, HIGH);

          digitalWrite(3, LOW);

          digitalWrite(4, LOW);

          key=0;

          break;

       case 16736925  :  

          Serial.println("Channel");

          digitalWrite(3, HIGH);

          digitalWrite(2, LOW);

          digitalWrite(4, LOW);

          key=0;  

          break;

       case 16769565  :  

          Serial.println("Channel +");

          Serial.println("Channel +");

          digitalWrite(4, HIGH);

          digitalWrite(2, LOW);

          digitalWrite(3, LOW);

          key=0;

          break;    

      case 16720605  :      

         key=1;

          break;

      case 16769055  :      

         key=1;

         speed=speed-100;

         if( speed <0 ) speed=0;

          break;    

     case 16754775  :      

         key=1;

         speed=speed+100;

         if( speed >20000 ) speed=20000;

          break;         

       default  :

          Serial.println(results.value); 

      }

    irrecv.resume(); //Receive the next value

  }

   if (key==1)

    {

       for(b=2;b<5;b++)

        {

        i=i+c;  

        if(i>=4 && c>0) i=4,c=-1;

        if(i<=2 && c<0) i=2,c=1;

        for (j=2; j<5; j++)

           {

            if( i == j) digitalWrite(i, HIGH);

            if(i != j){

                       digitalWrite(j, LOW);

                       digitalWrite(j, LOW);   

                      }

           }

          delay(speed); 

         }

      }

  }

Comments

Category
State
  • 현재 접속자 7 명
  • 오늘 방문자 165 명
  • 어제 방문자 234 명
  • 최대 방문자 394 명
  • 전체 방문자 301,204 명
  • 전체 게시물 2,567 개
  • 전체 댓글수 105 개
  • 전체 회원수 76 명
Facebook Twitter GooglePlus KakaoStory NaverBand