// Not checked if the functions are used properly.
// Changed for the values of the remote control of Wokwi.
// Added Serial output.
// There is a message at startup from the IRremote library.
#include <Adafruit_NeoPixel.h>
#define DATAPIN 10
#define NUMPIXELS 31
#define DELAYVAL 500
Adafruit_NeoPixel pixels(NUMPIXELS, DATAPIN, NEO_GRB + NEO_KHZ800);
#include <IRremote.h>
const int RECV_PIN = 4;
int togglestate = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(115200);
irrecv.enableIRIn();
pixels.begin();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.print( "Received: 0x");
Serial.println( results.value, HEX);
switch (results.value) {
case 0xFF0CF3: // 1 // 0xF7C03F: //on
//ckech red
if (togglestate == 0) {
pixels.fill(pixels.Color(150, 0, 0));
pixels.show();
//check green
} else if (togglestate == 1) {
pixels.fill(pixels.Color(0, 150, 0));
pixels.show();
//check blue
} else if (togglestate == 2) {
pixels.fill(pixels.Color(0, 0, 150));
pixels.show();
}
break;
case 0xFF18E7: // 2 // 0xF740BF: //off
pixels.fill(pixels.Color(0, 0, 0));
pixels.show();
break;
case 0xFF5EA1: // 3 //red
togglestate = 0;
pixels.fill(pixels.Color(150, 0, 0));
pixels.show();
break;
case 0xFF08F7: // 4 //green
togglestate = 1;
pixels.fill(pixels.Color(0, 150, 0));
pixels.show();
break;
case 0xFF1CE3: // 5 //blue
togglestate = 2;
pixels.fill(pixels.Color(0, 0, 150));
pixels.show();
break;
}
irrecv.resume();
}
}