#include #define volplus 0xFFA857 #define eq 0xFF906F #define zero 0xFF6897 #define hplus 0xFF9867 #define thplus 0xFFB04F #define one 0xFF30CF #define two 0xFF18E7 #define three 0xFF7A85 #define four 0xFF10EF #define five 0xFF38C7 #define six 0xFF5AA5 #define seven 0xFF42BD #define eight 0xFF4AB5 #define nine 0xFF52AD #define ledPin 13 int i; int mode=0; int redPin = 9; int greenPin = 10; int bluePin =11; long colors[11]={ 0x33FFFF, 0xFF3366, 0xFF3300, 0xFF6666, 0x99FF33, 0x00FF00, 0xFF00FF, 0xCC00CC, 0x00FFFF, 0x0000FF }; int RECV_PIN = 7; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver pinMode(4,OUTPUT);//Digital pin 4 connected to GND of TSOP 1738 pinMode(5,OUTPUT); //Digital pin 5 connected to VCC of TSOP 1738 digitalWrite(4,LOW); digitalWrite(5,HIGH); pinMode(redPin,OUTPUT); pinMode(greenPin,OUTPUT); pinMode(bluePin,OUTPUT); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if(results.value==eq) { mode=!mode; } if(results.value==zero) { i=0; } if(results.value==one) { i=1; } if(results.value==two) { i=2; } if(results.value==three) { i=3; } if(results.value==four) { i=4; } if(results.value==five) { i=5; }if(results.value==six) { i=6; }if(results.value==seven) { i=7; }if(results.value==eight) { i=8; }if(results.value==nine) { i=9; } irrecv.resume(); // Receive the next value } setcolor(colors[i]); } void setcolor( long rgb) { int red=rgb>>16; int green=(rgb>>8)& 0xFF; int blue=rgb & 0xFF; analogWrite(redPin,red); analogWrite(greenPin,green); analogWrite(bluePin,blue); delay(random(200)); if(mode) { analogWrite(redPin,0); analogWrite(greenPin,0); analogWrite(bluePin,0); delay(random(200)); } }