Dudas con led RGB

Buenos dias Ante todo decir k soy un novato en estas lides, y por mas k he leido y probado variaciones, no doy con la tecla. Os cuento

Necesito k 15 leds rgb varien aleatoriamente entre dos colores (azul y blanco). y si, sera una chorrada, pero no he tenido bemoles. Os agradeceria una ayudita, por favor

no entiendo eso de que vienen blanco y azul, yo tengo led rgb de 5mm, estos son de cristal transparente y como dice son rgb(rojo, verde y azul), podes producir cualquier color segun la intecidad de corrientes que administre a cada pata de cada color,algunos colores no salen tan fiel pero funcionan bien.

Gracias por responder

Si, los colores k kiero k iluminen son azul (0,0,255) y blanco (255,255,255), y lo k kiero es k los 15 led cambien de azul a blanco aleatoriamente

date una vuelta por este link https://www.arduino.cc/en/Tutorial/Fade

Ese programa es solo para intensidad, y un solo led, no rgb

Porque no planteas debidamente tu consulta? ** **También lee las NORMAS DEL FORO para entender que acá ayudamos, no estamos para servirte.. y no lo malentiendas, no estamos para buscarte lo que tu no has buscado. Se supone que has investigado en internet como dicen las Normas, qué has investigado ademas de que colores debo asignar para azul y blanco?

y si, sera una chorrada, pero no he tenido bemoles

Yo no se que es chorrada, ni que es bemoles. Usa castellano neutro por favor

Ahora a tu pregunta: Tal vez solo necesites usar un random para que los leds aleatoriamente se prendan de uno u otro color. O ademas quieres que lo hagan individualmente y todo aleatoriamente. Si es el caso tu tira de led debe ser direccionable. Como ves, son preguntas que se plantean porque tu consulta no esta bien hecha.

Pues llevo mas de dos meses con ese problema y hasta hoy no me anime a postear precisamente por gente tan comprensiva como surbyte. Gracias a los demas, y un placer

Puedes explicarte mejor?

Amigo, para que obtengas el color blanco debes encender los 3 leds al mismo tiempo (rojo, verde y azul) y luego quieres el azul solo le quitas la alimentación a los otros 2 pines.

El problema es que quieres que sea aleatoriamente pero no dices como lo quieres conectar. Dependiendo de como lo quieras vas a tener que multiplexar y vas a cablear mas que las entrañas del transbordador espacial.

Postea la información completa para poder ayudarte.

Saludos

Gracias Carlos

El cableado y demas esta todo, y si, ha sido un trabajo pesado. He probado varias programaciones pero no soy capaz de lograr esa aletoriedad. La idea original es conseguir un efecto "agua" con los leds. Datos, pues 15 leds rgb independientes de cátodo común, no tira led. Con un arduino mega2560. Lo de los colores en si ya lo tengo controlado, el problema es lograr k los 15 leds lo hagan cada uno a su aire. Podria hacerlo uno por uno programar una secuencia diferente para cada uno, pero eso serian cientos de lineas de codigo k sinceramente no lo veo practico. Por eso postee, para intentar lograr una forma de lograr esa aletoriedad de forma mas simple. He logrado hacerme con los relés.. motor paso a paso, incluso logre adaptar un cigarro electronico para k lo controlara arduino ( una locura lo se xD). Pero con esto de los leds me kede en blanco yo, y no he posteado ningun codigo pork no tengo nada ni parecido a esa aletoriedad

franjes_2k5:
y no he posteado ningun codigo pork no tengo nada ni parecido a esa aletoriedad

Tan fácil como llamar a random(2) para determinar el color del LED. Si es 0, que se encienda azul; si es 1, que se encienda blanco. Siemple… :slight_smile:

Para lograr un efecto agua tu tira de 15 leds debe ser direccionable para que puedes decirle que led encenderse y cómo. Es tu tira del tipo WS2811 o WS2812?

Según le entendí no es tira de led, son leds conectados separadamente pero si cada led tiene 3 pines y son 15 leds... Estariamos hablando que necesita 45 salidas..... De donde las va a sacar? Tendra que usar a juro 3 multiplexores de 16 salidas cada uno con un bus de seleccion de 4 bits para poder cubrir los 45 leds y el bus de datos debe de ser de 4 bits para seleccionar la salida deseada y 3 bits para seleccionar el multiplexor a activar. Es una locura jajajaja pero se puede hacer.

Si son leds comunes entonces que compre una tira direccionable o que use Shift Register 74HC595
Y como tiene que definir como va a iluminarlos si todos siempre del mismo color o no, el diseño cambia.

Segun le entiendo es aleatorio pero cada led blinkeando a un ritmo diferente a los demás. no puede haber nada en paralelo. Debería ver alguno videos en youtube de cubos en 3D para ver si le gusta mas esa idea jejeje

Si es aleatorio entoces tu idea del direccionamiento usado en los cubos leds es correcta y es lo mismo que le iba a sugerir. Necesitas direccionar 15 leds y ademas necesitas cruzar RGB. O hacerlo todo usando 15x3 = 45 direcciones /8 salidas del 595, hacen 8 ICs HC595. Una manera es usar 8 74HC595 y cada 3 bits controlar cada led. Otra manera es hacer un multiplexado, iluminar con picos de corriente mas altos para que la remanencia e integración del ojo nos haga creer qeu estan encendidos cuando solo se prenden y apagan muy rápido. Pero algo asi requiere un timer y un barrido, ademas de mosfet para entregar corrientes importantes. No tan importantes pero mayores que si lo haces de modo continuo.

Buenas de nuevo y perdonar por no haber contestado antes.

Lo de multiplexar y lo de los cubo led se me escapa mas aun k esto. Esto solo forma parte de un programa mucho mas grande, k ya tengo solucionado, solo me faltaba lo de los 15 leds. Y no tengo ni la menor idea de como hacer o incorporar eso k habeis mencionado :frowning:
Pero os puedo dejar lo k llevo hecho hasta ahora, k no funciona, prende los dos leds k puse de prueba en color blanco, y ahi se keda

int led1[]={22, 24, 26};
int led2[]={23, 25, 27};
int ran= 0;

void azul(int led[]) 
 {
  digitalWrite(led[0], LOW);
  digitalWrite(led[1], LOW);
  digitalWrite(led[2], HIGH);
 }
void blanco(int led[]) 
 { 
  digitalWrite(led[0], HIGH);
  digitalWrite(led[1], HIGH);
  digitalWrite(led[2], HIGH);
  }

void setup()
{
  pinMode(22, OUTPUT);
  pinMode(23, OUTPUT);
  pinMode(24, OUTPUT);
  pinMode(25, OUTPUT);
  pinMode(26, OUTPUT);
  pinMode(27, OUTPUT); 
}

void loop() 
{
  for(int cont = 0; cont<=7; cont++){
  ran= random(0,1);
  if(ran==0) {
   blanco(led1);
   blanco(led2);
 }
   else {
   azul(led1);
   azul(led2);
 }
 }
 }

Si teneis alguna idea, os lo agradeceria. Y si se puede simplificar de alguna manera, tb, pues ya os digo k el programa ya es enorme. Gracias

Lo hiciste con 2 bueno ahora como lo harías con 15? Ahi esta el dilema.. 15 son 3x15 pnies o sea 45 salidas. Las tienes? No. Entonces puedes usar SHIFT REGISTERS 74HC595 como estos enlace

|418x500

La página muestra el uso del TLC5916 que no es tan conocido para mi pero tiene características interesantes. Con esto resolverás tu problema.

MIra como 8 leds requieren de 24 salidas 8x3 = 24 salidas Un 74HC595 usa solo 3 pines del Arduino para comandar los 595 y puedes controlar 8 LEDs RGB En tu caso 15 requieren 15x3=45 y 45/8 = 5.625 o sea 6 Shift Register 74HC595.

Wenas y perdon el retraso.

Arduino MEGA son 54 salidas digitales. Me sobran