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); analogWrite(red, 0xFF); analogWrite(green, 0x5A); analogWrite(blue, 0x32); delay(2000); analogWrite(red, 0); analogWrite(green, 0); analogWrite(blue, 0); digitalWrite(onoff, HIGH); delay(100); digitalWrite(onoff, LOW); } 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) { analogWrite(red, 0x00); analogWrite(green, 0x00); analogWrite(blue, 0x00); } else if(codigo == 1) { analogWrite(red, 0xFF); analogWrite(green, 0x60); analogWrite(blue, 0x00); } else if(codigo == 2) { analogWrite(red, 0xFF); analogWrite(green, 0x1B); analogWrite(blue, 0x00); } else if(codigo == 3) { analogWrite(red, 0xF7); analogWrite(green, 0x1C); analogWrite(blue, 0xB6); } else if(codigo == 4) { analogWrite(red, 0x17); analogWrite(green, 0x32); analogWrite(blue, 0xFF); } else if(codigo == 5) { analogWrite(red, 0x33); analogWrite(green, 0xFC); analogWrite(blue, 0x00); } else if(codigo == 15) { analogWrite(red, 0xFF); analogWrite(green, 0x5A); analogWrite(blue, 0x32); } } void loop () { codigoRGB(); delay(10); }