// Projeto pronto
#include <IRremote.h> // Inclui a biblioteca IRremote para lidar com infravermelho
#define PIN_RECEIVER 2 // Define o pino onde o receptor infravermelho está conectado
IRrecv receiver(PIN_RECEIVER); // Cria um objeto IRrecv associado ao pino do receptor
String stringOne = ""; // Variável para armazenar o nome do comando infravermelho recebido
void setup()
{
Serial.begin(115200); // Inicializa a comunicação serial a 115200 bauds
Serial.println("<Pressione um botão>"); // Exibe uma mensagem no monitor serial
receiver.enableIRIn(); // Inicializa o receptor infravermelho para receber sinais infravermelhos
}
void loop()
{
if (receiver.decode()) { // Verifica se um sinal infravermelho foi decodificado
translateIR(); // Chama a função translateIR() para mapear o código infravermelho para um comando
receiver.resume(); // Reinicia o receptor infravermelho para receber mais comandos
}
}
void Imprime_Comando(char* text)
{
Serial.print("Botão Pressionado"); // Exibe "Botão Pressionado"
Serial.print(" | "); // Exibe o nome do comando infravermelho armazenado em stringOne
Serial.print(stringOne);
Serial.print(" | ");
Serial.print("Comando: ");
Serial.print(receiver.decodedIRData.command);// Exibe o código do comando infravermelho
Serial.print(" | ");
Serial.print("NEC codificado: ");
}
void translateIR()
{
// Mapeia os códigos infravermelhos para comandos
switch (receiver.decodedIRData.command) {
case 162:
stringOne = "POWER"; // Atribui o nome do comando "POWER" à variável stringOne
Imprime_Comando("POWER"); // Chama a função Imprime_Comando() com o texto "POWER"
Serial.println("0xFFA25D"); // Exibe o código NEC correspondente
break;
case 226:
stringOne = "MENU";
Imprime_Comando("MENU");
Serial.println("0xFFE21D");
break;
case 34:
stringOne = "TEST";
Imprime_Comando("TEST");
Serial.println("0xFF22DD");
break;
case 2:
stringOne = "MAIS";
Imprime_Comando("PLUS");
Serial.println("0xFF02FD");
break;
case 194:
stringOne = "VOLTAR";
Imprime_Comando("BACK");
Serial.println("0xFFC23D");
break;
case 224:
stringOne = "ANTERIOR";
Imprime_Comando("PREV.");
Serial.println("0xFFE01F");
break;
case 168:
stringOne = "PLAY";
Imprime_Comando("PLAY");
Serial.println("0xFFA857");
break;
case 144:
stringOne = "PROXIMO";
Imprime_Comando("NEXT");
Serial.println("0xFF906F");
break;
case 104:
stringOne = "0";
Imprime_Comando("num: 0");
Serial.println("0xFF6897");
break;
case 152:
stringOne = "MENOS";
Imprime_Comando("MINUS");
Serial.println("0xFF9867");
break;
case 176:
stringOne = "C";
Imprime_Comando("key: C");
Serial.println("0xFFB04F");
break;
case 48:
stringOne = "1";
Imprime_Comando("num: 1");
Serial.println("0xFF30CF");
break;
case 24:
stringOne = "2";
Imprime_Comando("num: 2");
Serial.println("0xFF18E7");
break;
case 122:
stringOne = "3";
Imprime_Comando("num: 3");
Serial.println("0xFF7A85");
break;
case 16:
stringOne = "4";
Imprime_Comando("num: 4");
Serial.println("0xFF10EF");
break;
case 56:
stringOne = "5";
Imprime_Comando("num: 5");
Serial.println("0xFF38C7");
break;
case 90:
stringOne = "6";
Imprime_Comando("num: 6");
Serial.println("0xFF5AA5");
break;
case 66:
stringOne = "7";
Imprime_Comando("num: 7");
Serial.println("0xFF42BD");
break;
case 74:
stringOne = "8";
Imprime_Comando("num: 8");
Serial.println("0xFF4AB5");
break;
case 82:
stringOne = "9";
Imprime_Comando("num: 9");
Serial.println("0xFF52AD");
break;
}
}