Nota: Você pode utilizar controles que já tem, como o da TV. Mas utilize controles de infravermelho.
Lista de componentes:
1 - Arduino Uno;
1 - Controle remoto;
1 - Receptor IR;
1 - Protobord;
3 - LED's;
3 - Resistores de 220 ohms;
Alguns jumpers;
Circuito a ser montado:
Neste projeto, primeiro executamos o programa de exemplo IRrecvDemo a partir do exemplo da biblioteca IR do arduino, para identicar o código dos botões do controle.
(Nota: Se você tiver algum erro ao executar esta biblioteca, remova “IRremoteTools.cpp” das bibliotecas \ RobotIRremote \ IRremoteTools.cpp)
Código Arduino para receber IR como código hexadecimal
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Inicia o receptor
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Recebe o próximo valor
}
}
Em seguida, usamos os dados decodificados como condição de comutação no programa para ligar e desligar os três LEDs.
Código Arduino Para Controle Remoto IR
#include <IRremote.h> int RECV_PIN = 11; // int output1 = 2; int output2 = 4; int output3 = 6; int itsONled[] = {0,0,0,0}; #define code1 0xFF807F // #define code2 0xFFA05F // #define code3 0xFF906F // IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); // irrecv.enableIRIn(); // pinMode(output1, OUTPUT); pinMode(output2, OUTPUT); pinMode(output3, OUTPUT); } void loop() { if (irrecv.decode(&results)) { unsigned int value = results.value; switch(value) { case code1: if(itsONled[1] == 1) { // digitalWrite(output1, LOW); // itsONled[1] = 0; // } else { // digitalWrite(output1, HIGH); // itsONled[1] = 1; // } break; case code2: if(itsONled[2] == 1) { digitalWrite(output2, LOW); itsONled[2] = 0; } else { digitalWrite(output2, HIGH); itsONled[2] = 1; } break; case code3: if(itsONled[3] == 1) { digitalWrite(output3, LOW); itsONled[3] = 0; } else { digitalWrite(output3, HIGH); itsONled[3] = 1; } break; } Serial.println(value); // Você pode comentar esta linha irrecv.resume(); // Receber o próximo valor } }
Neste programa nós usamos
code1 como 0xFF807F
code2 como 0xFFA05F
code3 como 0xFF906F
Você pode alterar estes códigos de acordo com o código recebido no Monitor serial e a partir do primeiro programa do arduino.
Os componentes deste tutorial pode ser comprados AQUI!