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€ ..
Una plancha de plexiglas opalino, se encarga de difuminar la luz de los leds y realzar el efecto.
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).
El código realiza una serie de patrones aleatorios simétricos para simular el funcionamiento de un Caleidoscopio.
https://github.com/arduino-guay/Blog/tree/master/Caleidoscopio
Si te ha gustado, recuerda compartirlo en tu red social favorita. Gracias
disculpa el código del caleidoscopio no lo puedo descargar
ResponderEliminar@Anónimo
ResponderEliminar¿Cuál es el problema?, He comprobado el enlace y funciona
Este comentario ha sido eliminado por el autor.
ResponderEliminarComo puedo adaptar el programa para el arduino 1 r3?? esque yo te esa tarjeta
ResponderEliminar@Anónimo
ResponderEliminarFunciona sin problemas con un Arduino UNO R3.
Enhorabuena por el proyecto¡ Me gustaría hacerme uno ya que me parece un proyecto sencillo y vistoso.
ResponderEliminarLos materiales (aparte de la placa arduino) donde los has adquirido?
@Anónimo
ResponderEliminarLa 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.
me parecio increíble este proyecto ! y ya lo ando empezando
ResponderEliminarme podrias mostrar el diagrama de conexión ?
@Anónimo
ResponderEliminarComo 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.
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 ?
ResponderEliminar@Anónimo
ResponderEliminarTienes cargada la librería de Adafruit? Adafruit Neopixel
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
ResponderEliminar@Anónimo
ResponderEliminar¡Ojo! El código utiliza el pin 7 para controlar los leds, si no utilizas el mismo pin debes cambiarlo en el código
Este comentario ha sido eliminado por un administrador del blog.
ResponderEliminarHola, pasa algo si utilizo un arduino uno, en cambio de un arduino pro mini?
ResponderEliminar@Anónimo
ResponderEliminarNo, funciona exactamente igual :-)
Buenas este programa funcionara en el Arduino Mega?? disculpa
ResponderEliminar@Renato Rios
ResponderEliminarDebería funcionar sin problemas.
Hola, En qué pais conseguiste las tiras de leds direccionables? y cuanto tardaron en llegar?
ResponderEliminar@Anónimo
ResponderEliminarLas compré en ebay, en China.
Tardaron unos 20 días.
¿hola, podrías hacerme el favor de explicarme de manera sencilla el código de arduino?
ResponderEliminar¿En que programa hiciste el esquema de las tiras pixel?
ResponderEliminarHola, 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)
ResponderEliminar@Anónimo
ResponderEliminarEn Adobe Illustrator
@Anónimo
ResponderEliminarBá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.
@carolina Rodriguez
ResponderEliminarPara 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.
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)
ResponderEliminarActualmente 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
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.
ResponderEliminar@JMGM
ResponderEliminarHola
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/
@Radu Aleman
ResponderEliminarSi 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.
Donde tengo que añadir la libreria neopixel?
ResponderEliminar@Anónimo
ResponderEliminarEn la carpeta de librerías del Arduino.
Aquí hay un tutorial: Instalar librería en Arduino
|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
ResponderEliminar!!!!!!!!!!!!!!!???????????????????
ResponderEliminar@Anónimo
ResponderEliminarLas 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
hey, Can you help me understand the code? I cannot figure it out how it works...
ResponderEliminarIt would be great if you can reply on this mail-id
"s.shreyak96@gmail.com"
Hope to see your reply!
Thank you!
@Unknown
ResponderEliminarBasically 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.
hola, quisiera saber cuantos led de estos puedo controlar con arduino uno, gracias
ResponderEliminar@Unknown
ResponderEliminarEs 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.
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
ResponderEliminar@Elias Vargas
ResponderEliminarTendrá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
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?
ResponderEliminarUn saludo y gracias!
hola quisiera saber como puedo descargar la aplicasion del arduino para programarlo
ResponderEliminarHola J.Daniel! gracias por compartirlo. Acabo de construir uno, y la verdad que es muy intersante el resultado. Es ciertto que yo lo estoy modificando un poco, pues tengo 10 tiras y 40 leds en total.... pero funciona todo perfecto. Gracias!
ResponderEliminar