#include <IRremote.hpp>
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long key = 0;
int rauttLed = 3;
int granntLed = 5;
int blattLed = 6;
bool kveikt = false;
bool kveiktR = false;
bool kveiktG = false;
bool kveiktB = false;
bool Loop = false;
int i = 0;
int styrkur = 0;
int styrkurR = styrkur;
int styrkurB = styrkur;
int styrkurG = styrkur;
void decode(){
if (IrReceiver.decode()) {
Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);
IrReceiver.printIRResultShort(&Serial);
IrReceiver.printIRSendUsage(&Serial);
IrReceiver.resume();
delay(100);
}
}
void prenta(){
Serial.println("R: ");
Serial.println(styrkurR);
Serial.println("B: ");
Serial.println(styrkurB);
Serial.println("G: ");
Serial.println(styrkurG);
}
void value_vorn(){
if(styrkurR>255){
styrkurR = 255;
}
if(styrkurR<=0){
styrkurR = 0;
}
if(styrkurG>255){
styrkurG = 255;
}
if(styrkurG<0){
styrkurG = 0;
}
if(styrkurB>255){
styrkurB = 255;
}
if(styrkurB<0){
styrkurB = 0;
}
if(styrkur>255){
styrkur = 255;
}
if(styrkur<0){
styrkur = 0;
}
}
void setup()
{
Serial.begin(9600);
pinMode(rauttLed, OUTPUT);
pinMode(granntLed, OUTPUT);
pinMode(blattLed, OUTPUT);
analogWrite(rauttLed, styrkur);
analogWrite(granntLed, styrkur);
analogWrite(blattLed, styrkur);
IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK);
if(IrReceiver.decodedIRData.decodedRawData == 0xFFFFFFFF){
IrReceiver.decodedIRData.decodedRawData = key;
}
}
void loop() {
value_vorn();
if(Loop == false){
analogWrite(rauttLed, styrkurR);
analogWrite(granntLed, styrkurG);
analogWrite(blattLed, styrkurB);
}
decode();
if (IrReceiver.decodedIRData.decodedRawData == 0x5DA2FF00){
if(kveikt == true){
kveikt = false;
styrkur = 0;
kveiktR = false;
kveiktG = false;
kveiktB = false;
}
else{
kveikt = true;
styrkur = 255;
kveiktR = true;
kveiktG = true;
kveiktB = true;
}
styrkurR = styrkur;
styrkurB = styrkur;
styrkurG = styrkur;
}
if(kveikt == true){
switch (IrReceiver.decodedIRData.decodedRawData){
case 0xFD02FF00:
styrkurR = styrkurR + 25;
styrkurB = styrkurB + 25;
styrkurG = styrkurG + 25;
prenta();
break;
case 0x6798FF00:
styrkurR = styrkurR - 25;
styrkurB = styrkurB - 25;
styrkurG = styrkurG - 25;
prenta();
break;
//rauður
case 0xCF30FF00:
styrkurR = styrkurR + 25;
prenta();
break;
case 0xBD42FF00:
styrkurR = styrkurR - 25;
prenta();
break;
case 0xEF10FF00:
if(kveiktR == true){
styrkurR = 0;
kveiktR = false;
}
else{
styrkurR = 255;
kveiktR = true;
}
prenta();
break;
//grænn
case 0xE718FF00:
styrkurG = styrkurG + 25;
prenta();
break;
case 0xB54AFF00:
styrkurG = styrkurG - 25;
prenta();
break;
case 0xC738FF00:
if(kveiktG == true){
styrkurG = 0;
kveiktG = false;
}
else{
styrkurG = 255;
kveiktG = true;
}
if(styrkurG > 0){
kveiktG = true;
}
if(styrkurG <= 0){
kveiktG = false;
}
Serial.println(kveiktG);
prenta();
break;
//blar
case 0x857AFF00:
styrkurB = styrkurB + 25;
prenta();
break;
case 0xAD52FF00:
styrkurB = styrkurB - 25;
prenta();
break;
case 0xA55AFF00:
if(kveiktB == true){
styrkurB = 0;
kveiktB = false;
}
else{
styrkurB = 255;
kveiktB = true;
}
prenta();
break;
case 0xDD22FF00:
Loop = true;
break;
}
}
IrReceiver.decodedIRData.decodedRawData = 0xFFFFFFFF;
while(Loop == true){
analogWrite(rauttLed, 255);
analogWrite(granntLed, 0);
analogWrite(blattLed, 0);
delay(100);
decode();
if(IrReceiver.decodedIRData.decodedRawData == 0xDD22FF00){
IrReceiver.decodedIRData.decodedRawData = 0xFFFFFFFF;
Loop = false;
break;
}
analogWrite(rauttLed, 0);
analogWrite(granntLed, 255);
analogWrite(blattLed, 0);
delay(100);
decode();
if(IrReceiver.decodedIRData.decodedRawData == 0xDD22FF00){
IrReceiver.decodedIRData.decodedRawData = 0xFFFFFFFF;
Loop = false;
break;
}
analogWrite(rauttLed, 0);
analogWrite(granntLed, 0);
analogWrite(blattLed, 255);
delay(100);
decode();
if(IrReceiver.decodedIRData.decodedRawData == 0xDD22FF00){
IrReceiver.decodedIRData.decodedRawData = 0xFFFFFFFF;
Loop = false;
break;
}
}
delay(100);
}