#include <IRremote.hpp>
void setup() {
Serial.begin(115200);
IrReceiver.begin(D9); //set pin and initialize the receiver
pinMode(D2, OUTPUT);
pinMode(D3, OUTPUT);
pinMode(D4, OUTPUT);
pinMode(D10, INPUT_PULLUP); //set as INPUT_PULLUP, which mean active the pullup resistor inside the microcontroller, avoiding the short circuit when the button is pressed.
}
void loop() {
if (IrReceiver.decode()) { //do something when signal reveived
translateIR(); //pair the signal to the result
IrReceiver.resume(); //move on to the next signal
}
}
void translateIR() {
// Takes command based on IR code received
// The case code can be checked by the datasheet of the receiver: https://docs.wokwi.com/parts/wokwi-ir-remote
switch (IrReceiver.decodedIRData.command) {
case 162: //Power button
Serial.println("Off");
digitalWrite(D2, LOW);
digitalWrite(D3, LOW);
digitalWrite(D4, LOW);
break;
case 48: //Button 1
Serial.println("num: 1");
digitalWrite(D2, HIGH);
break;
case 24: //Button 2
Serial.println("num: 2");
digitalWrite(D3, HIGH);
break;
case 122: //Button 3
Serial.println("num: 3");
digitalWrite(D4, HIGH);
break;
}
}