#include <IRremote.h>
#define PIN_RECEIVER 2 // Signal Pin of IR receiver
// Power Button to reset
// Even and Odd Patterns
IRrecv receiver(PIN_RECEIVER);
byte leds[9] = { 12, 11, 10, 9, 8, 7, 6, 5, 4 };
int interval = 500;
void setup()
{
receiver.enableIRIn(); // Start the receiver
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
}
}
void loop()
{
// Checks received an IR signal
if (receiver.decode()) {
translateIR();
receiver.resume(); // Receive the next value
}
}
void translateIR()
{
// Takes command based on IR code received
switch (receiver.decodedIRData.command)
{
case 162: //POWER
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
}
delay(interval);
break;
case 48: //num: 1
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], HIGH);
}
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
delay(interval);
}
break;
case 24: //num: 2
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
}
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], HIGH);
delay(interval);
}
break;
case 122: //num: 3
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], HIGH);
}
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
delay(interval);
}
break;
case 16: //num: 4
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
}
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], HIGH);
delay(interval);
}
break;
case 56: //num: 5
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], HIGH);
}
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
delay(interval);
}
break;
case 90: //num: 6
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
}
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], HIGH);
delay(interval);
}
break;
case 66: //num: 7
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], HIGH);
}
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
delay(interval);
}
break;
case 74: //num: 8
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
}
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], HIGH);
delay(interval);
}
break;
case 82: //num: 9
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], HIGH);
}
for(int lednum = 0; lednum < 9; lednum++)
{
digitalWrite(leds[lednum], LOW);
delay(interval);
}
break;
}
}