/******************************************************************/
/* Aula 30 - Receptor IR e Controle Remoto */
/* */
/* Através deste programa você poderá realizar a leitura, através */
/*do Monitor Serial, o código hexadecimal emitido por 4 teclas de */
/*um controle remoto infravermelho. */
/******************************************************************/
/* Inclui a biblioteca para o Módulo IR. */
#include <IRremote.h>
/* Define o pino do Arduino que receberá os dados do receptor IR. */
int Pino_receptor = 7;
/* Variável que armazenará os códigos emitidos pelas teclas. */
float armazenavalor;
/* Pinos do LED RGB. */
int Led_Vermelho = 8;
int Led_Azul = 9;
int Led_Verde = 10;
/* Códigos hexadecimais obtidos das teclas 1 a 4. Você pode */
/*alterar de acordo com as suas teclas. Observe que os códigos */
/*devem iniciar com o prefixo “0x” para que o Arduino entenda que */
/*se trata de um código hexadecimal e não simplesmente números e */
/*letras. */
unsigned long tecla_1 = 0xCF30FF00;
unsigned long tecla_2 = 0xE718FF00;
unsigned long tecla_3 = 0x857AFF00;
unsigned long tecla_4 = 0xEF10FF00;
void setup()
{
/* Inicializa o receptor IR no pino definido. */
/* Define os pinos do LED RGB como saída. */
IrReceiver.begin(Pino_receptor);
pinMode(Led_Vermelho, OUTPUT);
pinMode(Led_Verde, OUTPUT);
pinMode(Led_Azul, OUTPUT);
Serial.begin(9600);
}
void loop()
{
/* Se o receptor receber dados. */
if (IrReceiver.decode())
{
/* Armazena o código hexadecimal recebido na variável. */
armazenavalor = IrReceiver.decodedIRData.decodedRawData;
Serial.println(armazenavalor);
/* Se a tecla 1 for acionada, faz... */
if (armazenavalor == tecla_1)
{
/* Liga somente o LED Vermelho. */
digitalWrite(Led_Vermelho, HIGH);
digitalWrite(Led_Azul, LOW);
digitalWrite(Led_Verde, LOW);
}
/* Se a tecla 2 for acionada, faz... */
if (armazenavalor == tecla_2)
{
/* Liga somente o LED Azul. */
digitalWrite(Led_Vermelho, LOW);
digitalWrite(Led_Azul, HIGH);
digitalWrite(Led_Verde, LOW);
}
/* Se a tecla 3 for acionada, faz... */
if (armazenavalor == tecla_3)
{
/* Liga somente o LED Verde. */
digitalWrite(Led_Vermelho, LOW);
digitalWrite(Led_Azul, LOW);
digitalWrite(Led_Verde, HIGH);
}
/* Se a tecla 4 for acionada, faz... */
if (armazenavalor == tecla_4)
{
/* Desliga todos os LEDs. */
digitalWrite(Led_Vermelho, LOW);
digitalWrite(Led_Verde, LOW);
digitalWrite(Led_Azul, LOW);
}
/* Realiza uma nova leitura no módulo. */
IrReceiver.resume();
}
}