Vamos a realizar con un mando a distancia y un sensor de infrarrojos, que encienda y apaguen varios LEDs
Para ello necesitaremos:
Arduino
6 LEDs de varios colores
6 Resistencias de 330 Ohm
Sensor de infrarrojos
Mando a distancia
Placa protoboard
La librería <NECIRrcv.h>
Lo conectaremos siguiendo el esquema de esta imagen:
El codigo del programa es el siguiente:
//Encender los leds con un mando de infrarrojos
#include <NECIRrcv.h>
#define IRPIN 8 //Conectamos el sensor de IR en el pin 8
NECIRrcv ir(IRPIN) ;
int ledverde = 5;
int ledamarillo = 3;
int ledblanco = 6;
int ledrojo = 2;
int ledazul = 4;
void setup()
{
ir.begin() ;
pinMode(ledverde, OUTPUT);
pinMode(ledamarillo, OUTPUT);
pinMode(ledblanco, OUTPUT);
pinMode(ledrojo, OUTPUT);
pinMode(ledazul, OUTPUT);
}
void loop()
{
unsigned long ircode ;
while (ir.available()) {
ircode = ir.read() ;
switch (ircode) {
//para encender
case 4077715200://boton 1
digitalWrite (ledverde, HIGH);
break;
case 3877175040: //boton 2
digitalWrite (ledamarillo, HIGH);
break;
case 2707357440: //boton 3
digitalWrite (ledblanco, HIGH);
break;
case 4144561920: //boton 4
digitalWrite (ledrojo, HIGH);
break;
case 3810328320: // boton 5
digitalWrite (ledazul, HIGH);
break;
//para parar
case 3125149440: //boton ch-
digitalWrite (ledverde, LOW);
break;
case 3108437760: //boton ch
digitalWrite (ledamarillo, LOW);
break;
case 3091726080: //boton ch+
digitalWrite (ledblanco, LOW);
break;
case 3141861120: //boton cancion atras
digitalWrite (ledrojo, LOW);
break;
case 3208707840: // boton cancion delante
digitalWrite (ledazul, LOW);
break;
}
}
}
Video del resultado:
Si quieres usar cualquier mando a distancia puedes usar este programa para conocer el código de cada botón:
//Programa para Configurar el mando
#include <NECIRrcv.h>
#define IRPIN 8 // Conectar el sensor de IR en el pin 8
NECIRrcv ir(IRPIN) ;
void setup()
{
Serial.begin(9600) ;
Serial.println("Programa para configurar el mando") ;
ir.begin() ;
}
void loop()
{
unsigned long ircode ;
while (ir.available()) {
ircode = ir.read() ;
Serial.print("el codigo es: " ) ;
Serial.println(ircode,HEX) ;
}
}