/*
CAMP-ARDUINO
Lesson #8
Very Basic Remote Control Unit
*********************
* 01 * 0xA2 * Power *
* 02 * 0xE2 * Menu *
* 03 * 0x22 * Test *
* 04 * 0x02 * + *
* 05 * 0xC2 * <- *
* 06 * 0xE0 * << *
* 07 * 0xA8 * |> *
* 08 * 0x90 * >> *
* 09 * 0x68 * 0 *
* 10 * 0x98 * - *
* 11 * 0xB0 * C *
* 12 * 0x30 * 1 *
* 13 * 0x18 * 2 *
* 14 * 0x7A * 3 *
* 15 * 0x10 * 4 *
* 16 * 0x38 * 5 *
* 17 * 0x5A * 6 *
* 18 * 0x42 * 7 *
* 18 * 0x4A * 8 *
* 18 * 0x52 * 9 *
*********************
0.01 - Very Basic setup
0.02 - addind an On/Off LED
0.03 - Adding a FadeLED
*/
float ver = 0.03;
#include <IRremote.h>
#define IR_RECEIVE_PIN 2
#define IOled 13
#define fadeLed 9
int data;
int fdt = 5; //Fade Delay Time
int i;
bool power = false;
bool FadeFx = false; //Triggers a Fade effect
bool GreenStt = false;//Tracks LED state
void setup()
{
Serial.begin(115200);
//Serial.println("CAMP - ARDUINO");
//Serial.print("Very Basic RCU version: ");
//Serial.println(ver);
pinMode(IOled, OUTPUT);
pinMode(fadeLed, OUTPUT);
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Start the receiver
}
void loop() {
if (IrReceiver.decode()) {
data = IrReceiver.decodedIRData.command;
//Serial.println(data, HEX);
IrReceiver.resume(); // Enable receiving of the next value
}
switch(data){
//Power
case 0xA2:
power =! power;
data = 0x00;
break;
//FadeLedIn
case 0x22:
if(!GreenStt && power){ //ONLY if the LED is Off and Power in ON
for( i=0; i<256;i++){ //Fade in
analogWrite(fadeLed, i);
delay(fdt); //Fade delay time could be adjustable later
}
GreenStt = true; //Changing LED state
}
else{ //If Power is (obviously)on and the LED is On
for( i=0; i<=256;i++){ //Fade out
analogWrite(fadeLed, 256-i);
delay(fdt); //Fade delay time could be adjustable later
}
GreenStt = false; //Changing LED state
}
data = 0x00;
break;
}
digitalWrite(IOled, power);
digitalWrite(fadeLed, GreenStt);
}