// Code By Satyam Singh
#include <IRremote.h>
#define PIN_RECEIVER 22   // Signal Pin of IR receiver
#define LED_red 19
#define LED_green 18
#define LED_blue 5
#define LED_yellow 17
#define LED_orange 16
#define LED_white 4
#define LED_purple 0
IRrecv receiver(PIN_RECEIVER);
void setup()
{
  Serial.begin(9600);
  pinMode(LED_red, OUTPUT);
  pinMode(LED_green, OUTPUT);
  pinMode(LED_blue, OUTPUT);
  pinMode(LED_yellow, OUTPUT);
  pinMode(LED_orange, OUTPUT);
  pinMode(LED_white, OUTPUT);
  pinMode(LED_purple, OUTPUT);
  receiver.enableIRIn(); // Start the receiver
}
void loop()
{
  // Checks received an IR signal
  if (receiver.decode()) {
    int data = receiver.decodedIRData.command;
    Serial.println(data);
    receiver.resume();  // Receive the next value
//ตัวอย่างการเขียนโปแกรมแบบ if-else
    // if(data== 48){
    //   digitalWrite(LED_red, HIGH);
    // }
    // else{
    //   digitalWrite(LED_red, LOW);
    // }
//ตัวอย่างการเขียนโปรแกรมแบบ switch-case
switch(data){
      case 48:
        digitalWrite(LED_red, !digitalRead(LED_red));
        break;
      case 24:
        digitalWrite(LED_green, !digitalRead(LED_green));
        break;
      case 122:
        digitalWrite(LED_blue, !digitalRead(LED_blue));
        break;
      case 16:
        digitalWrite(LED_yellow, !digitalRead(LED_yellow));
        break;
      case 56:
        digitalWrite(LED_orange, !digitalRead(LED_orange));
        break;
      case 90:
        digitalWrite(LED_white, !digitalRead(LED_white));
        break;
      case 66:
        digitalWrite(LED_purple, !digitalRead(LED_purple));
        break;
      case 104:
        digitalWrite(LED_red, LOW);
        digitalWrite(LED_green, LOW);
        digitalWrite(LED_blue, LOW);
        digitalWrite(LED_yellow, LOW);
        digitalWrite(LED_orange, LOW);
        digitalWrite(LED_white, LOW);
        digitalWrite(LED_purple, LOW);
        break;
      default:
        digitalWrite(LED_red, LOW);
        digitalWrite(LED_green, LOW);
        digitalWrite(LED_blue, LOW);
        digitalWrite(LED_yellow, LOW);
        digitalWrite(LED_orange, LOW);
        digitalWrite(LED_white, LOW);
        digitalWrite(LED_purple, LOW);
        break;
}
  }
}  กดปุ่มเลขที่รีโมท 
 เพื่อเปิด และ ปิด LED 
 กดเลข 1 = หลอดสีแดง
กดเลข 2  = หลอดสีเขียว
กดเลข 3  = หลอดสีน้ำเงิน
กดเลข 4  = หลอดสีเหลือ
กดเลข 5  = หลอดสีม่วง
กดเลข 6  = หลอดสีขาว
กดเลข 7  = หลอดสีม่วง
กดเลข 0  = ปิดทุกหลอด