segunda-feira, 28 de janeiro de 2013

Atendendo aos pedidos dos leitores (1/3) Atualizado

Vamos lá , atendendo a pedidos .. vamos lá .
 Pedido 1 - Ligar um relé por controle remoto  ( o que a preguiça para levantar da cama para apagar a luz não faz não é mesmo ? )
Chega de papo e mãos a obra . Você vai precisar de :
1- Arduino
1- relê (5 ou 12v)
1-receptor iR
1-led piloto
opcional ( opto acoplador 4n25 e um resistor de 10Ω )
1- protoboard
alguns jumpers
 Começaremos pelo já conhecido sensor de IR , onde o pino da esquerda , fio branco vai ligado ao pino11 do Arduino , o pino central ao GND e o pino da direita ao +5V .





Já a ligação do opto acoplador é diferente , ele precisa de um resistor na entrada do led de acionamento , assim como na imagem .
o fio vermelho que vai ligado ao resistor em serie com o pino positivo do opto , vai ligado ao pino numero 4 do Arduino .e o fio preto , vai ligado ao GND .
os fios do outro lado , são os que vão ligados a fonte de 12v ( no caso do acionamento de um relê de 12v ) o fio marrom vai ligado ao +12v da fonte e o fio cinza vai ligado ao pino positivo do relê , e o outro pino do relê , vai ligado ao GND da FONTE .

já o led é o mais simples , onde o pino positivo , fio laranja vai ligado ao pino 3 do Arduino e o fio preto vai ligado ao GND .


Feitas todas as ligações , vamos a programação do Arduino .
Lembrando que caso voce não tenha a biblioteca de iR instalada no seu Arduino , você deverá baixar e instalar (descompactar no diretório do seu Arduino ) .na nossa paginda de Downloads voce encontra a biblioteca para baixar .



#include <IRremote.h>

int RECV_PIN = 11;
int RELAY_PIN = 4;
int led=3;

IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(led, OUTPUT);
    Serial.begin(9600);
  irrecv.enableIRIn(); 
}
int on = 0;
unsigned long last = millis();
void loop() {
  if (irrecv.decode(&results)) {
    if (millis() - last > 250) {
      on = !on;
      digitalWrite(RELAY_PIN, on ? HIGH : LOW);
      digitalWrite(led, on ? HIGH : LOW);
    }
    last = millis();      
    irrecv.resume(); 
  }
}





Veja aqui a parte 2

Nenhum comentário:

Postar um comentário