sábado, 10 de agosto de 2013

Acender Lâmpada com Arduino e Controle Infavermelho


     Esta página irá ensinar a como motar um circuito capaz de acender uma lâmpada com um controle emissor de infravermelho (controle de televisão, dvd, recptor de parabólica, controle de rádio de carro, etc) utilizando o microcontrolador arduino.. Para isso será necessário o seguinte material:
-Arduino (no caso utilizei o UNO)
-2 Resistores 330 Ω
-1 Módulo Relé 5V para arduino
-1 Receptor infravermelho
-1 Bateria 9V (para alimentar o arduino)
-1 Cabo para alimentar o arduino atravéz da bateria
-1 Bocal lâmpada
-1 Lâmpada 127 V
-Fios

    O esquemático da ligação segue abaixo:
      O vídeo mostrando o resultado do projeto está mostrado abaixo:



      O código para a programação do arduino segue abaixo:

#include <IRremote.h>
#include <IRremoteInt.h>

int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;

#define BT_LIGA 0xFFA25D  //Botao Liga

#define Controle_Rele 7   //Controla Relé

int Controle_Rele_State = LOW;  //Relé começa fechado

long bt = 0; //Ultimo botao precionado
unsigned long startMilis = 0; //Contado para blink sem delay

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();

  pinMode(Controle_Rele, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
    irrecv.resume();

    Serial.println(results.value, HEX); //Aqui voce descobre qual o botao do seu controle

    //Apenas para filtrar os botoes apertados, no meu caso para filtrar outros controles =)
    if(results.value == BT_LIGA)
    {
      startMilis = millis(); //Apertou um botao, reseta o contador
      bt = results.value; //Salva ultimo botao apertado
      mod(1);
    }
  }


}

void mod(int x)
{
  unsigned long currentMillis = millis();

  if(x == 1)
  {
   Controle_Rele_State=!Controle_Rele_State;
   
   digitalWrite(Controle_Rele, Controle_Rele_State);
  }
  
}