Calificación:
  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Control leds indexables mediante Mcodes
#1
Buenas, dado que hay gente que me ha preguntado por el sistema de iluminación de mis impresoras con neopixel (WS2812b), voy a dejarlo por aquí documentado y así si alguien mas se anima, podemos entre todos seguir con el desarrollo del mismo y mejorando su uso y efectos.  Lengua





El funcionamiendo es sencillo:

Utilizaremos uno de los pines auxiliares para enviar nuestras peticiones hacia el arduino micro/mini, y leeremos el valor de la señal pwm.
Siempre tendremos unas variaciones en la misma, por lo que podremos ver los valores desde el serial descomentando las líneas de debug.

Solo tendremos que unir las masas de los 2 arduinos, y cablear un pin para la comunicación.

En este caso he utilizado el primer pin se servo de la ramps, y el pin 3 en nuestro arduino micro/mini. Este cableado será siempre el mismo
independientemente del número de leds/aros que controlemos.

Necesitaremos la librería de Adafruit para los neopixel, que podréis descargar desde su github.

https://github.com/adafruit/Adafruit_NeoPixel

La instalaremos de la forma habitual dependiendo de nuestro SO.

Una vez instalado, subiremos el sketch "base_kossel". Al tenerlo montado en una kossel plus, tenía 3 líneas independientes de iluminación, una por torre.

Si solo utilizáis una tira, subiremos el sketch "base"

Hardware:

resim


Software:

Los leds los podremos controlar mediante Mcode, al igual que si controlaramos un servo.

Enviando desde Repetier por ej el comando M42 P4 S255 estaremos enviando una señal PMW 255. Este último valor será el que tengamos que cambiar según el comando a ejecutar.

Equivalencias en el sketch base con sus Mcode

Código:
"Off"    M42 P4 S0
"Blanco" M42 P4 S10
"Rojo"   M42 P4 S20
"Verde"  M42 P4 S30
"Azul"   M42 P4 S40

Y en el arduino:

Código:
if(pwm_value == 0){Serial.println("Off");Off();}
 if(pwm_value > 36 && pwm_value < 40 ){Serial.println("Blanco");Blanco();}
 if(pwm_value > 64 && pwm_value < 77 ){Serial.println("Rojo");Rojo();}
 if(pwm_value > 101 && pwm_value < 111 ){Serial.println("Verde");Verde();}
 if(pwm_value > 120 && pwm_value < 146 ){Serial.println("Azul");Azul();}

Como podéis comprobar, al enviar un 10 en el mcode recibiremos un señal que oscilará entre 37-38, por lo que acotamos la comparación entre 36 y 40

En cada bloque de código al que lo enviamos, podemos hacer el efecto correspondiente con los leds.

Utilizando correctamente los Mcode en los gcode de inicio y final de nuestro fileteador, podemos hacer cosas interesantes como que cambien los leds al finalizar una impresión, al alcanzar una temperatura, al hacer homing, etc... 

Además, podemos agregarlos al menú de nuestro lcd y controlarlos desde el mismo.

Estoy poniendo el mismo sistema en mi kossel mini para la cama, en breves actualizo con fotos y novedades!

Dejo adjuntos los sketch base y base_kossel


Archivos adjuntos
.zip   sketch.zip (Tamaño: 2.33 KB / Descargas: 17)
Citar
#2
pillo sitio, gracias por el aporte
Citar
#3
Muy bueno y bien explicado, gracias!!
Citar
#4
Una implementación en una kossel mini, con el sketch base y una sola tira en 3 trozos  Lengua

He diseñado unos pequeños soportes para los leds por no desmontar los perfiles, pero se podría introducir en los mismos aislando las soldaduras de los leds con laca de uñas por ej. También llevan un difusor delante, con el típico plastico de encuadernar presentaciones  Guiño

Las tiras llevan un conector dupont macho de 3 pines soldado para facilitar el montaje y desmontaje del mismo si hiciera falta.

Van alimentados directamente por un bec 5V 5A, y controlado por un arduino micro

resim



Citar
#5
Hola! Yo en mi caso tengo una tira LED de 12V con 4 cables. Las típicas tiras que venden de iluminación.
Como se conectaría a la placa de la anycubic kossel? Me gustaría poder usar el comando M150 del marlín que es para los leds y no tener que hacer un circuito con otro arduino.
Ya me comentaras si es posible.
Un saludo!
Citar
#6
Me apunto, a ver si puedo reaprovechar unos apa102 que me sobraron de un proyecto lightberry
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  CONSULTA CNC 7 ejes Control Sergimech 0 253 07-07-2018, 08:38 PM
Último mensaje: Sergimech
  CONSULTA anillo de leds para extrusor david ortega 1 513 13-09-2017, 04:47 PM
Último mensaje: makoki_63
  Debate: sustituir MOSFET's placa control sifou 33 5,655 15-03-2017, 11:38 PM
Último mensaje: Javiester
  Control de impresora por red hectorri 24 3,560 03-12-2013, 12:45 AM
Último mensaje: wakaru