Caleidoscopio con Arduino y tiras de leds RGB



Os presento un nuevo proyecto Arduino: un Caleidoscopio (o algo parecido) , con una construcción y una lista de materiales de los más sencilla.
Podéis ver el resultado en el vídeo. Se puede utilizar como decoración en un salón o como adorno para la cuna del bebé, seguro que alucina ... Muy relajante acompañado de música Chill-Out.
Gracias a la aparición de las tiras de leds direccionables, o tiras de pixels, es extremadamente sencillo (y barato) poder crear proyectos con múltiples leds RGB.
Estas tiras, contienen pequeños leds RGB formato 5050, donde cada led va acompañado de un circuito WS2811, capaz de controlar un led RGB (o varios) con 256 niveles para cada color.
En el post anterior (Arbol de navidad shield para Arduino) ya hable de las bondades de estos chips
Las tiras tienen tres conexiones +5V, GND y la entrada de datos (DI). Hay que tener cuidado, pues en las tiras viene indicado el sentido de los datos, los datos deben entrar por DI y salen por DO (en el lado opuesto). Para conectar un trozo de tira con otro, hay que conectar el DO del primero con el DI del segundo.



Las tiras se pueden cortar con unas simples tijeras por las zonas indicadas


El montajes es muy sencillo, simplemente una tira de leds de 60 leds/m cortada en 12 partes de 5 leds cada una y montadas sobre una pieza de PVC (forex) . Las tiras son adhesivas, por lo que es muy sencillo. Como se puede observar en la foto , he utilizado un Arduino pro mini, que ahora es posible encontrarlos en ebay por menos de 3€ ..

Caleidoscopio con Arduino y tiras de leds

Una plancha de plexiglas opalino, se encarga de difuminar la luz de los leds y realzar el efecto.

Caleidoscopio con Arduino y tiras de leds

El circuito es tan sencillo que no necesita esquema ..., tan solo un pin de salida del Arduino, conectado a la estrada de datos de las tiras (DI), y por supuesto la alimentación (GND y 5V).

Esquema caleidoscopio con Arduino


El código realiza una serie de patrones aleatorios simétricos para simular el funcionamiento de un Caleidoscopio.

Puedes descargar el código de
https://github.com/arduino-guay/Blog/tree/master/Caleidoscopio

Si te ha gustado, recuerda compartirlo en tu red social favorita. Gracias

43 comments

Anónimo
17 de junio de 2014, 11:11

disculpa el código del caleidoscopio no lo puedo descargar

24 de junio de 2014, 8:09

@Anónimo
¿Cuál es el problema?, He comprobado el enlace y funciona

Anónimo
1 de julio de 2014, 9:56

Como puedo adaptar el programa para el arduino 1 r3?? esque yo te esa tarjeta

7 de julio de 2014, 4:45

@Anónimo
Funciona sin problemas con un Arduino UNO R3.

Anónimo
7 de julio de 2014, 7:15

Enhorabuena por el proyecto¡ Me gustaría hacerme uno ya que me parece un proyecto sencillo y vistoso.

Los materiales (aparte de la placa arduino) donde los has adquirido?

9 de julio de 2014, 23:33

@Anónimo
La base (Forex) se utiliza para impresión de cartelería, tenía algunos restos de un trabajo ... , pero puedes utilizar un simple tablero de DM blanco o contrachapado.
Las tiras las compré a través de EBAY, las puedes encontrar en multitud de variantes 1m, 5m, por cm ... y de distinta cantidad de leds/m 30, 60, 144 .... busca WS2812 led strip, por ejemplo.
Por ultimo la cubierta es de plexiglass blanco, se utiliza para rótulos. Puedes buscar en una tienda de rotulación a ver si consigues un trozo (a veces tiran los restos en un contenedor cercano ....), si no puedes encontrarlo en tiendas de ferretería tipo Leroy (el problema es que a veces las planchas son grandes y caras ...), pero en su defecto también se puede utilizar otro material tipo papel vegetal, o un cristal opalino.

Anónimo
10 de julio de 2014, 23:30

me parecio increíble este proyecto ! y ya lo ando empezando
me podrias mostrar el diagrama de conexión ?

11 de julio de 2014, 0:14

@Anónimo
Como comento en el texto el circuito es muy simple, sólo hay que conectar un pin del arduino (yo he utilizado el pin D7 pero lo puedes cambiar en el código) conectado a al pin DI de la primera tira de leds, la salida DO de esta con el DI de la siguiente tira y así con todas (DO -> DI).
Arduino D7 -> (DI....DO) -> (DI....DO) -> ... -> (DI....DO)
Las tiras tienen que tener los pines GND (masa) y +5V conectados a la alimentación.
En la segunda foto se aprecia bastante bien.

Anónimo
11 de julio de 2014, 21:56

tengo un problema con el código al momento de cargarlo en la arduino me marca error en la línea Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800); y no me deja cargarlo no tienes otro código con el que pueda utilizar ?

17 de julio de 2014, 13:27

@Anónimo
Tienes cargada la librería de Adafruit? Adafruit Neopixel

Anónimo
17 de julio de 2014, 16:13

Si ya la tengo cargada, ya no me aparecen errores y ya se carga a la arduino pero no me produce ningun efecto nada los leds no los enciende, me ti uno que diste en los comentarios del arbol de navida ese si me sirvio pero quisiera darle el efecto del caleidoscopio

18 de julio de 2014, 4:00

@Anónimo
¡Ojo! El código utiliza el pin 7 para controlar los leds, si no utilizas el mismo pin debes cambiarlo en el código

Anónimo
24 de agosto de 2014, 18:07

Hola, pasa algo si utilizo un arduino uno, en cambio de un arduino pro mini?

25 de agosto de 2014, 23:59

@Anónimo
No, funciona exactamente igual :-)

2 de septiembre de 2014, 23:51

Buenas este programa funcionara en el Arduino Mega?? disculpa

3 de septiembre de 2014, 0:45

@Renato Rios
Debería funcionar sin problemas.

Anónimo
25 de septiembre de 2014, 11:01

Hola, En qué pais conseguiste las tiras de leds direccionables? y cuanto tardaron en llegar?

25 de septiembre de 2014, 11:44

@Anónimo
Las compré en ebay, en China.
Tardaron unos 20 días.

Anónimo
26 de octubre de 2014, 11:15

¿hola, podrías hacerme el favor de explicarme de manera sencilla el código de arduino?

Anónimo
29 de octubre de 2014, 14:58

¿En que programa hiciste el esquema de las tiras pixel?

6 de noviembre de 2014, 10:28

Hola, sera Que Podrias Darme Una Breve Explicacion Sobre Como Conectar Un Arduio Uno R3 Con Unas Tiras De Led De Cuatro Entradas (Rojo, Green, Blue Y Grn)

13 de noviembre de 2014, 0:49

@Anónimo
En Adobe Illustrator

13 de noviembre de 2014, 0:53

@Anónimo
Básicamente la rutina PonBola(), crea una 'bola' de varios pixels.
Pixel4 crea una imagen simétrica de cuatro bolas para dar el efecto de un caleidoscopio.
Luego simplemente en el bucle loop(), se crean aleatoriamente bolas de distinto color y tamaño y se 'mueven' o giran tb aleatoriamente.

13 de noviembre de 2014, 0:59

@carolina Rodriguez
Para este tipo de tiras necesitas 3 salidas del Arduino, una para cada color (Rojo, Verde, Azul).
Necesitaras o bien transistores o bien un driver para aumentar la corriente disponbile (con las salidas del Arduino no puede controlar más que un par de leds).
Aqui puedes ver un tutorial.

29 de diciembre de 2014, 11:13

Hola, Quisiera pedirte un consejo. Estoy lidiando con un proyecto y no consigo llevarlo a cabo. La idea es conectar una tira de led por USB a la tele y cuando la tele se enciende quiero que me alimente la tira y de una luz fija. (luz ambiente)

Actualmente estoy probando las conexiones con un enchufe USB del tipo cargador apple, en el USB de mi portatil. Lo que ocurre que la tire solo hace flashes de luz ya sea uno solo o varios y de diferentes colores. Podrias decirme por favor como he de conectarla?

Dispongo de una tira de 70 cm con 40 leds independientes a 5v. tiene las mismas 3 conexiones que la tira de led de tu proyecto.

gracias de antemano
Radu

13 de enero de 2015, 1:42

Hola. Interesante proyecto. Me gustaría hacer algo parecido a tu proyecto pero en grandes dimensiones. Me gustaría preguntarte cuál serí el límite de metros que se podrían controlar con una arduino MEGA. gracias.

3 de febrero de 2015, 6:15

@JMGM
Hola
Este tipo de pixel puede tener varias 'limitaciones'.
La librería de Adafruit necesita 3 bytes por cada pixel, así que puedes calcular la cantidad de RAM que necesitas.
Por otro lado frecuencia de los datos es fija, así que a mayor número de pixels, menor velocidad de refresco. Por ejemplo para 100 leds la velocidad de refresco es de 328Hz, depende de si necesitas una frecuencia muy rápida.
Y por último atención a la alimentación, puede llegar a consumir 60 mA por pixel (6A para 100 pixel!!). Se recomienda distribuir la alimentación por partes.
Te recomiendo la página de Adafruit con todo sobre estas joyas:
https://learn.adafruit.com/adafruit-neopixel-uberguide/overview
Y esta página sobre como controlar 1000 pixels con tan sólo 1K RAM
http://hackaday.com/2014/05/19/driving-1000-neopixels-with-1k-of-arduino-ram/

3 de febrero de 2015, 6:29

@Radu Aleman
Si la tira es igual que la del proyecto, no puedes encenderla con un USB sólo.
Estas tiras necesitan una 'logica' para encenderlas, necesitarías poner un Arduino por ejemplo como es este proyecto.

Anónimo
29 de abril de 2015, 7:57

Donde tengo que añadir la libreria neopixel?

24 de mayo de 2015, 9:29

@Anónimo
En la carpeta de librerías del Arduino.
Aquí hay un tutorial: Instalar librería en Arduino

Anónimo
13 de noviembre de 2015, 9:09

|buenas tardes, una pregunta, lo que pasa es que la tira de leds que he conseguido traen 4 salidas, R, G, B y 12v, como habría que conectarlo para hacer este proyesto, gracias

Anónimo
13 de noviembre de 2015, 12:02

!!!!!!!!!!!!!!!???????????????????

15 de noviembre de 2015, 2:02

@Anónimo
Las tiras que comentas encienden todos los leds al mismo timepo, puedes variar el color de al tira completa, no encender leds individuales ....
Eso lo complica bastante. Podrias encender distintos 'trozos' de tiras ..., pero además son de 12v así que necesitas un transistor on un ULN2003 para poder activar cada una de las salidas ..
Puedes ver algo parecido aquí:
Controlling Dioder RGB LED Strips with Arduino

15 de febrero de 2016, 8:12

hey, Can you help me understand the code? I cannot figure it out how it works...

It would be great if you can reply on this mail-id
"s.shreyak96@gmail.com"

Hope to see your reply!

Thank you!

15 de febrero de 2016, 10:36

@Unknown
Basically the routine "PonBola ()" creates a 'ball' from several pixels.
the routine "Pixel4" creates a mirror image of four balls to give the effect of a kaleidoscope.
Then simply the loop "loop()", create randomly balls of different colors and sizes and move it or rotate randomly.

16 de febrero de 2016, 19:09

hola, quisiera saber cuantos led de estos puedo controlar con arduino uno, gracias

17 de febrero de 2016, 23:38

@Unknown
Es difícil decir un número exacto, depende de varios factores (memoria, alimentación velocidad de refresco), pero en un comentario anterior (mira un poco más arriba ;-) )ya comento el tema y un par de enlaces de interés.

10 de mayo de 2016, 14:46

una consulta, yo consegui la tira que trae el controlador lpd6803, quisiera saber que cambios tengo que hacer para que funcione, Desde ya muchas gracias

11 de mayo de 2016, 0:06

@Elias Vargas
Tendrás que cambiar de librería para ese controlador.
Hay una en https://github.com/adafruit/LPD6803-RGB-Pixels
Al parecer es casi compatible con la de los ws2812, salvo que en el setup debes añadir una instrucción:
strip.setCPUmax(50);
Tienes un tutorial en https://learn.adafruit.com/20mm-led-pixels/code

Dorian López
21 de julio de 2016, 3:11

Hola! Muy buen proyecto! Me gustaría hacer uno parecido solo que la iluminacion cambie en función de un angulo de giro, por ejemplo añadiendo un potenciómetro de manera que en función de la posición la imagen cambie. Como afectaría eso al código? o qué se debería añadir para que funcione con el potenciómetro?
Un saludo y gracias!

Anónimo
28 de agosto de 2016, 13:43

hola quisiera saber como puedo descargar la aplicasion del arduino para programarlo

Publicar un comentario en la entrada

Buscar en el blog

Cargando...

¡Lo más visto!

English Version

English Version
Arduino is Cool!!

También en Facebook