Ligando lampadas através de controle remoto usando Arduino

Hoje vou mostrar como ligar lâmpadas através de um controle remoto fazendo o uso do Arduino. Para isso vamos precisar dos seguintes componentes:

Um Arduino.
Um sensor IR.
Um Relé de 5 volts.
Um diodo (IN 4007).
Um transistor tipo NPN (2n2222).
Um resistor de 1k.
Uma protoboard.
Um controle remoto universal.

O sensor IR retirei de um aparelho de DVD antigo que estava estragado, já o controle remoto achei no lixo em frente a minha casa. Os demais componentes já possui e utilizava em outros projetos. Uma imagem do sensor pode ser vista abaixo:

Esse sensor não possui nenhuma especificação e foi um pouco complicado para achar algo na internet mas com algumas googladas tudo ficou mais fácil. Acabei encontrando alguns documentos que falavam um pouco sobre sensores IR e o uso de controle remoto universal. O réle comprei através do mercado livre. O escolhido foi de 5 volts com 5 pinos:

O esquema de ligação do relé no arduino é como segue abaixo:

Com essa montagem já é possível carregar o código BLINK de exemplo da IDE do Arduino e então será possível ver o funcionamento do relé.

Agora veja a montagem completa do esquema:

Código:

/*
# Autor: Fernando Krein Pinheiro
# Data: 24/02/2012
# Linguagem: C/C++

# ========= IMPORTANTE ===========
# O codigo esta livre para usar,
# citar e compartilhar desde que
# mantida sua fonte e seu autor.
# Obrigado.

=================================

Valores correspondentes
lidos do controle remoto.

OBS: Os valores podem variar
dependendo do controle usado!

BOTAO  -    VALOR
  1    -   4261527360
  2    -   4244815680
  3    -   4228104000
  4    -   4211392320
  5    -   4194680640
  6    -   4177968960
  7    -   4161257280
  8    -   4144545600
  9    -   4127833920

ON/OFF - 3977428800

VOL(+) - 3843735360
VOL(-) - 3776888640

CH (+) - 3827023680
CH (-) - 3760176960

*/

#include <WProgram.h>
#include <NECIRrcv.h>
#define InfraVermelho 10
#define ONOFF 3977428800

int lampada = 7;
unsigned long int capturaCodigo = 0;
NECIRrcv ir(InfraVermelho) ;

void setup(){

    Serial.begin(9600) ;
    pinMode(lampada, OUTPUT);
    ir.begin() ;
}

void loop()
{

  while (ir.available())
  {
      capturaCodigo = ir.read();
      Serial.println(capturaCodigo);

      if (capturaCodigo == ONOFF)
      {
      	 int estadoLed = digitalRead(lampada);
      		if (estadoLed == LOW)
      		{
       		   digitalWrite(lampada, HIGH);
                   Serial.println("LIGADA");
      	         }
      		else
      	           digitalWrite(lampada, LOW);
                   Serial.println("DESLIGADA");
       	}
}
}

Veja o vídeo:

18 comentários em “Ligando lampadas através de controle remoto usando Arduino

    • No meu caso eu não encontrei nenhuma documentação do controle, então o que fiz foi ler tecla por tecla do controle através da funcao ir.read() armazenando na variavel capturaCodigo e mostrando essa variavel na serial monitor do arduino! Logo depois salvei em um txt o código gerado e a respectiva tecla…

  1. eu estou com problemas com abiblioteca NECIRrcv.h toda hora da erro quando eu compilo:
    ‘byte’ do not name a type.
    Algo do tipo, se alguem puder me ajudar agradeço.

    • Olá Rodrigo, voce precisa ser mais especifico em relação ao erro! Esse problema geralmente é quando voce não declara alguma variavel, ou algo parecido…

      Mande seu código para meu email e vou ver o que posso fazer…

  2. Amigo… copie colei seu codigo no programa do arduino baixei as lib e qd vou compilar da o mesmo erro do amigo Rodrigo a msg é a seg.

    C:\arduino\arduino-1.0.1-windows\arduino-1.0.1\libraries\NECIRrcv/NECIRrcv.h:84: error: ‘byte’ does not name a type

    o q posso fazer… da uma luz ae
    Grato.

    • ola amigo conseguiu resolver o problema??? aki esta do mesmo jeito o curioso é que antes de eu formatar a maquina funcionava…

  3. é muito dificil um ir com 3 pernas nao ser tal como ele coclocou no desenho dele, vc sabe o que so bre o ir que vc esta usando ? vc quer saber onde fica o +vcc, o gnd e a saida dele ?
    Abraçis

  4. O que faria se, ao invés de querer ligar uma lâmpada fluorescente normal, eu querer ligar uma lampada de LED de 12V?

  5. AMIGO PRA MIM LEGAR E DESLIGAR AS LÂMPADAS, TENHO QUE ADICIONAR SOMENTE O NUMERO E ESCREVER ON OF,E ADICIONAR AS PORTAS OU TENHO QUE MUDAR MAIS ALGUMA COISA NOS CÓDIGOS A BAIXO, E PORQUE NÃO ENTENDO, ESTOU COMEÇANDO AGORA E ACHEI MUITO BOM ESSE TIPO DE LIGAR, GOSTARIA DE USAR TODAS PORTAS DO ARDUINO UNO QUE FOR POSSIVEL, AGRADEÇO SE PUDER MIM AJUDAR..

  6. Olá, como faço um controle de brilho usando 2 botões e outro botão para acionar sem o dimmer?

  7. Amigo, caso um transistor forneça corrente suficiente para uma lampada, eu poderia estar ausentando o rele? Vlw

  8. muito legal o seu projeto – Só a tilo de informação – sou eletricista residencial – existe um compone na elétrica – chamado relê de impulso – o que ele faz : lhe permite comandar de um um único varias lâmpadas – imagine um interruptor único – com vários estágios de derivação – você poderia ter em suas um modulo que comanda vários ambientes em um local só – o desafio e só adaptar led infravermelho – como o relê tem vários estágios – que funciona através de um botão pulsador – cada estágio pode ser um led ( ex: led 1 igual lâmpada cozinha ( led 2 igual lâmpada sala etc… ( observe que você está criando um ponto de derivação para ter acesso – a vários circuitos elétricos – exemplo : como um circuito integrado de uma placa de som – só que no caso você esta comandando o circuito integrado elétrico de uma residencia – no caso da derivação – led 1 – led2 etc.. A programação do Arduino da jeito. ( benefícios do projeto – comodidade e talves baixo custo material ( pode usar sucatas) obs: como eu estando de um ponto fixo posso saber se a luz de fora da minha casa esta acessa ou ( simples ( através de sinal de retorno da lâmpada – um led acesso no ambiente que estou comandando esta lâmpada ( Não basta – pois eu quero ter visão do ambiente a onde esta esta lâmpada – é sò colocar uma cãmera que liga através de um led infravermelho e mede retorno de imagem atráves do sinal Wifi. – Ufá – assas da imaginação – Ao 53 anos ( digo que um dois maiores legados da vida é o do conhecimento – do respeito ao próximo – do saber ensinar o que se um dia aprendeu – saber obter e propagar o conhecimento através da internet que quanto usada com sabedoria nos faz sentir vivos ( realmente eu acredito que o maior sentido da vida é passar o conhecimento através dos tempos – Há o nosso real legado – é perpetuar a História. Abraços a todos.

Deixe um comentário