
/*****************Code Starts Here***********************

/*
Author: Noreddine Kessa
Date : 15 jan 2012
Project: Infrared program arduino board:
Purpose: Controle an arduino IO board using a remote control.
*/



#include <IRremote.h>

#define button1 16724175
#define button2 16718055
#define button3 16743045
#define button4 16716015
#define button5 16726215
#define button6 16734885
#define button7 16728765
#define button8 16730805
#define LED1  11
#define LED2  12
#define LED3  9
#define RECV_PIN  10
#define del 50
#define flashNumber 100



int times ;
IRrecv irrecv(RECV_PIN);
decode_results results;
long lReceived = 0 ;

void setup()
{
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(RECV_PIN , INPUT);

  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
 
}

void loop() {
  if (irrecv.decode(&results)) {
    lReceived = results.value ;
    Serial.println(results.value);
      switch (lReceived) {
    case button1:
      digitalWrite (LED1, HIGH);
      Serial.println(LED1);
      break;
    case button4:
       digitalWrite(LED1, LOW);
       Serial.println(LED1);
      break;
    case button2:
      digitalWrite( LED2, HIGH);
      Serial.println(LED2);
      break;
    case button5:
       digitalWrite(LED2, LOW);
       Serial.println(LED2);
      break;
    case button3:
      digitalWrite (LED3, HIGH);
      Serial.println(LED3);
      break;
    case button6:
       digitalWrite(LED3, LOW);
       Serial.println(LED3);
      break;
     case button7:
       times = flashNumber;
flash :
     
       digitalWrite (LED1, LOW);
       digitalWrite (LED2, LOW);
       digitalWrite (LED3, LOW);
        if (!(times--))
       {
         goto brk ;
       }
       
       //delay(del);
       digitalWrite (LED1, HIGH);
       delay(del);
       digitalWrite (LED1, LOW);
       digitalWrite (LED2, HIGH);
       delay(del);
       digitalWrite (LED2, LOW);
       digitalWrite (LED3, HIGH);
       delay(del);
       goto flash ;
brk:
       break;
   
     
    }
    irrecv.resume(); // Receive the next value
  }
}
//*****************Code Ends  Here***********************


