Problemas con arduino

Hola gente, Hace dos dias que tengo arduino y me gustaría un poco de ayuda para armar un Mastermind. Voy con el duemilanove y tengo 6 pwm. Como lo hago con led's RGB necesito 3 pwm 1 para cada color para poder hacer una variedad de colores. He empezado con canviar el color de un led con un interuptor. Y aqui vienen los problemas: 1--> Al tener 6 entradas de pwm necesito 6 mas para poder realizar 4 Leds. Si se puede hacer con multiplexores hacedme una explicacion de como, para guardar el color y eso... 2--> como puedo comparar el analogWrite con el color del RGB para encender el LED de validacion? Creo que ya me entendereis si sabeis como va el juego

Espero una ayudita muchas gracias aqui os muestro todo lo que he hecho hasta quedarme atascado xD :::

//Definim els pins dels colors RGB int ledVermell=3; int ledBlau=5; int ledVerd=6; boolean LedVerifica=8; // Guarda els valors a assignar a cada color(0-254) int ValorVermell=254; int ValorBlau=254; int ValorVerd=254;

//Botons d'incrementar int BotoIncrementa=7;

//variable int numcolor=0;

void setup() { pinMode(BotoIncrementa, INPUT); pinMode(LedVerifica, OUTPUT);

vermell();

}

void loop() { //********************* L E D 1 **********************************

if (digitalRead(BotoIncrementa) == HIGH) {

analogWrite(ledVermell, 0); analogWrite(ledVerd, 0); analogWrite(ledBlau, 0); delay(500); //rutina per canviar el color switch (numcolor) { case 0:taronja(); numcolor++; break; case 1:verd(); numcolor++; break; case 2:groc(); numcolor++; break; case 3:blau(); numcolor++; break; case 4:lila(); numcolor++; break; case 5:gris(); numcolor++; break; default:vermell(); numcolor=0;

} verificacio(); }

}

void verificacio() { if(analogWrite(ledVermell, 0) && analogWrite(ledVerd, 128) && analogWrite(ledBlau, 0)) {digitalWrite(LedVerifica, HIGH); delay(500); } } void taronja() { analogWrite(ledVermell, 254); analogWrite(ledVerd, 69); analogWrite(ledBlau, 3);

} void vermell() { analogWrite(ledVermell, 254); analogWrite(ledVerd, 0); analogWrite(ledBlau, 0);

} void verd() { analogWrite(ledVermell, 0); analogWrite(ledVerd, 128); analogWrite(ledBlau, 0);

} void groc() { analogWrite(ledVermell, 128); analogWrite(ledVerd, 128); analogWrite(ledBlau, 0);

} void blau() { analogWrite(ledVermell, 0); analogWrite(ledVerd, 0); analogWrite(ledBlau, 254);

} void lila() { analogWrite(ledVermell, 128); analogWrite(ledVerd, 0); analogWrite(ledBlau, 128);

} void gris() { analogWrite(ledVermell, 128); analogWrite(ledVerd, 64); analogWrite(ledBlau, 128);

}

Saludos, xevisanta

Con los leds RGB puedes crear 7 colores (sin contar el apagado) encendiendo y apagando los colores RGB sin necesidad de usar PWM. Si quieres usar más pues deberás hacerte con unos drivers de LEDs.

Lo de comparar el analogWrite con el color del RGB para la validación no lo entiendo.

Por cierto, el código mételo en las etiquetas

 ya que así queda más ordenado todo.

Un saludo

Gracias chiva. Pues con lo de comparar me refiero a si hago un

digitalWrite (ledrojo,HIGH) //violeta
digitalWrite (ledverde,LOW) //violeta
digitalWrite (ledazul,HIGH) //violeta

segun lo qu me dices porque no hay necesidad de usar el PWM como puedo comparar este color con uno que hago aleatorio. Como se haría? Porque los dos los hago con pulsadores y seria 6 digital write 3 para el manual y 3 para el aleatorio y cuando coincidan se encienda el LedVerificacion. En resumen, lo que m preocupa es la comparacion no se como se haría :D!! Saludos, xevisanta