#include <IRremote.h>
#define PIN_RECEIVER 27 // Signal Pin of IR receiver
const int rgbPins[] = { 21, 19, 18 };
int pwmRGB[] = { 0, 0, 0 };
int flag = 0;
IRrecv receiver(PIN_RECEIVER);
void setup()
{
receiver.enableIRIn(); // Start the receiver
Serial.begin(115200); //
Serial.println("Hello Arduino\n");
attachInterrupt(digitalPinToInterrupt(PIN_RECEIVER), IRdetect, CHANGE);
}
void loop()
{
// Checks received an IR signal
// if (receiver.decode()) {
// translateIR();
// receiver.resume(); // Receive the next value
// }
ledBegin();
}
// void lcdPrint(char* text)
// {
// lcd.clear();
// lcd.setCursor(0, 0);
// lcd.print("button pressed:");
// lcd.setCursor(0, 1);
// lcd.print(text);
// lcd.print(" code: ");
// lcd.print(receiver.decodedIRData.command);
// }
void translateIR()
{
// Takes command based on IR code received
switch (receiver.decodedIRData.command) {
case 162:
Serial.println("POWER");
Serial.println(receiver.decodedIRData.command);
pwmRGB[0] = 255;
pwmRGB[1] = 255;
pwmRGB[2] = 255;
// ledBegin();
break;
case 226:
Serial.println("MENU");
Serial.println(receiver.decodedIRData.command);
break;
case 34:
Serial.println("TEST");
Serial.println(receiver.decodedIRData.command);
break;
case 2:
Serial.println("PLUS");
Serial.println(receiver.decodedIRData.command);
flag = flag + 1;
if (flag>255)
{
flag = 255;
}
Serial.println(flag);
pwmRGB[1] = flag;
break;
case 194:
Serial.println("BACK");
Serial.println(receiver.decodedIRData.command);
break;
case 224:
Serial.println("PREV.");
Serial.println(receiver.decodedIRData.command);
break;
case 168:
Serial.println("PLAY");
Serial.println(receiver.decodedIRData.command);
break;
case 144:
Serial.println("NEXT");
Serial.println(receiver.decodedIRData.command);
break;
case 104:
Serial.println("num: 0");
Serial.println(receiver.decodedIRData.command);
break;
case 152:
Serial.println("MINUS");
Serial.println(receiver.decodedIRData.command);
break;
case 176:
Serial.println("key: C");
Serial.println(receiver.decodedIRData.command);
break;
case 48:
Serial.println("num: 1");
Serial.println(receiver.decodedIRData.command);
break;
case 24:
Serial.println("num: 2");
Serial.println(receiver.decodedIRData.command);
break;
case 122:
Serial.println("num: 3");
Serial.println(receiver.decodedIRData.command);
break;
case 16:
Serial.println("num: 4");
Serial.println(receiver.decodedIRData.command);
break;
case 56:
Serial.println("num: 5");
Serial.println(receiver.decodedIRData.command);
break;
case 90:
Serial.println("num: 6");
Serial.println(receiver.decodedIRData.command);
break;
case 66:
Serial.println("num: 7");
Serial.println(receiver.decodedIRData.command);
break;
case 74:
Serial.println("num: 8");
Serial.println(receiver.decodedIRData.command);
break;
case 82:
Serial.println("num: 9");
Serial.println(receiver.decodedIRData.command);
break;
// Serial.println(" ");
// lcd.clear();
// lcd.print(receiver.decodedIRData.command);
// lcd.print(" other button");
}
}
void ledBegin()
{
for(int i=0; i<3; i++){
if(pwmRGB[i] < 0){
pwmRGB[i] = 0;
}else if(pwmRGB[i] > 255){
pwmRGB[i] = 255;
}
analogWrite(rgbPins[i], pgm_read_byte(&pwmRGB[i]));
}
}
void IRdetect()
{
if (receiver.decode()) {
translateIR();
receiver.resume(); // Receive the next value
}
}