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:

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