/* The following program was written and created by O*** Ro******m - O'*****r, known anonomously by the username Lord Akil Imenand.
* The following code is only to be used for educational and private purposes.
* The pin setup is as follows:
* IR Reciever - Arduino:
* G - Grnd
* R - 5v
* Y - Digital 11(Eleven)
* Arduino - RGB LED:
* Grnd - cathode(long leg)
* Digital 2 - red leg (Alone next to the cathode)
* Digital 3 - green leg (Opposite the red leg, next to the cathode)
* Digital 4 - blue leg (Only one left)
* Arduino - Warning LED:
* Grnd - cathode(short leg)
* Digital 5 - anode (long leg)
*
* The controls are as follows:
* On button: white
* Func/Stop button: off
* Vol + button: red on
* Vol - button: red off
* Fast Forward button: green on
* Reverse button: green off
* Up button: blue on
* Down button: blue off
* EQ button: white
* 1: red
* 2: green
* 3: blue
* 4: yellow
* 5: purple
* 6: teal
* 7: red off
* 8: green off
* 9: blue off
* The pause, 0, and ST/Rept buttons don't do anything.
*/
#include "IRremote.h"
int receiver = 11;
IRrecv irrecv(receiver);
decode_results results;
void translateIR()
{
switch(results.value)
{
case 0xFFA25D: digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); break;
case 0xFFE21D: digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); break;
case 0xFF629D: digitalWrite(2, HIGH); break;
case 0xFF22DD: digitalWrite(3, LOW); break;
case 0xFF02FD: digitalWrite(5, HIGH); delay(20); digitalWrite(5, LOW); delay(20); digitalWrite(5, HIGH); delay(20); digitalWrite(5, LOW); break;
case 0xFFC23D: digitalWrite(3, HIGH); break;
case 0xFFE01F: digitalWrite(4, LOW); break;
case 0xFFA857: digitalWrite(2, LOW); break;
case 0xFF906F: digitalWrite(4, HIGH); break;
case 0xFF9867: digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); break;
case 0xFFB04F: digitalWrite(5, HIGH); delay(20); digitalWrite(5, LOW); delay(20); digitalWrite(5, HIGH); delay(20); digitalWrite(5, LOW); break;
case 0xFF6897: digitalWrite(5, HIGH); delay(20); digitalWrite(5, LOW); delay(20); digitalWrite(5, HIGH); delay(20); digitalWrite(5, LOW); break;
case 0xFF30CF: digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); break;
case 0xFF18E7: digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, LOW); break;
case 0xFF7A85: digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); break;
case 0xFF10EF: digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, LOW); break;
case 0xFF38C7: digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, HIGH); break;
case 0xFF5AA5: digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, HIGH); break;
case 0xFF42BD: digitalWrite(2, LOW); break;
case 0xFF4AB5: digitalWrite(3, LOW); break;
case 0xFF52AD: digitalWrite(4, LOW); break;
case 0xFFFFFFFF: digitalWrite(5, HIGH); delay(20); digitalWrite(5, LOW); delay(20); digitalWrite(5, HIGH); delay(20); digitalWrite(5, LOW); break;
default:
digitalWrite(5, HIGH); delay(20); digitalWrite(5, LOW); delay(20); digitalWrite(5, HIGH); delay(20); digitalWrite(5, LOW);
}// End Case
delay(400); //How long to wait before giving repeat signal
} //END translateIR
void setup()
{
Serial.begin(9600);
Serial.println("IR Receiver Button Decode");
irrecv.enableIRIn();
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
void loop()
{
if (irrecv.decode(&results))
{
translateIR();
irrecv.resume();
}
}
Comments