Um receptor infravermelho é um dispositivo eletrônico que detecta sinais de luz infravermelha.
Geralmente invisível ao olho humano, ela pode ser emitida por um controle remoto ou outro transmissor IR.
Ele é amplamente usado em sistemas de controle remoto, como em TVs, ar-condicionados, aparelhos de som, e até robôs.
Quando um controle remoto emite pulsos de luz infravermelha codificados, o receptor IR capta esses pulsos e os converte em sinais elétricos que podem ser interpretados por um circuito eletrônico.
Sensível a uma faixa específica de frequência (geralmente 38 kHz).
Costuma ter três pinos: um para alimentação (VCC), um para terra (GND) e um para o sinal (OUT).
Pode funcionar até cerca de 5 a 10 metros de distância do emissor, dependendo do modelo e das condições do ambiente.
Para integração com o Arduino, precisaremos da biblioteca IRremote, que pode instalada no gerenciador de bibliotecas do Arduino IDE.
Neste projeto você criará um circuito que faz o uso de um Receptor Infravermelho (IR) com o Arduino.
Para a criação deste circuito serão necessários os seguintes componentes:
Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.
A seguir temos o schematics do circuito, que detalha suas conexões e fornece detalhes mais específicos do que o circuito da imagem anterior.
Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.
/**
* Código do curso Magos do Arduino para utilizar um receptor
* infravermelho (IR) com o Arduino.
*
* Utilize um receptor IR com o Arduino para receber comandos
* de um controle remoto, imprimindo os valores recebidos no
* monitor serial e acendendo ou apagando o LED do Arduino.
*
* (c) Copyright KazaleIT
* @kazaleitoficial no YouTube
**/
#include <IRremote.hpp>
#define PINO_RECEPTOR_IR 12
#define BTN_0 0xE916FF00 // valor do botão 0 no controle remoto
#define BTN_1 0xF30CFF00 // valor do botão 1 no controle remoto
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
IrReceiver.begin(PINO_RECEPTOR_IR);
}
unsigned long valor;
void loop() {
if (IrReceiver.decode()) {
// imprime comando em hexadecimal
valor = IrReceiver.decodedIRData.decodedRawData;
Serial.print("Comando recebido: ");
Serial.println(valor, HEX);
// imprime informações completas recebidas
Serial.println("Todas informações recebidas:");
IrReceiver.printIRResultShort(&Serial);
// imprime comando utilizado para envio com emissor IR
Serial.println("Comando para enviar dados com emissor IR:");
IrReceiver.printIRSendUsage(&Serial);
// permite receber a próxima leitura
IrReceiver.resume();
}
// verifica os valores recebidos e acende ou apaga o LED do Arduino
switch (valor) {
case BTN_0:
digitalWrite(LED_BUILTIN, LOW);
break;
case BTN_1:
digitalWrite(LED_BUILTIN, HIGH);
break;
}
delay(100);
}