Este artigo aborda:
1: Introdução ao sensor de IR
Um receptor de RI é um dispositivo que pode detectar e receber sinais de infravermelho (IR). É normalmente usado em sistemas de controle remoto IR para receber comandos de um controlador remoto IR ou outro transmissor de infravermelho. O receptor de RI consiste em um fotodiodo ou outro componente sensível ao IR que detecta os sinais de RI e um circuito desmodulador que decodifica os sinais.
A saída do receptor de IR geralmente é um sinal digital que pode ser processado por um microcontrolador ou outro dispositivo eletrônico. Os receptores de RI são comumente usados em uma ampla gama de eletrônicos de consumo, incluindo televisores, players de DVD, ar condicionado e outros eletrodomésticos, bem como em aplicações industriais e automotivas.
Vale a pena notar que os sensores do receptor de RI podem ser suscetíveis à interferência de outras fontes de infravermelho, como luz solar ou outros dispositivos de infravermelho. Para evitar isso, é recomendável apontar o sensor de receptor de infravermelho diretamente no controle remoto de infravermelho e manter o sensor longe de outras fontes infravermelhas.
2: pinagem do sensor de infravermelho
O sensor de receptor de RI é um pequeno módulo que normalmente tem três pinos:
O VCC O pino está conectado a uma fonte de alimentação, como o pino de 5V no arduino, para fornecer energia ao sensor. O FORA O pino está conectado a um pino de entrada digital no Arduino e Gnd O pino está conectado ao pino de solo no Arduino:
3: Interface o sensor IR com Arduino
Para usar o sensor de receptor de infravermelho com um Arduino Uno, uma biblioteca chamada Irremote é necessário. Esta biblioteca pode ser baixada no site da Arduino e permite que o Arduino decodifique os sinais de RI recebidos pelo sensor. Depois que a biblioteca é instalada, ela pode ser incluída no esboço (programa) que é carregado para o Arduino.
Depois que o sensor do receptor de RI estiver conectado e o esboço é carregado, o Arduino pode começar a receber e interpretar sinais de um controle remoto de IR. Os sinais de RI podem ser decodificados usando uma função fornecida pela Biblioteca Irmote, e os sinais decodificados podem ser usados para controlar vários dispositivos.
Por exemplo, um sinal de IR específico pode ser usado para ligar ou desativar um dispositivo ou para controlar o brilho ou a temperatura.
1: esquemático
Aqui está um esquema básico para conectar um sensor de IR a um Arduino:
Sensor IR | Arduino |
---|---|
VCC (Power) | 5V |
GND (terra) | Gnd |
Out (saída) | D8 |
É importante observar que diferentes sensores de IR podem ter diferentes pinagens e tensões, por isso é importante verificar a folha de dados do sensor específico que você está usando.
2: Instalando a biblioteca necessária
Existem várias bibliotecas remotas de IR disponíveis para Arduino. Você pode usar qualquer uma dessas bibliotecas conforme sua exigência e protocolo remoto IR que você está usando.
Vamos instalar o Irremote biblioteca por Arminjo.
4: Decodificação de um IR Remote Buttons
Existem vários controles remotos IR disponíveis, como televisores, ar condicionados e sistemas de automação residencial. Ao decodificar um controle remoto de infravermelho, podemos projetar um controle remoto universal para todos esses aparelhos.
Para decodificar um controle remoto de IR, faça o upload do código abaixo e pressione os botões no controle remoto IR e observe o monitor serial do Arduino IDE. O exemplo de esboço imprimirá o sinal de IR no formato hexadecimal e o protocolo usado.
Extraia os códigos -chave dos botões Remote IR que você deseja usar em seu projeto. Usando esses códigos de chave e as funções da Biblioteca Irmote, podemos controlar as ações desejadas quando os botões correspondentes são pressionados no controle remoto de IR.
1: código
Carregue o código abaixo através do Arduino IDE no Arduino Uno:
#include /*incluiu IR Remote Library* /
IRRECV IR (8); /*D8 Arduino Pin definido*/
Void Setup ()
Ir.enableirin (); /*Comunicação IR ativada*/
Serial.começar (9600); /*Taxa de transmissão em série definida*/
Void Loop ()
se (ir.decode ()) / *IR função da biblioteca remota para decodificar remoto * /
Serial.println (Ir.decodedirdata.decodedrawdata, hexadecimal); /*Imprimir valor hexadecimal*/
atraso (1000);
Ir.retomar (); /*Aguarde a próxima entrada* /
O código começou incluindo uma biblioteca remota IR. Depois disso, definimos o pino digital Arduino no qual o sinal de IR será lido. Próximo no configurar() Parte, inicializamos a comunicação e a taxa de transmissão de IR são definidos.
Em laço() Parte do código, decodificamos o sinal de IR recebido no formato hexadecimal que é então impresso no monitor serial.
2: saída
Depois de enviar o código, pressionamos três botões vermelhos, verdes e azuis no controle remoto de IR.
Seguindo Hexadecimal O código é obtido para o botão vermelho, verde e azul no monitor serial IDE.
IR botão remoto | Código Hex |
---|---|
Botão vermelho | 0xfb04ef00 |
Botão verde | 0XFA05EF00 |
Botão azul | 0xf906ef00 |
5: Controlando o LED usando o controle remoto IR
Para controlar um dispositivo com o controle remoto de IR, você precisará usar o decodificado Hexadecimal sinais em seu esboço. Por exemplo, você pode usar um if-else Declaração para verificar o sinal decodificado e ligar ou desativar um dispositivo específico. Você também pode usar os sinais decodificados para controlar o brilho ou a temperatura de um dispositivo.
1: esquemático
A imagem dada explica a conexão de três LEDs coloridos diferentes com o Arduino e o Receptor de RI.
Sensor LED e IR | Pino Arduino |
---|---|
VERMELHO | D5 |
VERDE | D6 |
AZUL | D7 |
Sensor IR fora | D8 |
2: código
A seguir, o código Arduino para LEDs de controle remoto IR. O código pode ser enviado para a placa Arduino UNO, abrindo o Arduino IDE.
#include /*Inclua IR Remote Library* /
IRRECV IR (8); /*IR PIN definido*/
int azul = 7; /*LED azul no pino D7*/
int verde = 6; /*LED verde no pino d6*/
int vermelho = 5; /*LED vermelho no pino d5*/
bool red_state = 1; /*Estado LED vermelho*/
bool verde_state = 1; /*Estado de LED verde*/
bool blue_state = 1; /*Estado de LED azul*/
Void Setup ()
Ir.enableirin (); /*A comunicação IR ativa*/
pinmode (azul, saída); /*Blue LED Pin Set como saída*/
pinmode (verde, saída); /*Pino de LED verde conjunto como saída*/
pinmode (vermelho, saída); /*Red Pin Set como saída*/
Serial.começar (9600);
Void Loop ()
se (ir.decode ()) /*decodificar o sinal de infravermelho no formato hexadecimal* /
Serial.println (Ir.decodedirdata.decodedrawdata, hexadecimal);
/*Verifique se há entrada de IR*/
/*Código LED vermelho*/
se (ir.decodedirdata.decodedrawdata == 0xfb04ef00 && red_state == 1)
DigitalWrite (vermelho, alto);
Serial.println ("Red LED on");
Red_state = 0;
caso contrário, se (ir.decodedirdata.decodedrawdata == 0xfb04ef00 && red_state == 0)
DigitalWrite (vermelho, baixo);
Serial.println ("Red Led Off");
Red_state = 1;
/*Verifique a saída IR*/
se (ir.decodedirdata.decodedrawdata == 0xfa05ef00 && Green_state == 1)
/*Código LED verde*/
DigitalWrite (verde, alto);
Serial.println ("LED verde em");
Green_state = 0;
caso contrário, se (ir.decodedirdata.decodedrawdata == 0xfa05ef00 && Green_state == 0)
DigitalWrite (verde, baixo);
Serial.println ("Green Led Off");
Green_state = 1;
/*Verifique o código IR*/
se (ir.decodedirdata.decodedrawdata == 0xf906ef00 && blue_state == 1)
/*Código LED azul*/
DigitalWrite (azul, alto);
Serial.println ("LED azul em");
Blue_state = 0;
caso contrário, se (ir.decodedirdata.decodedrawdata == 0xf906ef00 && blue_state == 0)
DigitalWrite (azul, baixo);
Serial.println ("led de azul");
Blue_state = 1;
Ir.retomar ();
O código começou incluindo uma biblioteca remota IR. Depois disso, definimos o pino digital Arduino no qual o sinal de IR será lido. Os próximos três pinos para LEDs são definidos. Todos os três LEDs têm estados separados para que possamos usar a função de alternância dentro do código usando a condição e a condição.
No configurar() Parte, inicializamos a comunicação e a taxa de transmissão de IR são definidos. Junto com isso, os três pinos LED são definidos como saída usando pinmode () função.
Em laço() parte do código if-else condição é usada separadamente para todos os três LEDs. Todos os três LEDs são controlados separadamente usando o código hexadecimal.
IR botão remoto | Código Hex |
---|---|
Botão vermelho | 0xfb04ef00 |
Botão verde | 0XFA05EF00 |
Botão azul | 0xf906ef00 |
Observação: Lembre -se de que estes são o código hexadecimal para o remoto que estamos usando. Seu controle remoto pode ter um código Hex diferente. Portanto, substitua o código pelo código hexadecimal que você obteve no monitor serial.
3: saída
Depois de fazer upload de código para a placa Arduino, pressione qualquer um dos três leds de três botões que brilharão. Se pressionarmos o botão vermelho, o LED vermelho brilhará e vice -versa:
Da mesma forma, também podemos brilhar esses LEDs simultaneamente. Para desligar o LED, basta pressionar o botão novamente, pois usamos a condição de alternância no código Arduino.
Usando o mesmo método, podemos controlar os aparelhos CA substituindo os LEDs por um interruptor de relé.
Conclusão
Em resumo, a decodificação de um controle remoto de IR com um microcontrolador Arduino é uma maneira simples e econômica de controlar vários dispositivos. Ao conectar um receptor de RI ao Arduino, carregando um esboço e decodificando os sinais de RI, você pode controlar facilmente dispositivos como televisores, ar condicionados e sistemas de automação doméstica.