#include <IRremote.h>
#define ir_receiver_pin 12
#define greenPin 4
#define redPin 3
#define yellowPin 2
#define RED_COLOR 0x30
#define GREEN_COLOR 0x18
#define YELLOW_COLOR 0x7A
#define OFF_COLOR 0xA2
void setup(){
Serial.begin(9600);
IrReceiver.begin(ir_receiver_pin);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
setColor(0,0,0);
}
void loop(){
if(IrReceiver.decode()){
unsigned long irCode = IrReceiver.decodedIRData.command;
Serial.println(irCode, HEX);
handleIRCommand(irCode);
IrReceiver.resume();
}
}
void handleIRCommand(unsigned long irCode) {
switch (irCode) {
case RED_COLOR:
setColor(255, 0, 0); // Red
break;
case GREEN_COLOR:
setColor(0, 255, 0); // Green
break;
case YELLOW_COLOR:
setColor(0, 0, 255); // Yellow
break;
case OFF_COLOR:
setColor(0, 0, 0); // Off
break;
default:
Serial.println("Unknown command");
break;
}
}
void setColor(int red, int green, int yellow) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(yellowPin, yellow);
}