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 tres 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).
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.
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:
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.
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:
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.
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:
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)
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 más , 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 .
Ejecutar el Software de Processing
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.
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 new (this, 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 new (this, «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 Port antes de programar el chip.
Obviamente este proceso tendrá que repetirlo hasta que el test de leds ejecutado desde el sketch de ledstream haga que se enciendan completamente todos los ledss de un color en las tres secuencias.