Revista Tecnología

Cómo probar una tira de leds WS2801

Publicado el 19 febrero 2017 por Soloelectronicos @soloelectronico
Es muy frustrante adquirir una costosa tira de leds WS2801 ( ni importa que sea SMD o en formato "luces de navidad") , adherirla y fijarla con mucho esmero a nuestro TV o monitor ,siguiendo cuidadosamente los muchísimos tutoriales que hay en Internet (por ejemplo para simular con esta el famoso sistema ambilight ), y al final no conseguimos obtener nada quizás porque nuestro hardware esta mal conectado (o tenemos algo estropeado) o bien no hemos configurado el sw ,o una mezcla de ambas cosas. Antes de abandonar veamos con la ayuda de una placa Arduino Uno conectada a nuestro PC , vamos a ver algunas pautas que seguro nos resuelven el misterio:

En primer lugar usaremos una placa Arduino UNO , para lo cual usaremos sólo t res cables para conectar a uno de los extremos de la tira de leds a Arduino . Las conexiones estandarizadas que haremos sea cual sea la modalidad de la tira de leds son las siguientes:

  • CK de la tira WS2801 al pin GPIO 13(reloj del SPI)
  • SD de la tira WS2801 al pin GPIO11 (SPI MOSI).
  • GND de la tira WS2801 al GND de Arduino
  • +5v de la tira WS2801 a una fuente de alimentación aparte de mínimo 2Amp ,5VDC

En algunas tiras formato "luces de navidad" el hilo azul es GND , el . Verde es CK y amarillo es SD ,y el cable rojo es +5V , pero esto no es norma porque las tiras SMD suelen tener un cable rojo para CK, otro verde para SD , el negro para GND y un violeta para +5V , lo cual como vemos no sigue para nada la pauta anterior

Aunque no es necesario también se puede utilizar un Arduino Mega, conectando reloj del SPI al pin 52 , conectando SD al pin 51 SPI MOSI y por supuesto las masas.

Es importante destacar que los cables extra rojo y azul son para conectar 5V DC de al menos 2 Amp ( en función del numero de leds que vayamos a conectar) lo cual no deberíamos extraer de la placa Arduino sino de una fuente auxiliar DC de 5V no olvidando de unir ambas masas ( la de Arduino y de la fuente externa).

En el siguiente esquema podemos ver claramente este montaje.

Cómo probar una tira de leds WS2801

Para probar la tira de leds necesitamos si aun no lo tenemos dos herramientas :

    El IDE de Arduino :Si no lo tiene ya instalado , descargar el Arduino IDE (entorno de desarrollo integrado) de la Web de Arduino. Seleccione la versión del software para su tipo de computadora: Windows, Mac o Linux Es un poco diferente para cada uno de los tres sistemas operativos.
    El IDE de Processing:A continuación, descargue el IDE de processing del sitio de procesamiento.Descomprima el fichero y cópielo al directorio c:\archivos de programa\ . Es importante que descargue la versión processing 2.2 pues la versión 3.0 con el codigo Adalight tendra errores con él.

El IDE de Arduino y Processing son muy similares pero son dos programa muy distintos para diferentes funciones como vamos a ver

Descargar Adalight ZIP

Por último, visite la página Adalight en Github y descargue el archivo ZIP. El botón de descarga está cerca de la parte superior izquierda de la página:

Cómo probar una tira de leds WS2801

Después de descomprimir el archivo ZIP, necesitará mover algunos archivos en su lugar.

Si ha ejecutado el Arduino o el IDE de processing debería haber dos correspondientes carpetas llamadas "Arduino" y de "Procesing" dentro de su carpeta personal de "Documents" (o "Mis documentos" en Windows). En ese caso, mover el contenido de la Arduino y procesando carpetas desde el archivo ZIP de Adalight en las carpetas correspondientes de documentos.

Si las carpetas de Arduino y Processing todavía no existen en el sistema, puede copiar estas desde el archivo ZIP de Adalight a la carpeta de documentos.

Los otros archivos y carpetas en el archivo ZIP pueden ser ignoradas ya que son para usuarios avanzados y no son esenciales para su uso.

Cómo probar una tira de leds WS2801

Salga del Arduino y Processing si se están ejecutando pues las carpetas recién instaladas no serán visibles hasta la siguiente vez que inicien estos programas.

Programar Arduino

Para probar la tira de leds en caso de que no lo tenga instalado deberá instalar el IDE de Arduino.Si no lo tiene instalado el IDE de Arduino conecte la placa Arduino al ordenador con un cable USB A-B. Cuando conecta por primera vez, Windows los usuarios le pedirá que para instalar a un controlador.

Iniciar el IDE de Arduino. Después de un momento, debería ver una ventana azul y blanca simple con algunos botones.

En el menú archivo , seleccione Sketchbook, y elegir LEDstream. .

En el menú herramientas , seleccione la placa luego Arduino Uno (o tipo de cualquier placa Arduino que está usando).

En el menú herramientas , seleccione el Puerto Serial y luego el puerto correspondiente a su placa de Arduino.

Haga clic en el botón de subir cerca de la parte superior izquierda de la ventana:

Cómo probar una tira de leds WS2801

Después de que el código sea cargado, si los LEDs están conectados correctamente conectados y la fuente de alimentación está conectada, todos los LEDs deben encenderse en una secuencia primero todo todos en flash rojo, luego verde y después en azul aproximadamente un segundo cada uno, y luego se apagan todos. Se trata de un diagnóstico que indica el LED Arduino están trabajando correctamente y ahora están en espera de datos de que se envíen desde nuestro ordenador con otro sw.

Gracias a que el Arduino almacena el programa en memoria no volátil, sólo necesita hacer este proceso de carga una vez, no cada vez que desee utilizar Adalight.

Si los LED no parpadean, asegúrese de que el cableado coincide con la página anterior, y que la fuente de alimentación está conectada.

Si persiste el error deberíamos probar la salida digital de los pines 11 y 13 por si estuviesen defectuosas, para lo cual conecte dos leds normales entre GND y los pines 11 y 13 y cargue en Arduino el siguiente código de ejemplo:

void setup(){
pinMode(13, OUTPUT);
pinMode(11, OUTPUT);//10 ok 11 ok
}void loop(){digitalWrite(13,HIGH);
digitalWrite(11,LOW);

delay(1000);

digitalWrite(13,LOW);
digitalWrite(11,HIGH);

delay(1000); }

Al subir el código anterior en nuestro Arduino , ya deberían parpadear ambos leds , lo cual sera un claro indicio que la placa Arduino esta bien:

Cómo probar una tira de leds WS2801

Una vez hayamos probado que la placa Arduino esta correcta con el simple test anterior, lo que nos queda es volver a cargar el sketch de probar LedStream cargado inicialmente pues hay evidencias de que algún (o algunos) modulo(s) mal que esta bloqueando el resto de módulos

En el caso de que sólo los primeros pocos LEDs respondan y ,el resto permanece apagado o parpadea aleatoriamente o incluso no se encienda ninguno, tendrá que estudiar cual de los módulos esta mal .

Dentro de cada píxel hay una pequeña placa de circuito con el CI WS2801 el led RGB y algunos componentes adicionales . Si no funciona el primer píxel apretar las conexiones donde el cable de cinta se une a la placa e intente comprobar la conexión ,Si no funcionase , puede recortar ese modulo , conectando las conexiones al siguiente píxel y seguir la dirección de conexión ( en el montaje SMD llevan una flecha que indica claramente el orden de conexiones)

Cómo probar una tira de leds WS2801

Si consigue que algunos leds funcionen pero aún así algún led posterior parpadea ,y fallan después todos los siguientes en la cadena ,también es muy posible que ademas haya algún otro chip defectuoso mas , así que el proceso anterior lo deberá repetir cortando el led asignado a ese IC defectuoso y restituyendo las conexiones soldando cablecillos entre el modulo anterior y el siguiente .

Cómo probar una tira de leds WS2801

Este paso debe realizarlo solo cuando el test de ledStram muestre la secuencia de arranque de rojo, verde y azul apagándose todos después.

Inicie el programa Processing ejecutando el archivo "C:\Program Files\processing-2.2.1-windows64\processing-2.2.1\processing.exe". Después de un momento, debería ver una ventana simple de blanca y gris muy similar al IDE de Arduino.

En el menú archivo , seleccione carpeta de bocetos, y seleccionar el último primero: Colorswirl.

Cómo probar una tira de leds WS2801

Es muy importante anotar el numero de leds( en el ejemplo 88) tras el primer import:

import processing.serial.*;int N_LEDS = 88; // Max of 65536

Haga clic en el botón Ejecutar cerca de la parte superior izquierda de la ventana: si el Arduino esta arrancado con el sketch (LedStram ) y por supuesto conectada la tira de leds a este y alimentada con la tensión de 5V se debería ver un arco iris colorido de animación sobre los LED.

Si no pasa nada , entonces usted tendrá que editar el código alrededor de la línea 26, buscando esta declaración:

myPort = serie nueva (este, Serial.list() [0], 115200);

Necesitaremos cambiar el código que abre la conexión serie con el Arduino. Una ruta es a través de ensayo y error: tratar Serial.list() [1], entonces Serial.list() [2] y así sucesivamente, volver a arrancar el programa cada vez para ver si funciona.

Para un enfoque más científico, añadir una nueva línea de código antes de ejecutar el sketch:

println(Serial.list());

Cuando se ejecuta, muestra una lista de todos los puertos serie o dispositivos. Si sabe que dispositivo o puerto COM corresponde al Arduino, puede cambiar la línea original para incluir estos datos.

Por ejemplo, ahora se puede leer:

myPort = serie nueva (este, "COM6", 115200);

Obviamente esto será diferente en cada sistema, por lo que dependerá de cada situación..

Si aun tiene dudas ,otra manera de localizar el nombre del puerto, es en el IDE de Arduino, pues el puerto seleccionado se ve en el menú Tools→Serial Por t antes de programar el chip.

Una vez conseguido este efecto sobre los leds , este resultado es sinónimo que absolutamente todos los leds son direccionables por lo que ya puede usar su conjunto de tiras de leds para cualquier aplicación con la certeza de que ya le debería funcionar.

Si planea organizar los LEDs de manera similar a los ejemplos entonces tendrá nada más que cambiar el software. Si utiliza un diseño diferente, necesitará realizar algunos ajustes en el código para identificar su distribución concreta

Como nota ultima :Antes de montar los LEDs detrás del monitor o TV , nunca se olvide de ejecutar el software con los LEDs sueltos en su escritorio para confirmar que todo funciona. !Esto ahorrará tiempo y angustia en el raro evento que un led vuelva a estar mal tenga que sustituirlo!.

Cómo probar una tira de leds WS2801
Esta entrada fue publicada en Arduino, Arduino;Netduino-Plus, Electronica de Potencia, Electronica General, iluminacion, microcontroladores y etiquetada como ambiligt, Arduino, arduino ws8201, no funciona ws8201, probar ambilight, probar tira leds, probar ws8201, processing.

Para probar la tira de leds necesitamos si aun no lo tenemos dos herramientas :

    El IDE de Arduino :Si no lo tiene ya instalado , descargar el Arduino IDE (entorno de desarrollo integrado) de la Web de Arduino. Seleccione la versión del software para su tipo de computadora: Windows, Mac o Linux Es un poco diferente para cada uno de los tres sistemas operativos.
    El IDE de Processing:A continuación, descargue el IDE de processing del sitio de procesamiento.Descomprima el fichero y cópielo al directorio c:\archivos de programa\ . Es importante que descargue la versión processing 2.2 pues la versión 3.0 con el codigo Adalight tendra errores con él.

El IDE de Arduino y Processing son muy similares pero son dos programa muy distintos para diferentes funciones como vamos a ver

Descargar Adalight ZIP

Por último, visite la página Adalight en Github y descargue el archivo ZIP. El botón de descarga está cerca de la parte superior izquierda de la página:

Cómo probar una tira de leds WS2801

Después de descomprimir el archivo ZIP, necesitará mover algunos archivos en su lugar.

Si ha ejecutado el Arduino o el IDE de processing debería haber dos correspondientes carpetas llamadas "Arduino" y de "Procesing" dentro de su carpeta personal de "Documents" (o "Mis documentos" en Windows). En ese caso, mover el contenido de la Arduino y procesando carpetas desde el archivo ZIP de Adalight en las carpetas correspondientes de documentos.

Si las carpetas de Arduino y Processing todavía no existen en el sistema, puede copiar estas desde el archivo ZIP de Adalight a la carpeta de documentos.

Los otros archivos y carpetas en el archivo ZIP pueden ser ignoradas ya que son para usuarios avanzados y no son esenciales para su uso.

Cómo probar una tira de leds WS2801

Salga del Arduino y Processing si se están ejecutando pues las carpetas recién instaladas no serán visibles hasta la siguiente vez que inicien estos programas.

Programar Arduino

Para probar la tira de leds en caso de que no lo tenga instalado deberá instalar el IDE de Arduino.Si no lo tiene instalado el IDE de Arduino conecte la placa Arduino al ordenador con un cable USB A-B. Cuando conecta por primera vez, Windows los usuarios le pedirá que para instalar a un controlador.

Iniciar el IDE de Arduino. Después de un momento, debería ver una ventana azul y blanca simple con algunos botones.

En el menú archivo , seleccione Sketchbook, y elegir LEDstream. .

En el menú herramientas , seleccione la placa luego Arduino Uno (o tipo de cualquier placa Arduino que está usando).

En el menú herramientas , seleccione el Puerto Serial y luego el puerto correspondiente a su placa de Arduino.

Haga clic en el botón de subir cerca de la parte superior izquierda de la ventana:

Cómo probar una tira de leds WS2801

Después de que el código sea cargado, si los LEDs están conectados correctamente conectados y la fuente de alimentación está conectada, todos los LEDs deben encenderse en una secuencia primero todo todos en flash rojo, luego verde y después en azul aproximadamente un segundo cada uno, y luego se apagan todos. Se trata de un diagnóstico que indica el LED Arduino están trabajando correctamente y ahora están en espera de datos de que se envíen desde nuestro ordenador con otro sw.

Gracias a que el Arduino almacena el programa en memoria no volátil, sólo necesita hacer este proceso de carga una vez, no cada vez que desee utilizar Adalight.

Si los LED no parpadean, asegúrese de que el cableado coincide con la página anterior, y que la fuente de alimentación está conectada.

Si persiste el error deberíamos probar la salida digital de los pines 11 y 13 por si estuviesen defectuosas, para lo cual conecte dos leds normales entre GND y los pines 11 y 13 y cargue en Arduino el siguiente código de ejemplo:

void setup(){
pinMode(13, OUTPUT);
pinMode(11, OUTPUT);//10 ok 11 ok
}void loop(){digitalWrite(13,HIGH);
digitalWrite(11,LOW);

delay(1000);

digitalWrite(13,LOW);
digitalWrite(11,HIGH);

delay(1000); }

Este paso debe realizarlo solo cuando el test de ledStram muestre la secuencia de arranque de rojo, verde y azul apagándose todos después.

Inicie el programa Processing ejecutando el archivo "C:\Program Files\processing-2.2.1-windows64\processing-2.2.1\processing.exe". Después de un momento, debería ver una ventana simple de blanca y gris muy similar al IDE de Arduino.

En el menú archivo , seleccione carpeta de bocetos, y seleccionar el último primero: Colorswirl.

Cómo probar una tira de leds WS2801

Es muy importante anotar el numero de leds( en el ejemplo 88) tras el primer import:

import processing.serial.*;int N_LEDS = 88; // Max of 65536

Haga clic en el botón Ejecutar cerca de la parte superior izquierda de la ventana: si el Arduino esta arrancado con el sketch (LedStram ) y por supuesto conectada la tira de leds a este y alimentada con la tensión de 5V se debería ver un arco iris colorido de animación sobre los LED.

Si no pasa nada , entonces usted tendrá que editar el código alrededor de la línea 26, buscando esta declaración:

myPort = serie nueva (este, Serial.list() [0], 115200);

Necesitaremos cambiar el código que abre la conexión serie con el Arduino. Una ruta es a través de ensayo y error: tratar Serial.list() [1], entonces Serial.list() [2] y así sucesivamente, volver a arrancar el programa cada vez para ver si funciona.

Para un enfoque más científico, añadir una nueva línea de código antes de ejecutar el sketch:

println(Serial.list());

Cuando se ejecuta, muestra una lista de todos los puertos serie o dispositivos. Si sabe que dispositivo o puerto COM corresponde al Arduino, puede cambiar la línea original para incluir estos datos.

Por ejemplo, ahora se puede leer:

myPort = serie nueva (este, "COM6", 115200);

Obviamente esto será diferente en cada sistema, por lo que dependerá de cada situación..

Si aun tiene dudas ,otra manera de localizar el nombre del puerto, es en el IDE de Arduino, pues el puerto seleccionado se ve en el menú Tools→Serial Por t antes de programar el chip.

Una vez conseguido este efecto sobre los leds , este resultado es sinónimo que absolutamente todos los leds son direccionables por lo que ya puede usar su conjunto de tiras de leds para cualquier aplicación con la certeza de que ya le debería funcionar.

Si planea organizar los LEDs de manera similar a los ejemplos entonces tendrá nada más que cambiar el software. Si utiliza un diseño diferente, necesitará realizar algunos ajustes en el código para identificar su distribución concreta

Como nota ultima :Antes de montar los LEDs detrás del monitor o TV , nunca se olvide de ejecutar el software con los LEDs sueltos en su escritorio para confirmar que todo funciona. !Esto ahorrará tiempo y angustia en el raro evento que un led vuelva a estar mal tenga que sustituirlo!.

Cómo probar una tira de leds WS2801

Volver a la Portada de Logo Paperblog