06-10-2014, 07:03 AM
Buenos dias
No se donde ponerlo pero ya que tiene hardware, software y tiene que ver con los modelos lo he puesto aquí.
Empezaremos con una pequeña modificación del firmware: la regulación de la cama caliente de 220V. También es valido para la de 12v, pero sin cambio de hardware.
Empecemos:
La cama caliente se maneja mediante el sistema "bang bang", una vez alcanza la temperatura, la controladora desactiva el relé y deja de calentar la cama caliente, cuando baja unos grados y vuelve a calentar (en el caso de 220V) ( Esto sirve también para la de 12 V, pero con una pequeña variación que pondré abajo).
Al producirse esos cambios de temperatura repentinos, el espejo y la cama se dilatan y contraen, doblando hacia arriba o hacia abajo.
Al suceder esto se crean capas desiguales y patrones de impresión erróneos (cada vez que la cama recibe energía para mantener la temperatura), creando piezas con capas poco unidas y con malos acabados.
En la siguiente foto podéis ver el efecto:
Pero para evitar esto hay que cambiar el modo en el que se calienta la cama, en vez de utilizar el sistema "bang-bang", utilizar el PWM, que permite variar la entrega de tensión según la temperatura que busquemos, evitándo los golpes de calor/frío y disminuyendo al máximo las diferencias que aparecen en la foto.
El funcionamiento PWM es parecido al "bang-bang", apaga/enciende la resistencia de la cama, la diferencia es que en el modo PWM los ciclos de apagado/encendido, se hacen una vez cada 0.14 segundos, de esta manera la variación de temperatura es mínima.
Hasta aquí todo bien para la cama de 12 V. Pasar al punto 1º
Para 220v la cosa cambia, el relé no es capaz de mantener el ritmo de los ciclos de encendido y apagado del modo PWM, con el consiguiente deterioro mecánico del mismo.
Se me ocurrió probar un relé de estado solido. En principio lo conecte y en modo bang-bang, y funcionaba igual al relé. Después active el modo PWM según el punto 1º que es igual al de la cama de 12 V ( seguir los pasos y cambiar en Marlín punto 1º)
1º Activar el modo PWM tenemos que ir al firmware Marlin y cambiar unas líneas en el Configuration.h:
Tendremos que buscar la línea
// #define PIDTEMPBED
y la línea
// #define BED_LIMIT_SWITCHING
Quitamos los comentarios, borrar las "//"
Buscamos las líneas
#ifdef PIDTEMPBED
//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, argressive factor of .15 (vs .1, 1, 10)
// #define DEFAULT_bedKp 174.56
// #define DEFAULT_bedKi 21.65
// #define DEFAULT_bedKd 351.78
Quitar los comentarios ("//") a las tres últimas líneas, que empiezan por "#define"
Cuando hagamos hecho esto, solo tenemos que cargar el firmware al arduino.
Conectamos la impresora, abrimos el repetier host y nos vamos a la ventana control manual (la que sale al darle a imprimir), poner en modo experto ( easy mode en rojo), pulsaremos el lápiz (ver registro), aparecerá el registro en la parte de debajo de la pantalla, y en la ventana G-CODE manualmente, tenemos que escribir el siguiente código:
M303 E-1 C8 S90
Pulsar enviar.
La impresora comenzará un ciclo de "auto calibrado" Tardará unos minutos, lo que hará es buscar la configuración exacta de nuestra cama caliente para poder controlarla con PWM.
Cuando termine, podremos ver los valores bedKp, bedKi y bedKd en pantalla
Tenemos que volver al Marlin y abrir el configuration.h y escribir los valores que nos acaba de dar en el registro de la imprersora, en las tres líneas que empiezan por #define que habíamos comentado antes.
Por ejemplo si tenemos los valores bedKp = 10, bedKi = 130 y bedKd= 160, tendremos que hacer esto:
//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, argressive factor of .15 (vs .1, 1, 10)
#define DEFAULT_bedKp 10
#define DEFAULT_bedKi 130
#define DEFAULT_bedKd 160
Cargar de nuevo el firmware y a imprimir sin problemas.
No se donde ponerlo pero ya que tiene hardware, software y tiene que ver con los modelos lo he puesto aquí.
Empezaremos con una pequeña modificación del firmware: la regulación de la cama caliente de 220V. También es valido para la de 12v, pero sin cambio de hardware.
Empecemos:
La cama caliente se maneja mediante el sistema "bang bang", una vez alcanza la temperatura, la controladora desactiva el relé y deja de calentar la cama caliente, cuando baja unos grados y vuelve a calentar (en el caso de 220V) ( Esto sirve también para la de 12 V, pero con una pequeña variación que pondré abajo).
Al producirse esos cambios de temperatura repentinos, el espejo y la cama se dilatan y contraen, doblando hacia arriba o hacia abajo.
Al suceder esto se crean capas desiguales y patrones de impresión erróneos (cada vez que la cama recibe energía para mantener la temperatura), creando piezas con capas poco unidas y con malos acabados.
En la siguiente foto podéis ver el efecto:
Pero para evitar esto hay que cambiar el modo en el que se calienta la cama, en vez de utilizar el sistema "bang-bang", utilizar el PWM, que permite variar la entrega de tensión según la temperatura que busquemos, evitándo los golpes de calor/frío y disminuyendo al máximo las diferencias que aparecen en la foto.
El funcionamiento PWM es parecido al "bang-bang", apaga/enciende la resistencia de la cama, la diferencia es que en el modo PWM los ciclos de apagado/encendido, se hacen una vez cada 0.14 segundos, de esta manera la variación de temperatura es mínima.
Hasta aquí todo bien para la cama de 12 V. Pasar al punto 1º
Para 220v la cosa cambia, el relé no es capaz de mantener el ritmo de los ciclos de encendido y apagado del modo PWM, con el consiguiente deterioro mecánico del mismo.
Se me ocurrió probar un relé de estado solido. En principio lo conecte y en modo bang-bang, y funcionaba igual al relé. Después active el modo PWM según el punto 1º que es igual al de la cama de 12 V ( seguir los pasos y cambiar en Marlín punto 1º)
1º Activar el modo PWM tenemos que ir al firmware Marlin y cambiar unas líneas en el Configuration.h:
Tendremos que buscar la línea
// #define PIDTEMPBED
y la línea
// #define BED_LIMIT_SWITCHING
Quitamos los comentarios, borrar las "//"
Buscamos las líneas
#ifdef PIDTEMPBED
//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, argressive factor of .15 (vs .1, 1, 10)
// #define DEFAULT_bedKp 174.56
// #define DEFAULT_bedKi 21.65
// #define DEFAULT_bedKd 351.78
Quitar los comentarios ("//") a las tres últimas líneas, que empiezan por "#define"
Cuando hagamos hecho esto, solo tenemos que cargar el firmware al arduino.
Conectamos la impresora, abrimos el repetier host y nos vamos a la ventana control manual (la que sale al darle a imprimir), poner en modo experto ( easy mode en rojo), pulsaremos el lápiz (ver registro), aparecerá el registro en la parte de debajo de la pantalla, y en la ventana G-CODE manualmente, tenemos que escribir el siguiente código:
M303 E-1 C8 S90
Pulsar enviar.
La impresora comenzará un ciclo de "auto calibrado" Tardará unos minutos, lo que hará es buscar la configuración exacta de nuestra cama caliente para poder controlarla con PWM.
Cuando termine, podremos ver los valores bedKp, bedKi y bedKd en pantalla
Tenemos que volver al Marlin y abrir el configuration.h y escribir los valores que nos acaba de dar en el registro de la imprersora, en las tres líneas que empiezan por #define que habíamos comentado antes.
Por ejemplo si tenemos los valores bedKp = 10, bedKi = 130 y bedKd= 160, tendremos que hacer esto:
//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, argressive factor of .15 (vs .1, 1, 10)
#define DEFAULT_bedKp 10
#define DEFAULT_bedKi 130
#define DEFAULT_bedKd 160
Cargar de nuevo el firmware y a imprimir sin problemas.