16-Módulo rele por controle remoto

Lembre-se de consultar o datasheet do tipo de sensor infravermelho escolhido para verificar a ordem de ligação dos terminais. Lembrando também que o mapeamento dos códigos Hexadecimais dos botões do controle remoto escolhido já foi ensinado no vídeo da aula 03-LEDs por controle remoto. Recomendo que assistam esse vídeo primeiro, para que possam aprender o procedimento. Você pode ligar lâmpadas, motores ou qualquer aparelho elétrico nos relês, como já vimos anteriormente.

Material Utilizado:

  • 01 Placa Arduino Uno
  • 01 Protoboard
  • 01 Barra cindal
  • Jumpers
  • 05 módulos Reles
  • 01 Sensor Infravermelho
  • 01 Controle remoto qualquer
  • 01 Buzzer

Código

//Projeto Relés por controle remoto

//EduArduino


#include <Servo.h>

#include <IRremote.h>


Servo motor;

int RECV_PIN = 11;

const int Rele1 = 2;

const int Buzzer = 12;

const int Rele2 = 3;

const int Rele3 = 4;

const int Rele4 = 5;

const int Rele5 = 6;


IRrecv irrecv(RECV_PIN);


decode_results results;


void setup()

{

Serial.begin(9600);

motor.attach(8);

pinMode(Rele1, OUTPUT);

pinMode(Buzzer, OUTPUT);

pinMode(Rele2, OUTPUT);

pinMode(Rele3, OUTPUT);

pinMode(Rele4, OUTPUT);

pinMode(Rele5, OUTPUT);

irrecv.enableIRIn(); // Inicia o receptor IR

}


void loop() {

if (irrecv.decode(&results)) {

Serial.println(results.value, HEX);

if (results.value == 0xFFA25D) {

digitalWrite(Rele1, HIGH);

digitalWrite(Buzzer, HIGH);

delay(100);

digitalWrite(Buzzer, LOW);

}

if (results.value == 0xFF629D) {

digitalWrite(Rele1, LOW);

digitalWrite(Buzzer, HIGH);

delay(100);

digitalWrite(Buzzer, LOW);

}

if (results.value == 0xFF22DD){

digitalWrite(Rele2, HIGH);

digitalWrite(Buzzer, HIGH);

delay(100);

digitalWrite(Buzzer, LOW);

}

if (results.value == 0xFF02FD){

digitalWrite(Rele2, LOW);

digitalWrite(Buzzer, HIGH);

delay(100);

digitalWrite(Buzzer, LOW);

}

if (results.value == 0xFFE01F){

digitalWrite(Rele3, HIGH);

digitalWrite(Buzzer, HIGH);

delay(100);

digitalWrite(Buzzer, LOW);}

if (results.value == 0xFFA857){

digitalWrite(Rele3,LOW);

digitalWrite(Buzzer, HIGH);

delay(100);

digitalWrite(Buzzer, LOW);}

if (results.value == 0xFF9867){

digitalWrite(Rele4, LOW);

digitalWrite(Buzzer, HIGH);

delay(100);

digitalWrite(Buzzer, LOW);}

if (results.value == 0xFF6897){

digitalWrite(Rele4, HIGH);

digitalWrite(Buzzer, HIGH);

delay(100);

digitalWrite(Buzzer, LOW);}

if (results.value == 0xFF18E7){

digitalWrite(Rele5, LOW);

digitalWrite(Buzzer, HIGH);

delay(100);

digitalWrite(Buzzer, LOW);}


if (results.value == 0xFF30CF){

digitalWrite(Rele5, HIGH);

digitalWrite(Buzzer, HIGH);

delay(100);

digitalWrite(Buzzer, LOW);}

if(results.value == 0xFF42BD){

motor.write(0);


delay(100); }

if(results.value == 0xFF4AB5)

{

motor.write(90);


delay(100);


}

if(results.value == 0xFF52AD)

{

motor.write(180);


delay(100);


}


irrecv.resume(); // Receber o próximo valor

}