Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h>
- #include <IRremote.h>
- #include <EEPROM.h>
- /* PINS */
- #define RED_PIN 3
- #define GREEN_PIN 6
- #define BLUE_PIN 5
- #define IR_PIN 7
- /* REMOTE KEYS */
- #define RED_KEY 0xFF906F
- #define GREEN_KEY 0xFF10EF
- #define BLUE_KEY 0xFF50AF
- #define WHITE_KEY 0xFFD02F
- #define OFF_KEY 0xFF609F
- #define ON_KEY 0xFFE01F
- IRrecv irrecv(IR_PIN);
- decode_results results;
- byte sRed = EEPROM.read(0),
- sGreen = EEPROM.read(1),
- sBlue = EEPROM.read(2);
- void setLedColor(byte red, byte green, byte blue)
- {
- if (red == 0 && green == 0 && blue == 0)
- {
- } else {
- analogWrite(RED_PIN, red);
- EEPROM.write(0, red);
- analogWrite(GREEN_PIN, green);
- EEPROM.write(1, green);
- analogWrite(BLUE_PIN, blue);
- EEPROM.write(2, blue);
- }
- }
- void setup()
- {
- Serial.begin(9600);
- pinMode(RED_PIN, OUTPUT);
- pinMode(GREEN_PIN, OUTPUT);
- pinMode(BLUE_PIN, OUTPUT);
- irrecv.enableIRIn();
- irrecv.blink13(true);
- }
- void loop()
- {
- if (irrecv.decode(&results))
- {
- switch (results.value)
- {
- case RED_KEY:
- setLedColor(255, 0, 0);
- break;
- case GREEN_KEY:
- setLedColor(0, 255, 0);
- break;
- case BLUE_KEY:
- setLedColor(0, 0, 255);
- break;
- case OFF_KEY:
- setLedColor(0, 0, 0);
- break;
- case ON_KEY:
- setLedColor(sRed, sGreen, sBlue);
- break;
- case WHITE_KEY:
- setLedColor(255, 255, 255);
- break;
- default:
- Serial.println(results.value, HEX);
- }
- irrecv.resume();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement