#include <IRremote.h>
// LED Lights
int LED4 = 2, LED3 = 3, LED2 = 4, LED1 = 5;
// RGB
int R=8,G=7,B=6;
// recieve Pin of IR Sensor
const int recievePin=9;
IRrecv irrecv(recievePin);
decode_results results;
int count = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
// Setting PinModes for LED
for(int i=2; i<9; i++){
pinMode(i, OUTPUT);
Serial.print("setting pin");
Serial.println(i);
}
irrecv.begin(recievePin, LED_BUILTIN);
Serial.print("Ready to receive IR signals of protocols: ");
printActiveIRProtocols(&Serial);
setColor(0,0,0);
}
void loop() {
remoteRecieve();
setCount(count);
Serial.println("Count : " + String(count));
}
void setCount(int c){
// Maybe use a small agorithm
// digital write (n,high)
// digital write (n+1,Low)
switch (c) {
case 0:
digitalWrite(LED1, 0);
break;
case 1:
digitalWrite(LED1, 1);
digitalWrite(LED2, LOW);
break;
case 2:
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
break;
case 3:
digitalWrite(LED3, HIGH);
digitalWrite(LED4, LOW);
break;
case 4:
digitalWrite(LED4, HIGH);
setColor(0,0,0);
break;
case 5:
setColor(0,0,255);//3rd Color
break;
case 6:
setColor(0,255,0);//2nd Color
break;
case 7:
setColor(255,0,0);//3rd Color
}
// Imput Correction
if (count>7){
count=7;
}
else if (count<0){
count=0;
}
Serial.println(count);
}
// Remove the Serial Outputs
void remoteRecieve(){
if (irrecv.decode()) {
if (irrecv.decodedIRData.protocol == UNKNOWN) {
Serial.println(F("Received noise or an unknown (or not yet enabled) protocol"));
irrecv.printIRResultRawFormatted(&Serial, true);
irrecv.resume();
} else {
irrecv.resume();
Serial.print("0x");
Serial.println(irrecv.decodedIRData.decodedRawData, HEX);
}
// Serial.println();
if (irrecv.decodedIRData.decodedRawData == 0xFD02FF00) {
// If you press + This will print
Serial.println("Volume Up");
count++;
} else if (irrecv.decodedIRData.decodedRawData == 0x6798FF00) {
// 0x6798FF00
Serial.println("Volume down");
count--;
}
}
}
void setColor(int red,int green, int blue){
//Code correction for cathode
red = abs(255-red);
blue= abs(255-blue);
green= abs(255-green);
analogWrite(R, red);
analogWrite(G, green);
analogWrite(B, blue);
}
void check_CMD(int command){
switch (command)
{
case 0xFD02FF00:
count++;
break;
default:
break;
}
}