El siguiente programa simula una matriz de LEDs controlada remotamente por un receptor infrarrojo. Cada LED que forma la matriz será controlado por un único botón del mando a distancia. Cada LED puede ser encendido o apagado independientemente del resto.
El circuito lo implementaremos de la siguiente manera:
Colocando el receptor IR mirando hacia nosotros:
1º pin del IR al pin 12 (digital)
2º pin del IR a ground
3º pin del IR a +5V
Pines del 2 al 11 formarán un vector de LEDs, simularán una matriz 2x5 en nuestra protoboard
Lado negativo de los LEDs a ground
//Cada LED numerado del 1 al 10 se encenderá y apagará cuando marquemos su número en el mando a distancia.
//Cada LED se enciende y apaga independientemente del resto con su propio botón del mando a distancia.
#include "WProgram.h"
#include "NECIRrcv.h"
#define IRPIN 12
unsigned long ircode;
const int pinesLED[]={2,3,4,5,6,7,8,9,10,11};
int i=0;
unsigned long a1=2;
unsigned long a2=2;
unsigned long a3=2;
unsigned long a4=2;
unsigned long a5=2;
unsigned long a6=2;
unsigned long a7=2;
unsigned long a8=2;
unsigned long a9=2;
unsigned long a10=2;
NECIRrcv ir(IRPIN);
void setup()
{
pinMode(IRPIN, INPUT);
for(i=0; i<10; i++)
{
pinMode(pinesLED[i], OUTPUT);
}
ir.begin();
}
void loop()
{
while (ir.available())
{
ircode=ir.read();
if(ircode==2707357440)
{
a1++;
}
if(ircode==2724069120)
{
a2++;
}
if(ircode==3776904960)
{
a3++;
}
if(ircode==3041591040)
{
a4++;
}
if(ircode==3058302720)
{
a5++;
}
if(ircode==4111138560)
{
a6++;
}
if(ircode==2774204160)
{
a7++;
}
if(ircode==2790915840)
{
a8++;
}
if(ircode==3843751680)
{
a9++;
}
if(ircode==2974744320)
{
a10++;
}
}
if((a1%2)==1)
{
digitalWrite(pinesLED[0], HIGH);
}
else
{
digitalWrite(pinesLED[0], LOW);
}
if((a2%2)==1)
{
digitalWrite(pinesLED[1], HIGH);
}
else
{
digitalWrite(pinesLED[1], LOW);
}
if((a3%2)==1)
{
digitalWrite(pinesLED[2], HIGH);
}
else
{
digitalWrite(pinesLED[2], LOW);
}
if((a4%2)==1)
{
digitalWrite(pinesLED[3], HIGH);
}
else
{
digitalWrite(pinesLED[3], LOW);
}
if((a5%2)==1)
{
digitalWrite(pinesLED[4], HIGH);
}
else
{
digitalWrite(pinesLED[4], LOW);
}
if((a6%2)==1)
{
digitalWrite(pinesLED[5], HIGH);
}
else
{
digitalWrite(pinesLED[5], LOW);
}
if((a7%2)==1)
{
digitalWrite(pinesLED[6], HIGH);
}
else
{
digitalWrite(pinesLED[6], LOW);
}
if((a8%2)==1)
{
digitalWrite(pinesLED[7], HIGH);
}
else
{
digitalWrite(pinesLED[7], LOW);
}
if((a9%2)==1)
{
digitalWrite(pinesLED[8], HIGH);
}
else
{
digitalWrite(pinesLED[8], LOW);
}
if((a10%2)==1)
{
digitalWrite(pinesLED[9], HIGH);
}
else
{
digitalWrite(pinesLED[9], LOW);
}
}
No hay comentarios:
Publicar un comentario