Circuito de controle remoto Arduino IR

Experimente Nosso Instrumento Para Eliminar Problemas





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

Se você estiver acima do nível de iniciante, poderá realizá-lo com facilidade. O circuito proposto ilustrado aqui tem apenas três controles remotos e 3 relés na extremidade 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 receptor. Eu recomendaria o Arduino pro mini para este projeto, já que os tamanhos deles são muito pequenos e o tamanho geral do controle remoto pode ser evitado.

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



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

Quando um botão é pressionado, o LED IV envia o código hexadecimal ao receptor, o receptor reconhecerá qual botão foi pressionado e ligará / desligará o relé correspondente.

O controle remoto proposto usa o protocolo RC5 para se comunicar com o receptor, você pode mudar tudo modificando o código.

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

O circuito e o programa:

Transmissor Arduino Remoto:

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 220 ohm é empregado para o LED IV.

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:

O circuito do receptor IR Arduino, conforme mostrado acima, consiste em Sensor TSOP1738 poucos transistores, 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 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 quiser adicionar mais controles e relé, você precisará editar o código e o diagrama de circuito.

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

Você pode usar o 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 como fazer uma versão atualizada do conceito acima para um controle infalível de eletrodomésticos usando o microcontrolador Arduino, que funcionará com uma frequência única e nunca operará com um monofone IR comum.

Controle remoto IR infalível

Este circuito pode ligar / desligar seus gadgets usando botões não usados ​​do controle remoto da TV ou qualquer outro controle remoto não usado que possa estar na sua caixa de lixo por anos.

O lema deste projeto é ajudar pessoas com deficiência, e ajudá-los 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 se mover de sua posição existente.

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

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

O principal problema com os não baseados em microcontroladores Circuito de controle remoto IR , que pode ser encontrado na Internet, é que ele pode LIGAR / DESLIGAR com qualquer controle remoto baseado em IR e pode controlar apenas um dispositivo por vez 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 chaves para dispositivos específicos.

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

Instruções:

1) Clique no botão “clonar ou baixar” do link fornecido e clique em “Baixar ZIP”.

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

3) Exclua a pasta “RobotIRremote” da biblioteca do Arduino. “RobotIRremote” tem definição semelhante de biblioteca “IRremote” que conflita e não é capaz de fazer upload do 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 chaves 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.

1) Abra o IDE do Arduino e carregue o 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 as outras duas chaves (3 chaves são fornecidas neste projeto para controlar 3 dispositivos)

· Vamos usar esses códigos hexadecimais no programa principal e fazer o 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 // coloque o código recebido do botão A

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

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

· Coloque seus 3 códigos exclusivos de seu controle remoto neste local de 111, 112 e 113 e carregue o 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 desarma o relé e ao pressionar novamente irá desligar o relé.




Anterior: repelente natural de mosquitos usando resistor de alta potência Próximo: Circuito Detector de Metal do Solo Profundo - Scanner de Solo