Muestra las diferencias entre dos versiones de la página.
Revisión previa | |||
— | guias:seguridad_marlin [2021/04/16 20:41] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== Seguridad en Marlin ====== | ||
+ | |||
+ | |||
+ | |||
+ | Cuando configuramos el Marlin para nuestras impresoras, prácticamente solo nos centramos en velocidades, | ||
+ | |||
+ | |||
+ | ===== Precondiciones y objetivo ===== | ||
+ | |||
+ | |||
+ | Suponemos que tu impresora está operativa, y funcionando de manera correcta. De lo contrario estos ajustes propuestos podrían dificultar su puesta a punto. Una vez configurados podréis estar mas tranquilos en lo que atañe a su funcionamiento " | ||
+ | |||
+ | |||
+ | === Pasos previos === | ||
+ | |||
+ | |||
+ | Antes de nada, necesitamos hacer una copia de seguridad de nuestros archivos Marlin. Para ello podemos copiar todo el directorio y colocarlo en lugar seguro. | ||
+ | Localizaremos 1 archivo sobre el que vamos a trabajar: configuration.h | ||
+ | |||
+ | |||
+ | === Máxima temperatura de cama y hotend === | ||
+ | |||
+ | |||
+ | Esta opción os protege de un posible error a la hora de marcar las temperaturas en el software. Nunca superará estas temperaturas. En mi caso 260 y 100. Si llega a esas temperaturas desconectará el extrusor ó la cama, parando la impresión. Esto es útil también por si tenemos algún problema con el termistor. | ||
+ | | ||
+ | <code cpp> | ||
+ | // When temperature exceeds max temp, your heater will be switched off. | ||
+ | // This feature exists to protect your hotend from overheating accidentally, | ||
+ | // You should use MINTEMP for thermistor short/ | ||
+ | #define HEATER_0_MAXTEMP 260 | ||
+ | #define HEATER_1_MAXTEMP 260 | ||
+ | #define HEATER_2_MAXTEMP 260 | ||
+ | #define BED_MAXTEMP 100 | ||
+ | </ | ||
+ | |||
+ | === Mínima temperatura de la cama y hotend === | ||
+ | |||
+ | Puede suceder y sucede que se rompa el cableado de los termistores, | ||
+ | Para ello tenemos esto. Aquí debemos colocar la temperatura mínima de nuestra ubicación, yo tengo 10 grados, la tuve a 13 porque el número me gusta y resulta que un buen día no arrancaba, y tenía 13 grados en la habitación. Que frio!! | ||
+ | Si ponéis muy poco es posible que no funcione nunca la seguridad, colocar una temperatura ligeramente inferior a la del local. Y si es posible desconectar el termistor y ver la lectura, colacáis una temperatura superior a esa en un par de grados. | ||
+ | |||
+ | <code cpp> | ||
+ | // The minimal temperature defines the temperature below which the heater will not be enabled It is used | ||
+ | // to check that the wiring to the thermistor is not broken. | ||
+ | // Otherwise this would lead to the heater being powered on all the time. | ||
+ | #define HEATER_0_MINTEMP 10 | ||
+ | #define HEATER_1_MINTEMP 5 | ||
+ | #define HEATER_2_MINTEMP 5 | ||
+ | #define BED_MINTEMP 10 | ||
+ | </ | ||
+ | |||
+ | === Calentamiento fusible cama === | ||
+ | |||
+ | Nuestra cama puede no alcanzar la temperatura deseada, de un tirón. Debemos verificar el fusible de la RAMPS, es posible que ante un exceso de corriente este fusible se caliente | ||
+ | Para solucionar esto el Marlin nos ofrece esto: | ||
+ | |||
+ | === Opcion 1 === | ||
+ | |||
+ | <code cpp> | ||
+ | // If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the | ||
+ | // average current. The value should be an integer and the heat bed will be turned on for 1 interval of | ||
+ | // HEATER_BED_DUTY_CYCLE_DIVIDER intervals. | ||
+ | #define HEATER_BED_DUTY_CYCLE_DIVIDER 4 | ||
+ | </ | ||
+ | |||
+ | Descomentando la última línea le estamos diciendo al Marlin que caliente 1 de cada 4 intervalos. Si medimos con un polímetro la tensión en la cama veremos que esta a disminuido. Podemos jugar con el valor, por defecto 4, para variar esta tensión. Un 1, es continuo, como si no descomentasemos la linea. | ||
+ | |||
+ | === Opcion 2 === | ||
+ | |||
+ | <code cpp> | ||
+ | // This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option. | ||
+ | // all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis) | ||
+ | // setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did, | ||
+ | // so you shouldn' | ||
+ | #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current | ||
+ | </ | ||
+ | |||
+ | En lugar de 255, que es a tope, colocaremos valores inferiores, limitando de esta forma la corriente, es un PWM puro y duro. | ||
+ | |||
+ | === Descuelge del Termistor === | ||
+ | |||
+ | Es posible que el termistor se nos despegue, caiga descoloque .... pero que su cableado sea correcto. El Marlin calentará de forma continua tanto nuestra cama como nuestro hotend, y el termistor indicará una temperatura incorrecta, esto puede derivar en INCENDIO. | ||
+ | Para evitarlo tenemos esto: | ||
+ | |||
+ | <code cpp> | ||
+ | // If you want to enable this feature for all your extruder heaters, | ||
+ | // uncomment the 2 defines below: | ||
+ | |||
+ | // Parameters for all extruder heaters | ||
+ | #define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds | ||
+ | #define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius | ||
+ | </ | ||
+ | |||
+ | Si en 40 segundos no se incrementa 4 grados considera que algo va mal y actuará en consecuencia. | ||
+ | |||
+ | <code cpp> | ||
+ | // If you want to enable this feature for your bed heater, | ||
+ | // uncomment the 2 defines below: | ||
+ | |||
+ | // Parameters for the bed heater | ||
+ | #define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds | ||
+ | #define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius | ||
+ | </ | ||
+ | |||
+ | Si en 20 segundos no se incrementa 2 grados considera que algo va mal y actuará en consecuencia. | ||
+ | |||
+ | Esto es muy interesante, | ||
+ | |||
+ | Con estas opciones podemos estar mas tranquilos, existen otras, muy interesante como desconectar la fuente de alimentación ATX, o regular ventiladores según temperaturas. Pero implica modificaciones hardware o en el Gcode. | ||
+ | |||
+ | |||