#include <IRremote.h>
#include <FastLED.h>
IRrecv IR(5); // Pino que o DAT do módulo IR está conectado ao ESP32.
#define LED 17 // Pino que o DIN da fita está conectado
#define NUM_LEDS 16 // Número de LEDs
CRGB leds[NUM_LEDS]; // Criando um obj para usar a biblioteca
void setup() {
Serial.begin(115200);
IR.enableIRIn(); // Habilita o sensor infravermelho
FastLED.addLeds<NEOPIXEL, LED>(leds, NUM_LEDS); // Inicializa a fita
}
void loop() {
if (IR.decode()) { // Se detectar um código infravermelho, IR.decode == true
Serial.print("Código recebido: ");
Serial.println(IR.decodedIRData.command); // Corresponde ao código recebido
switch (IR.decodedIRData.command) {
// Código 48 - botão 1 = cor vermelha
case 48:
for (int i = 0 ; i < NUM_LEDS; i++) {
leds[i] = CRGB::Red;
FastLED.show();
}
break;
// Código 24 - botão 2 = cor verde
case 24:
for (int i = 0 ; i < NUM_LEDS; i++) {
leds[i] = CRGB::Green;
FastLED.show();
}
break;
// Código 122 - botão 3 = cor azul
case 122:
for (int i = 0 ; i < NUM_LEDS; i++) {
leds[i] = CRGB::Blue;
FastLED.show();
}
break;
// Código 16 - botão 4 = cor amarela
case 16:
for (int i = 0 ; i < NUM_LEDS; i++) {
leds[i] = CRGB::Yellow;
FastLED.show();
}
break;
// Código 56 - botão 5 = cor roxa
case 56:
for (int i = 0 ; i < NUM_LEDS; i++) {
leds[i] = CRGB::Purple;
FastLED.show();
}
break;
// Código 162 - botão OFF = cor preta/desligar
case 162:
for (int i = 0 ; i < NUM_LEDS; i++) {
leds[i] = CRGB::Black;
FastLED.show();
}
break;
}
IR.resume(); // Limpa o módulo
delay(1000);
}
}