Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // --- IR ---------------------------------------------
- #include <IRremote.h>
- //#include <IRrecv.h>
- //#include <IRutils.h>
- const int receivePin = 2;
- IRrecv irrecv(receivePin);
- decode_results results;
- const int minimumPressTime = 100; // ms to keep the key pressed for
- bool repeatable = false;
- unsigned long pressTime = 0;
- bool pressingKeys = false;
- void setup() {
- Serial.begin(74880);
- while (!Serial);
- Serial.println("Start");
- pinMode(LED_BUILTIN, OUTPUT);
- pinMode(3, OUTPUT);
- // --- IR ---------------------------------------------
- Serial.println("Start the IR receiver...");
- irrecv.enableIRIn();
- Serial.println("Init relay down...");
- digitalWrite(3, LOW);
- Serial.println("Done");
- }
- void blink(int up, int down) {
- digitalWrite(LED_BUILTIN, HIGH);
- delay(up);
- digitalWrite(LED_BUILTIN, LOW);
- delay(down);
- }
- void loop() {
- if (irrecv.decode(&results)) {
- Serial.print("ir code : ");
- Serial.print(results.value, HEX);
- Serial.println("");
- switch (results.value) {
- case 0xFFFFFFFF: // Repeat code
- // Don't release the key unless it's a non repeatable key.
- if (repeatable) {
- pressTime = millis(); // Keep the timer running.
- }
- break;
- case 0x10ED609F: // UP
- Serial.println("UP");
- repeatable = false;
- digitalWrite(3, HIGH);
- // Show something
- blink(50, 10);
- break;
- case 0x10ED6897: // DOWN
- Serial.println("DOWN");
- repeatable = false;
- digitalWrite(3, LOW);
- // Show something
- blink(50, 10);
- break;
- // Non-matching IR
- default:
- repeatable = false;
- break;
- }
- // Receive the next value
- delay(25);
- irrecv.resume();
- }
- else {
- unsigned long now = millis();
- if ((now - pressTime > minimumPressTime) && pressingKeys) {
- //releaseAll();
- pressingKeys = false;
- }
- // { else repeat ? }
- }
- }
Add Comment
Please, Sign In to add comment