Bom dia Garagistas e amantes da eletrônica.

Mais um projeto para colocarem na biblioteca.

Após algumas fuçadas na net, vi um projeto onde o autor usava 1 botão para ligar e desligar um relé (que você pode comandar qualquer lâmpada ou tomada de sua casa), e também usava um controle remoto qualquer também para a mesma função. Neste projeto o autor também poderia mesclar entre ligar e desligar o relé através dos dois comandos, ou seja, ligava pelo botão e desligava pelo controle, ligava pelo controle e desligava pelo botão e vice-versa.

Pensando nisto em minha área de serviço tenho duas lâmpadas e pensei comigo:

Vou fazer o comando delas por botões e também pelo controle remoto da tv que fica na área.

Sabe aquelas teclas que vc nunca usa tipo avança, retrocede, pausa, etc ..., pois é serão estas mesmo que serão utilizadas.

Eu fiz o vídeo (me desculpem mais não sou um bom locutor) e nele mostrei leds, foi explicado que para simular e para não encher de relé o proto usei os leds.

No meu projeto inicial usei o Arduino Uno, mais como recebi esta semana o meu mini, resolvi testá-lo também, mais salientando ambos funcionam por igual.

Ai vai, boa montagem qualquer dúvida estamos ai para tentar ajudá-los:


PS.: IMPORTANTE: Para o funcionamento correto, será necessário baixar da net as bibliotecas WProgram.h (nativa da Arduino IDE 1.0.5) e NECIRrcv.ir (link para download) inclui nas biblioteca do Arduino.

José Antonio, 


Código:

#include <WProgram.h> // biblioteca do IR
#include <NECIRrcv.h>
#define InfraVermelho 9 // pino 9 recebe IR
int rele1 = 2; // pino 2 recebe relé 1
int rele2 = 3; // pino 3 recebe relé 2
int rele3 = 4; // pino 4 recebe relé 3
int botao1 = 5; // pino 5 recebe botão 1
int botao2 = 6; // pino 6 recebe botão 2
int botao3 = 7; // pino 7 recebe botão 3
int aciona1 = 0;
int aciona2 = 0;
int aciona3 = 0;
unsigned long capturaCodigo = 0;
NECIRrcv ir (InfraVermelho);

void setup()
{
Serial.begin(9600); // Inicia comunicação com a tela do PC
pinMode (rele1,OUTPUT); // Definido que o o pino rele1 será do tipo saída de sinal
digitalWrite(rele1,0);
pinMode (botao1,INPUT); // Definido que o pino botao1 será do tipo entrada de sinal
digitalWrite(botao1,1);
pinMode (rele2, OUTPUT); // Definido que o o pino rele2 será do tipo saída de sinal
digitalWrite(rele2,0);
pinMode (botao2, INPUT); // Definido que o pino botao2 será do tipo entrada de sinal
digitalWrite(botao2,1);
pinMode (rele3, OUTPUT); // Definido que o o pino rele3 será do tipo saída de sinal
digitalWrite(rele3,0);
pinMode (botao3, INPUT); // Definido que o pino botao3 será do tipo entrada de sinal
digitalWrite(botao3,1);
ir.begin(); //inicializa função infravermelho
}
void loop()
{
int leitura = digitalRead(botao1);
if (leitura == 0)
aciona1 = !aciona1;
digitalWrite (rele1,aciona1);
delay (200);
{
int leitura = digitalRead(botao2);
if (leitura == 0)
aciona2 = !aciona2;
digitalWrite (rele2,aciona2);
delay (120);
{
int leitura = digitalRead(botao3);
if (leitura == 0)
aciona3 = !aciona3;
digitalWrite (rele3,aciona3);
delay (120);

while (ir.available()) {
capturaCodigo = ir.read() ; // Captura toda entrada de dados que seja infra vermelho e armazena na variavel capturaCodigo do tipo long.
Serial.println(capturaCodigo); // Imprime no serial monitor o valor capturado ja declado na variavel.

if (capturaCodigo == 3008151360){
aciona1 = !aciona1;
digitalWrite (rele1,aciona1);
delay (120);
}

if (capturaCodigo == 3526213440){
aciona2 = !aciona2;
digitalWrite (rele2,aciona2);
delay (200);
}

if (capturaCodigo == 2556936000){
aciona3 = !aciona3;
digitalWrite (rele3,aciona3);
delay (200);
}

}
}
}
}

Exibições: 12077

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Diego Ribeiro em 2 março 2017 às 21:25

Muito bom, parabéns!!!

Comentário de José Antonio do Nascimento em 3 agosto 2014 às 11:55

Bom dia Washington,

se quiser mais teclas, (portas a serem controladas) primeiro deverá mudar o hardware e também o software. Tem na net um montão de tutorial de como identificar os botões do controle, mais vamos lá rapidinho.

Monte seu circuito (apenas o sensor ligado ao Arduino) e para certificar-se insira led nas saídas, não esquecer de colocar resistor em série para limitar a corrente. Após carregue o programa no Arduino. Abra a janela do serial monitor, (canto direito acima, parece uma lupa ou  Crtl+Shift+M). Pronto, aponte o controle para o receptor infra-vermelho e aperte as teclas desejada. Veja que aparecerá na tela, conforme você pressiona as teclas números, que correspondem em hexadecimal o valor da tecla. Veja que em meu código tem os seguintes números: 3008151360; 3526213440; 2556936000. Cada um deste aqui é um valor de uma tecla (claro deverá ser diferente do seu teclado, a não ser que use o mesmo controle (marca e modelo). É por isso que no mercado paralelo você tem controle de TV, DVD, etc a R$ 10,00. Quanto ao programa você deverá acrescentar linhas de definições e linhas de comandos.

Espero que tenha te ajudado,

Abçs.

JA

 

Comentário de washington Luiz Santos em 2 agosto 2014 às 21:16

como fazer a identificacao das teclas dos controles e ampliar a quantidade de portas para controlar para acionar mais cargas

Comentário de Laboratório de Garagem em 14 julho 2014 às 11:26

Postagem adicionada a guia de Projetos > Intermediário: http://labdegaragem.com/page/intermediario-1

Parabéns!!!

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço