Skip to main content

Cómo ilumino una impresora 3D con una tira de leds WS2812

En su día ya aprendimos a iluminar la impresora 3D usando leds RGB y hacer algún que otro efecto. Más tarde, me preguntaron a ver si podía explicar cómo hacer algo parecido pero con una tira de leds WS2812. Así que investigando, aprendimos a utilizarla, y hoy finalmente podemos escribir este tutorial ya que hemos añadido en Marlin trocitos de código para crear efectos.

Vamos a partir de que no has leído los dos artículos que menciono en el primer párrafo (¡aunque deberías!, sobretodo el segundo). Vamos a partir de que has leído el segundo artículo, este concretamente.

Aclaraciones previas

  • He usado la electrónica Arduino Mega + RAMPS 1.4, por lo que los cambios relativos a los pines los he hecho en el fichero corrrespondiente a la RAMPS.
  • Únicamente he hecho un montaje en protoboard para comprobar que funciona, sin llegar a soldar nada.
  • He usado la mini impresora 3D eGarbigune para testearlo. No es autónoma, por lo que la he tenido enchufada vía USB al ordenador para enviarle comandos desde Pronterface.
  • He usado la última versión de Marlin.

Hardware

He decidido conectar la tira en el pin digital 4, que es donde aparece la zona de los servos. He usado este pin ya que tiene PWM, pero puedes escoger otro de las mismas características que no estés utilizando. Además, por cómo tiene las conexiones la tira, vamos a usar estos 3 pines que he marcado en la foto ya que son muy cómodos. Para ello, tendremos que suministrar 5V a la fila de en medio, y lo hacemos conectando lo que aparece en la imagen, es decir, 5V con VCC. Por defecto en la RAMPS esta fila no viene alimentada. Si no tenemos nada soldado ahí, yo soldaría 3 pines macho, y luego mediante un jumper conectaría los dos que me interesan.

Una vez hecho esto, colocamos una resistencia de 470ohm en el pin de datos. Esto realmente es para que haya una pequeña caída de tensión con el fin de no dañar los primeros leds. Eso es lo que he entendido. Yo la he colocado por si acaso.

Software

NOTA: Como has leído el artículo que he indicado al principio, doy por hecho que ya tienes la librería FastLED en su lugar correspondiente.

Como ya expliqué en el primer artículo de iluminar una impresora 3D hay que realizar una serie de cambios. Quitando el primer paso, los demás os dejo los ficheros en GitHub.

  1. En el fichero Configuration.h descomentamos la línea relativa a los leds de la temperatura.
    #define TEMP_STAT_LEDS
  2. En el fichero pins_RAMPS.h añadimos el siguiente trozo de código.
    //--------ACTIVAMOS LED------------//
    #if ENABLED(TEMP_STAT_LEDS)
        #define STAT_LED_WS   4
    #endif
    //-------ACTIVAMOS LED-------------//
  3. En el fichero Marlin_main.cpp vamos a customizar a nuestro gusto el código. Siempre a la hora de escribir código lo he puesto indicando que tiene que estar definido STAT_LED_WS. De esta forma, si quisiera implementar otra forma de iluminar la impresora pero sin esta variable, no ejecutaría el código de este tutorial.
     #ifdef STAT_LED_WS
        //Mi código a definir
     #endif

    Tampoco voy a poner ahora una chapa de código, os explico mi ejemplo y os lo descargáis desde Github si os gusta o lo modificáis o lo escribís de 0. Lo que prefiráis.

Mi ejemplo

  • Modo espera hace el efecto del coche fantástico.

     

  • Mientras se calienta hace un fading de azul a rojo represantando la temperatura.
  • Una vez en el rango de temperatura para empezar a imprimir los leds se apagan para evitar consumo.
  • Cuando se enfría se entiende que la impresión ha acabado y los leds hacen un fading de rojo a azul (leds pares) indicando la temperatura o están en verde estático (leds impares), de forma alterna.

Y por último te dejo aquí el enlace a los ficheros.

> Todos los archivos necesarios

 

Eneko Montero

Estudiando teleco e imprimiendo en 3D. A veces hago robotillos. Cuando tengo tiempo escribo algún artículo.

Deja un comentario