viernes, 19 de febrero de 2010

Receptor IR II

Cada LED corresponderá a un valor de los botones del mando a distancia numerados del 1 al 10. A cada pulsación se encenderá un único LED y se apagará el anterior.

El circuito lo implementaremos de la siguiente manera
Colocando el receptor IR mirando hacia nosotros:
1º pin del IR al pin 8 (digital)
2º pin del IR a ground
3º pin del IR a +5V

Los pines de la placa del 3 al 8 controlarán 6 LEDs
Los pines 9,10 y 11 serán para el LED tricolor




//Vamos a crear una serie de directivas cada vez que pulsemos alguna tecla de nuestro mando a distancia

#include "WProgram.h"
#include "NECIRrcv.h"
#define IRPIN 2//Pin de control del receptor IR
unsigned long ircode;
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;

const int pinesLED[]={3,4,5,6,7,8};
const int pinRed=9;
const int pinGreen=10;
const int pinBlue=11;

int i=0;

NECIRrcv ir(IRPIN);

void setup()
{
pinMode(IRPIN, INPUT);
for(i=0; i<6; i++)
{
pinMode(pinesLED[i], OUTPUT);
}
pinMode(pinRed, OUTPUT);
pinMode(pinGreen, OUTPUT);
pinMode(pinBlue, OUTPUT);
ir.begin();
Serial.begin(9600);
}

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((ircode==2707357440) && ((a1%2)==1))
{
analogWrite(pinRed, 10);
}
else
{
analogWrite(pinRed, 0);
}
if((ircode==2724069120) && ((a2%2)==1))
{
analogWrite(pinGreen, 10);
}
else
{
analogWrite(pinGreen, 0);
}
if((ircode==3776904960) && ((a3%2)==1))
{
digitalWrite(pinBlue, HIGH);
}
else
{
digitalWrite(pinBlue, LOW);
}
if((ircode==3041591040) && ((a4%2)==1))
{
digitalWrite(pinesLED[0], HIGH);
}
else
{
digitalWrite(pinesLED[0], LOW);
}
if((ircode==3058302720) && ((a5%2)==1))
{
digitalWrite(pinesLED[1], HIGH);
}
else
{
digitalWrite(pinesLED[1], LOW);
}
if((ircode==4111138560) && ((a6%2)==1))
{
digitalWrite(pinesLED[2], HIGH);
}
else
{
digitalWrite(pinesLED[2], LOW);
}
if((ircode==2774204160) && ((a7%2)==1))
{
digitalWrite(pinesLED[3], HIGH);
}
else
{
digitalWrite(pinesLED[3], LOW);
}
if((ircode==2790915840) && ((a8%2)==1))
{
digitalWrite(pinesLED[4], HIGH);
}
else
{
digitalWrite(pinesLED[4], LOW);
}
if((ircode==3843751680) && ((a9%2)==1))
{
digitalWrite(pinesLED[5], HIGH);
}
else
{
digitalWrite(pinesLED[5], LOW);
}
if((ircode==2974744320) && ((a10%2)==1))
{
digitalWrite(pinesLED[6], HIGH);
}
else
{
digitalWrite(pinesLED[6], LOW);
}
}

No hay comentarios:

Publicar un comentario