Tabla de contenido:

Secuenciador LED RGB programable (usando Arduino y Adafruit Trellis): 7 pasos (con imágenes)
Secuenciador LED RGB programable (usando Arduino y Adafruit Trellis): 7 pasos (con imágenes)

Video: Secuenciador LED RGB programable (usando Arduino y Adafruit Trellis): 7 pasos (con imágenes)

Video: Secuenciador LED RGB programable (usando Arduino y Adafruit Trellis): 7 pasos (con imágenes)
Video: Секвенсор светодиодных лент RGB с использованием Arduino и Adafruit Trellis 2024, Mes de julio
Anonim
Image
Image
Conecte la placa del controlador
Conecte la placa del controlador

Mis hijos querían tiras de LED de colores para iluminar sus escritorios, y yo no quería usar un controlador de tira RGB enlatado, porque sabía que se aburrirían con los patrones fijos que tienen estos controladores. También pensé que sería una gran oportunidad crear una herramienta de enseñanza para ellos que pudieran usar para perfeccionar las habilidades de programación y electrónica que les he estado enseñando. Este es el resultado.

Le mostraré cómo construir este controlador de tira de LED RGB programable y simple usando un Arduino Uno (o Nano), un Adafruit Trellis y un puñado de otras partes.

El Adafruit Trellis es uno de mis juguetes nuevos favoritos de Lady Ada y su equipo. En primer lugar, cuesta solo $ 9.95 para la placa y otros $ 4.95 para el teclado de elastómero de silicona (precios al momento de escribir este artículo). Eso es una gran oferta para una matriz 4x4 de 16 botones con capacidad LED. No viene con ningún LED montado, debe suministrarlos, pero eso le brinda la flexibilidad de elegir los colores que desea (y mantiene bajos los costos y la complejidad en comparación con la construcción en LED direccionables). Para construir este proyecto como el mío, necesitará un puñado de LED de 3 mm. Usé 2 rojos, 2 verdes, 2 azules, 4 amarillos y 6 blancos.

El Trellis usa I2C para comunicarse, por lo que solo requiere dos pines de E / S (datos y reloj) para controlar 16 botones y 16 LED.

Puede hacer la parte de hardware de este proyecto en una pequeña placa proto, que es como hice mi prototipo. Rápidamente me di cuenta de que necesitaba algo más ordenado y contenido en sus escritorios (un Arduino desnudo y una placa proto golpeando serían demasiado frágiles), así que hice mi propio escudo para manejar las tiras de LED. Las instrucciones y archivos para construir el escudo se incluyen en el último paso.

El controlador utiliza tres MOSFET IRLB8721 y tres resistencias. Y, por supuesto, necesitará una tira de LED para conducir; Prácticamente cualquier tira simple de LED RGB de 12 V servirá. Estos son LED simples, como los SMD 5050, no los elegantes direccionables individualmente (sin NeoPixels, etc.), ¡ese es otro proyecto! También necesita una fuente de alimentación de 12 V lo suficientemente grande como para controlar la cantidad de LED que desea utilizar.

Entonces, para recapitular, estas son las necesidades básicas de hardware para este proyecto:

  • Un Arduino Uno o Nano (estas instrucciones son para Uno con encabezados hembra instalados, pero Nano en una placa funciona bien) (Adafruit, Amazon, Mouser);
  • Un tablero Adafruit Trellis y un botón de silicona (Adafruit);
  • Tres MOSFET de canal N IRLB8721 (Adafruit, Amazon, Mouser);
  • Tres resistencias de 1K (Amazon, Mouser);
  • Tres resistencias de 220 ohmios (Amazon, Mouser)
  • Una pequeña placa proto (la primera fue de 1/4 de tamaño; elija cualquier tamaño con el que pueda trabajar cómodamente) (Adafruit, Amazon);
  • Una tira de LED RGB de 12V (SMD 5050) (Adafruit, Amazon);
  • Fuente de alimentación de 12 V: elija una potencia adecuada para la cantidad de LED que planea conducir.

Exención de responsabilidad requerida: los enlaces anteriores se proporcionan para su conveniencia y no son un respaldo de ningún producto o proveedor; ni me beneficio de las compras realizadas en estos enlaces. Si tiene proveedores que le gustan más, ¡apóyelos por todos los medios!

Empecemos…

Paso 1: Conecte la placa del controlador

Conecte la placa del controlador
Conecte la placa del controlador

Aquí está el circuito del controlador LED. Es muy simple. Utiliza un MOSFET de canal N IRBLxxx para cada canal en la tira de LED. La tira de LED es un ánodo común, lo que significa que se envían +12 V a la tira de LED, y los canales de LED rojo, verde y azul se controlan proporcionando tierra en la conexión respectiva a la tira. Entonces, conectaremos el drenaje de los MOSFET a los canales de color del LED y la fuente a tierra. Las puertas se conectarán a las salidas digitales de Arduino, y las resistencias proporcionan un menú desplegable que garantiza que cada MOSFET se encienda o apague completamente según sea necesario.

El Arduino ofrece modulación de ancho de pulso en algunas de sus salidas digitales, por lo que usaremos esas salidas (específicamente D9, D10, D11) para que se pueda controlar la intensidad de cada canal de color.

Si está confundido acerca de qué conectar y en qué lugar de los MOSFET IRLB8721, sostenga uno en la mano con la parte frontal hacia usted, como se muestra en la foto de arriba. El pin de la izquierda (pin 1) es la puerta y se conectará a un pin de salida digital Arduino y a la resistencia (el otro extremo de la resistencia debe conectarse a tierra). El pin en el centro (pin 2) es el drenaje y se conecta al canal de color de la tira de LED. El pin de la derecha (pin 3) es la fuente y está conectado a tierra. Asegúrese de realizar un seguimiento de qué transistor se conecta a qué canal de color de LED.

No entraré en detalles sobre cómo soldar placas proto. Honestamente, lo odio y no soy bueno en eso. Pero para bien o para mal, funciona, y es una forma rápida y sucia de hacer un prototipo sólido o único. Aquí se muestra mi primer tablero.

También puedes hacer esto en un tablero. Sin duda, sería más rápido que soldar todo en una placa proto, pero menos permanente.

Una vez que haya conectado su controlador, conecte las entradas de la puerta MOSFET a los pines de salida digital de Arduino: D9 para el canal verde, D10 para el canal rojo y D11 para el canal azul. Conecte la tira de LED a su placa proto también.

Además, asegúrese de que su placa de controlador tenga una conexión separada de su tierra a uno de los pines de tierra de Arduino.

Finalmente, para la alimentación del LED, conecte el cable negativo (tierra) del suministro de 12 V a una tierra en su placa de controlador. Luego, conecte el cable positivo del suministro de 12 V al cable del ánodo de su tira de LED (este es un cable negro en mis cables que se muestran en la imagen).

Al final, terminé diseñando un protector de placa de circuito impreso que se monta en el Uno y también tiene un soporte de montaje para el Trellis. Esto proporcionó un producto final mucho más acabado. Si desea hacer eso, puede omitir el uso de la placa proto como se describe aquí y simplemente hacer la placa protectora. Todo eso se describe en el último paso.

Paso 2: coloque LED en el enrejado

Ponga LED en el Trellis
Ponga LED en el Trellis

La placa Trellis tiene almohadillas vacías para LED de 3 mm que necesitaremos llenar. Observe cuidadosamente los símbolos en las almohadillas: hay un "+" muy sutil al lado de la almohadilla para designar el lado del ánodo. Si sostiene la placa de modo que el texto quede hacia arriba, también hay una anotación en la parte superior e inferior de la placa que indica que los ánodos LED están a la izquierda.

Suelde sus LED de 3 mm a la placa. Mirando la parte frontal del tablero, escriba el lado derecho hacia arriba, la posición del interruptor / LED superior izquierdo es el n. ° 1, la parte superior derecha es el n. ° 4, la parte inferior izquierda es el n. ° 13 y la parte inferior derecha es el n. ° 16. Estos son los colores que usé en cada posición (y hay una razón por la cual, así que le aconsejo que siga mi patrón al menos para las dos filas superiores):

1 - rojo2 - verde3 - azul4 - blanco5 - rojo6 - verde7 - azul8 - blanco9 - blanco10 - blanco11 - amarillo12 - amarillo13 - blanco14 - blanco15 - amarillo16 - amarillo

CC Attribution: La imagen de Trellis de arriba es de Adafruit y se utiliza bajo la licencia Creative Commons - Attribution / ShareAlike.

Paso 3: conecta el Trellis al Arduino

Conecte el Trellis al Arduino
Conecte el Trellis al Arduino

El Trellis tiene cinco almohadillas de cableado, pero solo cuatro se utilizan en este proyecto. El Trellis necesita SDA y SCL para comunicarse con Arduino (usando I2C), y 5V y GND para poder. El último pad, INT, no se utiliza. Las almohadillas Trellis aparecen en los cuatro bordes del tablero. Puede utilizar cualquier juego de pads que desee.

Suelde un cable de interconexión sólido a las almohadillas de 5V, GND, SDA y SCL. Luego, conecte el cable de 5V al pin de 5V en el Arduino, el GND al pin de tierra, el cable SDA a A4 y el cable SCL a A5.

A continuación, vamos a encender el Arduino y cargarle el boceto. Ahora es un buen momento para colocar el teclado de silicona en el tablero Trellis. Simplemente se asienta en el tablero (observe las "protuberancias" en la parte inferior de la almohadilla que encajan en los orificios de la tabla), por lo que es posible que desee usar un par de trozos de cinta para sujetar los bordes de la almohadilla al tablero durante ahora.

CC Attribution: la imagen de cableado Trellis de arriba es una versión recortada de esta imagen por Adafruit, y se usa bajo la licencia Creative Commons - Attribution / ShareAlike.

Paso 4: descargue el boceto del proyecto y cárguelo en Arduino

Puede descargar el boceto de mi repositorio de Github para este proyecto.

Una vez que lo tenga, ábralo en el IDE de Arduino, conecte el Arduino con un cable USB y cargue el boceto en el Arduino.

Si el boceto está cargado y el Trellis está conectado correctamente, cualquiera de los botones del Trellis debería parpadear rápidamente tres veces cuando se presione. Esta es una indicación de que ha presionado un botón no válido, porque el sistema aparece en su estado "apagado", por lo que la única pulsación de tecla válida es la necesaria para encenderlo.

Para encender el sistema, presione y mantenga presionado el botón inferior izquierdo (# 13) durante al menos un segundo. Cuando suelte el botón, todos los LED deberían iluminarse brevemente y luego las dos filas inferiores se apagarán, excepto el # 13 (abajo a la izquierda). El sistema ahora está encendido e inactivo.

Puede intentar usar las dos filas superiores para iluminar y atenuar los canales LED como primera prueba. Si está funcionando, puede continuar con el siguiente paso. Si no es así, marque:

  1. La fuente de alimentación LED está conectada y encendida;
  2. Los MOSFET de la placa del controlador están conectados correctamente. Si usa los mismos IRLB8721 que usé, verifique:

    • Las entradas de señal de la placa del controlador (puertas MOSFET, pin 1 de IRLB8721) están conectadas a Arduino D9 = verde, D10 = rojo, D11 = azul (ver nota a continuación);
    • La tira de LED está conectada a la placa del controlador y los canales de color de LED están conectados a los drenajes MOSFET (IRLB8721 pin 2);
    • Los pines de la fuente MOSFET (IRLB8721 pin 3) están conectados a tierra en la placa del controlador;
  3. Conexión a tierra entre la placa del controlador y el pin de tierra Arduino.

En el siguiente paso, jugaremos con algunas de las funciones de la interfaz de usuario del panel de botones.

NOTA: Si su controlador está funcionando pero los botones de intensidad no controlan los colores correctos, ¡no se preocupe y no vuelva a cablear! Simplemente ingrese al Sketch en el IDE de Arduino y modifique las definiciones de los pines ROJO, VERDE y AZUL cerca de la parte superior del archivo.

Paso 5: Funciones de control básicas

Funciones de control básicas
Funciones de control básicas

Ahora que el sistema está encendido, podemos jugar con algunos de los botones y hacer que funcione.

Como dije en el paso anterior, cuando se enciende, el sistema se enciende en su estado "inactivo". En este estado, puede usar los botones de las dos filas superiores para aumentar y disminuir la intensidad del color de cada uno de los canales LED rojo, verde y azul. Si usa los botones blancos de aumento / disminución, el sistema aumenta o disminuye la intensidad de los tres canales por igual y en niveles iguales.

Las dos filas inferiores se utilizan para reproducir patrones predefinidos. Estos patrones se almacenan en la EEPROM de Arduino. Cuando el boceto se ejecuta por primera vez, ve que la EEPROM no tiene ningún patrón almacenado y almacena un conjunto de patrones predeterminados. A partir de entonces, puede cambiar estos patrones y sus cambios se almacenan en la EEPROM de Arduino, reemplazando el patrón preestablecido. Esto asegura que sus patrones sobrevivan a las desconexiones de energía. La función de edición se describe en el siguiente paso.

Por ahora, presione brevemente cualquiera de los botones preestablecidos (los ocho botones en las dos filas inferiores) para ejecutar el patrón almacenado para ese botón. El botón parpadea mientras se ejecuta el patrón. Para detener el patrón, vuelva a presionar el botón de patrón brevemente. Mientras se está ejecutando un patrón, los botones blancos arriba / abajo en las filas superiores se pueden usar para cambiar la velocidad del patrón.

Si deja el proyecto solo durante unos segundos sin tocar ningún botón, notará que los LED se atenúan. Esto es tanto para ahorrar energía como para evitar que Trellis ilumine en exceso cualquier "estado de ánimo" que los LED estén tratando de crear. Tocar un botón en Trellis lo reactivará.

Para apagar el sistema, presione y mantenga presionado el botón inferior izquierdo (# 13) durante uno o más segundos y suéltelo. El enrejado y la tira de LED se apagarán.

Paso 6: edición de patrones en el teclado

Edición de patrones en el teclado
Edición de patrones en el teclado

Como dije en el paso anterior, el boceto almacena ocho patrones predeterminados en EEPROM la primera vez que se ejecuta. Puede cambiar 7 de estos patrones a otra cosa si lo desea utilizando el modo de edición de patrones en el panel de botones.

Para ingresar al modo de edición de patrones, primero decida para qué botón desea editar el patrón. Puede elegir cualquier botón que no sea el botón inferior izquierdo. Ingrese al modo de edición de patrones presionando prolongadamente (mantenga presionado más de un segundo) en el botón de patrón elegido. Cuando lo suelte, el botón se iluminará de forma fija y las dos filas superiores comenzarán a parpadear. Esto indica que está en modo de edición.

El modo de edición comienza en el primer paso del patrón y continúa hasta que salga de la edición o termine de editar el paso 16 (16 pasos como máximo por patrón). En cada paso, use los botones de intensidad de canal en las dos filas superiores para seleccionar el color que desea para ese paso. Luego, presione brevemente el botón de patrón predeterminado para guardar ese color y pasar al siguiente paso. En su último paso, en lugar de presionar brevemente, simplemente presione prolongadamente para salir de la edición.

Después de salir de la edición de patrones, el patrón se reproduce automáticamente.

¡Eso es todo! Ahora tiene un controlador LED RGB que secuenciará patrones que puede programar a través del teclado. Puede detenerse aquí, o si desea crear una versión más formal de este proyecto, continúe con el resto de los pasos.

Paso 7: Mejor hardware: carcasa y protección del controlador LED RGB

Image
Image
Mejor hardware: carcasa y protección del controlador LED RGB
Mejor hardware: carcasa y protección del controlador LED RGB
Mejor hardware: carcasa y protección del controlador LED RGB
Mejor hardware: carcasa y protección del controlador LED RGB

Una vez que tuve un prototipo funcional, supe que no podía dejar una placa Arduino y proto desnuda en los escritorios de mis hijos como una solución permanente. Necesitaba un recinto para el proyecto. También decidí que haría una placa de conductor mejor y pensé que era la oportunidad perfecta para hacer mi propio escudo.

Limpié mi esquema de papel ingresándolo en ExpressSCH, una herramienta gratuita ofrecida por ExpressPCB, un fabricante de placas que ofrece tiradas cortas y económicas de placas de PC pequeñas. He estado usando ExpressPCB durante más de una década en proyectos, pero use las herramientas y el fabricante que prefiera, por supuesto.

Agregué un par de pequeñas características al esquema básico para que funcionara bien como un escudo para este proyecto. Agregué almohadillas de cableado para conectar el Trellis, un conector de alimentación, una lámpara piloto y un conector para la tira de LED. También agregué un lugar para un condensador en la fuente de alimentación. El circuito final se muestra aquí.

Decidí que la energía para el proyecto debería provenir del escudo. Los 12V suministrados al escudo alimentan tanto la tira de LED como el Arduino. La alimentación al Arduino se proporciona conectando la entrada de suministro al pin VIN del Arduino, que es bidireccional (puede suministrar alimentación al Arduino en este pin, o si conecta la alimentación al Arduino en otro lugar, le proporcionará el encienda este pin). El diodo de protección D1 evita que cualquier energía conectada directamente al Arduino (por ejemplo, USB) intente encender los LED.

¿Por qué no usar el conector de alimentación de Arduino y simplemente conectar 12V allí? Si bien podría haber suministrado 12V al conector de alimentación de Arduino y usar el pin VIN para tomar esa energía para el escudo, me preocupaba que el diodo D1 de Arduino y las trazas no estuvieran a la altura de las altas corrientes posibles al conducir el LED tiras. Entonces, decidí que mi escudo se haría cargo de la entrada de energía y suministraría energía al Arduino en su lugar. También necesitaba 5V para el Trellis, pero la regulación de energía a bordo del Arduino suministra 5V en varios pines, así que usé uno de ellos para el Conducción. Eso me salvó de poner un circuito regulador en el escudo.

Luego coloqué el PCB. Usé algunos recursos que encontré para obtener las medidas exactas para la ubicación de los pines para cumplir con los encabezados en el Arduino Uno. Un poco de diligencia y coincidió en el primer intento. No hay mucho en el circuito de blindaje en sí, así que tenía mucho espacio. Establecí trazos amplios para las cargas de LED, por lo que habría suficiente capacidad de transporte de corriente para mis necesidades. Coloqué los MOSFET donde podrían montarse planos, con o sin disipadores de calor. Hasta ahora, no he necesitado disipadores de calor para la cantidad de LED que he estado usando, pero el espacio está ahí si es necesario.

También agregué orificios que coincidían con los orificios de montaje en el Trellis, de modo que pudiera usar separadores para montar el Trellis en mi escudo. Con el escudo enchufado al Arduino y el Trellis suspendido en separadores sobre el escudo, todo debería ser agradable y sólido.

Luego imprimí el diseño del tablero y lo pegué a un trozo de núcleo de espuma, e inserté mis partes para asegurarme de que todo encajara. Todo bien, así que envié el pedido.

Luego comencé a trabajar en un recinto. Usando Fusion 360, diseñé un gabinete simple para contener las tres placas (Arduino Uno, shield y Trellis). Los orificios en el gabinete permiten la conexión al puerto USB de Arduino y, por supuesto, el acceso a la conexión de la tira de LED y el conector de alimentación del blindaje. El conector de alimentación Arduino está cubierto por la carcasa, para garantizar que no se utilice. Después de un par de prototipos para la prueba de ajuste, finalmente tuve un diseño con el que estaba satisfecho. Publiqué los archivos STL para el gabinete en Thingiverse.

En el futuro, haré una versión de la placa a la que se pueda conectar un Nano directamente. Esto haría que el proyecto fuera aún más compacto. Hasta entonces, también puedes usar un adaptador de escudo Nano a Uno como este.

Si va a hacer el escudo, esto es lo que necesitará además de las partes mencionadas en el paso 1:

  • Placa de PC RGB LED Driver Shield (de ExpressPCB u otros; puede descargar los archivos de mi repositorio de Github para el proyecto);
  • Diodo 1N4002;
  • Condensador electrolítico radial de 100 uF 25 V (use 220 uF o 470 uF si la carga de LED es grande);
  • Toma de corriente, PJ202-AH (modelo con clasificación de 5A).

Las siguientes partes son opcionales:

  • LED de 3 mm: cualquier color, para lámpara piloto (puede omitirse)
  • Resistencia de 1500 ohmios: solo se necesita si se usa una lámpara piloto LED

Recomendado: