#include <IRremote.h>
#define PIN_RECEIVER 12
IRrecv receiver(PIN_RECEIVER);
int A=7;
int B=8;
int C=2;
int D=3;
int E=4;
int F=6;
int G=5;
int RLED=11;
int GLED=10;
int BLED=9;
int mode = 0;
int Signal;
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(RLED, OUTPUT);
pinMode(GLED, OUTPUT);
pinMode(BLED, OUTPUT);
receiver.enableIRIn();
}
void loop()
{
if (receiver.decode()) {
translateIR();
receiver.resume();
}
}
void translateIR()
{
switch (receiver.decodedIRData.command) {
case 104:
digitalWrite(A, LOW); //0
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
break;
case 48:
digitalWrite(A, HIGH); //1
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
break;
case 24:
digitalWrite(A, LOW); //2
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
break;
case 122:
digitalWrite(A, LOW); //3
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
break;
case 16:
digitalWrite(A, HIGH); //4
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
break;
case 56:
digitalWrite(A, LOW); //5
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
break;
case 90:
digitalWrite(A, LOW); //6
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
break;
case 66:
digitalWrite(A, LOW); //7
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
break;
case 74:
digitalWrite(A, LOW); //8
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
break;
case 82:
digitalWrite(A, LOW); //9
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
break;
case 176:
digitalWrite(A, HIGH); //Clear
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
break;
}
Signal=receiver.decodedIRData.command;
mode = min(mode, 6);
mode = max(mode, 0);
if(Signal == 2){
mode = mode + 1;
delay(200);
}
if(Signal == 152){
mode = mode - 1;
delay(200);
}
if(Signal == 194){
mode = 0;
delay(200);
}
if(mode == 0){
analogWrite(RLED, 0);
analogWrite(GLED, 0);
analogWrite(BLED, 0);
}
if(mode == 1){
analogWrite(RLED, 0);
analogWrite(GLED, 0);
analogWrite(BLED, 255);
}
if(mode == 2){
analogWrite(RLED, 0);
analogWrite(GLED, 255);
analogWrite(BLED, 255);
}
if(mode == 3){
analogWrite(RLED, 0);
analogWrite(GLED, 255);
analogWrite(BLED, 0);
}
if(mode == 4){
analogWrite(RLED, 255);
analogWrite(GLED, 255);
analogWrite(BLED, 0);
}
if(mode == 5){
analogWrite(RLED, 255);
analogWrite(GLED, 170);
analogWrite(BLED, 0);
}
if(mode == 6){
analogWrite(RLED, 255);
analogWrite(GLED, 0);
analogWrite(BLED, 0);
}
}