Lab_interaccio/2009/WII_RGB/WII_RGB.pde
2025-02-25 21:21:58 +01:00

163 lines
2.2 KiB
Plaintext

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);
}