Projetos de circuito eletrônicoInfravermelho (IR)Circuito de controle remoto IR Arduino

Circuito de controle remoto IR Arduino

Relacionados

Neste post, vamos construir um interruptor de controle remoto sem fio baseado em IR (infravermelho) personalizável baseado em Arduino, que consiste em um controle remoto IR e um receptor, você pode modificar de acordo com suas necessidades. Na parte posterior do artigo, aprendemos sobre uma versão atualizada à prova de falhas de um controle remoto IR que responderá apenas a uma frequência atribuída exclusivamente.

Se você está acima do nível iniciante, pode realizá-lo com facilidade. O circuito proposto ilustrado aqui tem apenas três controles no controle remoto e 3 relés no lado do receptor. Você pode modificar o código e o diagrama de circuito para atender às suas necessidades.

Você precisará de duas placas Arduino, que atuam como remotas e outra como receptora. Eu recomendaria o Arduino pro mini para este projeto, já que os tamanhos deles são bem pequenos e o tamanho geral do controle remoto pode ser evitado.

Você pode usar o Arduino pro mini baseado em 3,3V para controle remoto, para que possa ser alimentado com duas células de botão ou duas baterias tamanho AA, de acordo com suas necessidades.

O circuito do transmissor IR possui 3 botões para ligar e um LED IR para enviar comandos ao receptor. Cada botão foi programado com um código hexadecimal exclusivo, o mesmo código hexadecimal também é programado no lado do receptor.

Quando um botão é pressionado, o LED IR envia o código hexadecimal para o receptor, o receptor reconhecerá qual botão está pressionado e liga/desliga o relé correspondente.

O remoto proposto utiliza o protocolo RC5 para comunicação com o receptor; você pode mudar tudo modificando o código.

Se você é apenas iniciante no Arduino, ainda pode realizá-lo basta seguir o diagrama e fazer o upload do código sem modificar.

O circuito e o programa:

Transmissor Remoto Arduino:

CIRCUITO DE CONTROLE REMOTO IR INFALÍVEL

O circuito acima ilustra como construir o transmissor remoto Arduino IR.

Os três resistores de 10K são resistores pull down, que evitam o acionamento acidental do controle remoto devido à carga estática e um resistor limitador de corrente de 220ohm é empregado para o LED IR.

Programa para transmissor remoto:

//---------Program developed by R.Girish--------//
#include
IRsend irsend;
const int button1 = 4;
const int button2 = 5;
const int button3 = 6;
void setup() {
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
}
void loop()
{
if (digitalRead(button1) == HIGH)
{
delay(50);
irsend.sendRC5(0x80C, 32);
delay(200);
}
if (digitalRead(button2) == HIGH)
{
delay(50);
irsend.sendRC5(0x821, 32);
delay(200);
}
if (digitalRead(button3) == HIGH)
{
delay(50);
irsend.sendRC5(0x820, 32);
delay(200);
}
}
//---------Program developed by R.Girish--------//

Receptor Arduino:

IMG 624493DEA61C6

O circuito do receptor IR Arduino, como mostrado acima, consiste em poucos transistores do sensor TSOP1738, resistores limitadores de corrente para transistor, relés e diodos para absorver picos de alta tensão das bobinas do relé.

O diagrama do circuito é autoexplicativo.

Programa para o receptor Arduino:

//-----------------Program developed by R.Girish-----------//
#include
int input = 11;
int op1 = 8;
int op2 = 9;
int op3 = 10;
int intitial1;
int intitial2;
int intitial3;
IRrecv irrecv(input);
decode_results dec;
#define output1 0x80C // code received from button A
#define output2 0x821 // code received from button B
#define output3 0x820 // code received from button C
void setup()
{
irrecv.enableIRIn();
pinMode(op1,1);
pinMode(op2,1);
pinMode(op3,1);
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value;
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW);
intitial1 = 0;
} else {
digitalWrite(op1, HIGH);
intitial1 = 1;
}
break;
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW);
intitial2 = 0;
} else {
digitalWrite(op2, HIGH);
intitial2 = 1;
}
break;
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW);
intitial3 = 0;
} else {
digitalWrite(op3, HIGH);
intitial3 = 1;
}
break;
}
irrecv.resume();
}
}
//--------------Program developed by R.Girish-----------//

Seguindo as explicações acima você pode realizar três controles, se você quiser adicionar mais controles e relés, você precisa editar o código e o diagrama de circuito.

Você pode atribuir saída e entrada para pinos não utilizados no receptor e remoto no programa e conectar o número de transistor e relé para os respectivos pinos no receptor e, da mesma forma, conectar o número de interruptores e o resistor pull-down no controle remoto.

Você pode usar um código hexadecimal aleatório para atribuir mais número de botões.

Por exemplo: 0xA235, 0xFFFF, 0xBA556 e assim por diante. E também adicione o mesmo valor hexadecimal no código do receptor. Por exemplo: #define output4 0xA235, #define outout5 0xFFFF e assim por diante.

Fazendo um controle remoto IR com frequência única

Nas seções acima, aprendemos sobre um controle remoto IR simples que funcionará com qualquer transmissor remoto IR.
No artigo a seguir, aprenderemos a fazer uma versão atualizada do conceito acima para um controle infalível dos eletrodomésticos usando microcontrolador arduino, que funcionará com uma frequência única e nunca funcionará com um monofone IR comum.

Controle remoto IR infalível

Este circuito pode ligar/desligar seus gadgets usando os botões não utilizados do controle remoto da TV ou qualquer outro controle remoto não utilizado que possa estar na sua caixa de lixo por muito tempo.

O lema deste projeto é ajudar pessoas com deficiência física, e ajudá-las a acessar o interruptor ON/OFF dos eletrodomésticos básicos, como ventiladores ou luzes, de forma independente.

O segundo objetivo é permitir que o usuário controle os gadgets “como um chefe” sem ter que sair de sua posição existente.

O circuito utiliza comunicação tradicional baseada em IR entre o transmissor e o receptor.

Este circuito é cem por cento infalível para outros controles remotos IR e outras fontes IR e menos suscetível a erros.

O principal problema com o circuito de controle remoto IR não baseado em microcontrolador, que é encontrado na Internet, é que ele pode ligar / desligar com qualquer controle remoto baseado em IR e pode controlar apenas um dispositivo em um instante e também mais suscetível a erros.

Este circuito supera os problemas especificados acima, e podemos controlar vários gadgets em um controle remoto e atribuir teclas para gadgets específicos.

Antes de prosseguir com este projeto, você precisa baixar os arquivos da biblioteca para arduino neste link e seguir as instruções abaixo: github.com/z3t0/Arduino-IRremote

Instruções:

1) Clique no botão “clone or download” do link fornecido e clique em “Download ZIP”.

2) Extraia o arquivo e mova a pasta “IRremote” para sua pasta biblioteca do Arduino.

3) Exclua a pasta “RobotIRremote” da sua biblioteca do arduino. “RobotIRremote” tem uma definição semelhante de biblioteca “IRremote” que colide e não é capaz de enviar o código para o Arduino, portanto, a exclusão/remoção é obrigatória.

Ao duplicar a instrução acima, seu software Arduino IDE está pronto para qualquer/a maioria dos projetos baseados em IR.

Atribuir teclas para controle remoto:

Em nosso controle remoto de TV, cada tecla possui um código hexadecimal exclusivo, que é usado para reconhecer qual tecla é pressionada para uma operação. Antes de enviar o código final para o Arduino, você precisa descobrir quais são os códigos hexadecimais para suas chaves.

Para fazer isso, construa o seguinte circuito na placa de ensaio e siga as instruções.

IMG 624493DEDD47E

1) Abra o Arduino IDE e faça o upload do código de exemplo “IRrecv Demo”

2) Abra o monitor serial e pressione a tecla no controle remoto que deseja usar.

Você verá o código hexadecimal aparecer assim que pressionar a tecla. Esse é o código hexadecimal para essa chave específica.

3) Faça o mesmo para outras duas teclas (3 teclas são fornecidas neste projeto para controlar 3 dispositivos)

· Vamos usar esses códigos hexadecimais no programa principal e fazer upload para o arduino.

Programa:
//-----------------Program developed by R.Girish-----------//
#include
int input = 11;
int op1 = 8;
int op2 = 9;
int op3 = 10;
int intitial1;
int intitial2;
int intitial3;
IRrecv irrecv(input);
decode_results dec;
#define output1 0x111 // place your code received from button A
#define output2 0x112 // place your code received from button B
#define output3 0x113 // place your code received from button C
void setup()
{
irrecv.enableIRIn();
pinMode(op1,1);
pinMode(op2,1);
pinMode(op3,1);
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value;
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW);
intitial1 = 0;
} else {
digitalWrite(op1, HIGH);
intitial1 = 1;
}
break;
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW);
intitial2 = 0;
} else {
digitalWrite(op2, HIGH);
intitial2 = 1;
}
break;
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW);
intitial3 = 0;
} else {
digitalWrite(op3, HIGH);
intitial3 = 1;
}
break;
}
irrecv.resume();
}
}
//--------------Program developed by R.Girish-----------//

NOTA:

No programa:

#define output1 0x111 // coloca seu código recebido do botão A

#define output2 0x111 // coloca seu código recebido do botão B

#define output3 0x111 // coloca seu código recebido do botão C

· Coloque seus 3 códigos exclusivos do seu controle remoto neste local de 111, 112 e 113 e faça o upload do código. Os códigos hexadecimais serão de 0 a 9 e A a F, por exemplo: 20156, 26FE789, FFFFFF.

· Coloque seu código com “0x” (zero x).

Diagrama de circuito:

· Pressionar a tecla desliga o relé e pressionando novamente desliga o relé.

IMG 624493DF1B797

Hashtags: #Circuito #controle #remoto #Arduino
 

FONTE


Nota: Este conteúdo foi traduzido do Inglês para português (auto)
Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…
Veja na FONTE até ser revisado o conteúdo.
Status (Ok Até agora)


Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!

Relacionados

Relacionados