189 lines
2.5 KiB
C++
189 lines
2.5 KiB
C++
#include "WProgram.h"
|
|
void setup ();
|
|
void wiiconnect(void);
|
|
void blanco(void);
|
|
void amarillo(void);
|
|
void rojo(void);
|
|
void magenta(void);
|
|
void azul(void);
|
|
void verde(void);
|
|
void off(void);
|
|
int ledRead(void);
|
|
void codigoRGB(void);
|
|
void loop ();
|
|
int led1 = 2;
|
|
int led2 = 3;
|
|
int led3 = 4;
|
|
int led4 = 5;
|
|
int onoff = 6;
|
|
int blue = 9;
|
|
int green = 10;
|
|
int red = 11;
|
|
int time = 0;
|
|
int i=0;
|
|
|
|
void setup () {
|
|
|
|
pinMode(led1, INPUT);
|
|
pinMode(led2, INPUT);
|
|
pinMode(led3, INPUT);
|
|
pinMode(led4, INPUT);
|
|
pinMode(onoff, OUTPUT);
|
|
pinMode(red, OUTPUT);
|
|
pinMode(green, OUTPUT);
|
|
pinMode(blue, OUTPUT);
|
|
blanco();
|
|
delay(1000);
|
|
amarillo();
|
|
delay(1000);
|
|
rojo();
|
|
delay(1000);
|
|
magenta();
|
|
delay(1000);
|
|
azul();
|
|
delay(1000);
|
|
verde();
|
|
delay(1000);
|
|
off();
|
|
wiiconnect();
|
|
|
|
}
|
|
|
|
void wiiconnect(void)
|
|
{
|
|
digitalWrite(onoff, HIGH); // wii connect
|
|
delay(100);
|
|
digitalWrite(onoff, LOW);
|
|
}
|
|
|
|
void blanco(void)
|
|
{
|
|
analogWrite(red, 0xFF);
|
|
analogWrite(green, 0x5A);
|
|
analogWrite(blue, 0x32);
|
|
}
|
|
|
|
void amarillo(void)
|
|
{
|
|
analogWrite(red, 0xFF);
|
|
analogWrite(green, 0x50);
|
|
analogWrite(blue, 0x00);
|
|
}
|
|
|
|
void rojo(void)
|
|
{
|
|
analogWrite(red, 0xFF);
|
|
analogWrite(green, 0x00);
|
|
analogWrite(blue, 0x00);
|
|
}
|
|
|
|
void magenta(void)
|
|
{
|
|
analogWrite(red, 0xF7);
|
|
analogWrite(green, 0x1C);
|
|
analogWrite(blue, 0xB6);
|
|
}
|
|
|
|
void azul(void)
|
|
{
|
|
analogWrite(red, 0x00);
|
|
analogWrite(green, 0x32);
|
|
analogWrite(blue, 0xFF);
|
|
}
|
|
|
|
void verde(void)
|
|
{
|
|
analogWrite(red, 0x1F);
|
|
analogWrite(green, 0xFF);
|
|
analogWrite(blue, 0x00);
|
|
}
|
|
|
|
void off(void)
|
|
{
|
|
analogWrite(red, 0x00);
|
|
analogWrite(green, 0x00);
|
|
analogWrite(blue, 0x00);
|
|
}
|
|
|
|
|
|
int ledRead(void)
|
|
{
|
|
|
|
int l1;
|
|
int l2;
|
|
int l3;
|
|
int l4;
|
|
int codigo = 0;
|
|
l1 = !digitalRead(led1);
|
|
l2 = !digitalRead(led2);
|
|
l3 = !digitalRead(led3);
|
|
l4 = !digitalRead(led4);
|
|
codigo = l1 + 2*l2 + 4*l3 + 8*l4;
|
|
return(codigo);
|
|
|
|
}
|
|
|
|
// 0000 = 0 = 000000 (OFF)
|
|
// 0001 = 1 = FAFF00 (amarillo)
|
|
// 0010 = 2 = F41B00 (rojo)
|
|
// 0011 = 3 = F71CB6 (magenta)
|
|
// 0100 = 4 = 1732FF (azul)
|
|
// 0101 = 5 = 33FC00 (verde)
|
|
// 1111 = 15 = FFFFFF (blanco)
|
|
|
|
void codigoRGB(void)
|
|
{
|
|
|
|
int codigo = ledRead();
|
|
|
|
if(codigo == 0)
|
|
{
|
|
off();
|
|
}
|
|
else if(codigo == 1)
|
|
{
|
|
amarillo();
|
|
}
|
|
else if(codigo == 2)
|
|
{
|
|
rojo();
|
|
}
|
|
else if(codigo == 3)
|
|
{
|
|
magenta();
|
|
}
|
|
else if(codigo == 4)
|
|
{
|
|
azul();
|
|
}
|
|
else if(codigo == 5)
|
|
{
|
|
verde();
|
|
}
|
|
else if(codigo == 15)
|
|
{
|
|
blanco();
|
|
}
|
|
|
|
}
|
|
|
|
void loop () {
|
|
|
|
codigoRGB();
|
|
delay(10);
|
|
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
init();
|
|
|
|
setup();
|
|
|
|
for (;;)
|
|
loop();
|
|
|
|
return 0;
|
|
}
|
|
|