lunes, 22 de febrero de 2010

Receptor IR III

El siguiente programa controlará un timbre, un conjunto de LEDs y un LED RGB. Cada uno de estos tres 'módulos' será activado con un botón del mando a distancia.

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

Los pines de la placa del 2 al 8 y el 13controlarán 6 LEDs
Los pines 9 y 10 serán para el LED tricolor
El timbre lo conectamos al pin 11





//Con un boton del mando activaremos el modo "coche fantastico"
//Con otro boton activaremos el LED tricolor, cada vez con tres colores diferentes
//Con otro activaremos una melodia en el timbre

#include "wprogram.h"
#include "necirrcv.h"
#define IRPIN 12
unsigned long ircode;

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

int length=19;
char notes[]="cdegcdefCefgCabCebC";
int tempo=10;

int i=0;
int j=0;
int aux=0;
int contador1=0;

NECIRrcv ir(IRPIN);

void playTone(int tone, int duration)
{
for (long j=0; j<8; i++)
{
if (names[i] == note)
{
playTone(tones[i], duration);
}
}
}

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

void loop()
{
while (ir.available())
{
ircode=ir.read();
if(ircode==2724069120)
{
contador1++;
aux++;
}
}

if(ircode==2707357440)
{
for(i=0; i<8; i++)
{
digitalWrite(pinesLED[i], HIGH);
delay(100);
}
for(i=0; i<8; i++)
{
digitalWrite(pinesLED[i], LOW);
delay(100);
}
}
if(ircode==2724069120 && contador1%2==1)
{
if(aux%3==0)
{
analogWrite(pinGreen, 5);
analogWrite(pinRed, 20);
}
if(aux%3==1)
{
analogWrite(pinGreen, 25);
analogWrite(pinRed, 1);
}
if(aux%3==2)
{
analogWrite(pinGreen, 15);
analogWrite(pinRed, 15);
}
}
else
{
analogWrite(pinGreen, 0);
analogWrite(pinRed, 0);
}
if(ircode==3776904960)
{
playNote(notes[j], 50);
j++;
if(j==19)
{
j=0;
ircode=ir.read();
}
}
}

No hay comentarios:

Publicar un comentario