28-12-2016, 03:10 PM
(Última modificación: 29-12-2016, 02:36 PM por Eduardo.
Razón: Ya me funciona correctamente
)
Hola a todos, al final he conseguido hacer un auto nivelado con un sensor inductivo PNP en mi impresora Geeetch prusa I3_proB
Primero, gracias a NeoxM3, y a Daniel Díaz por la ayuda prestada
a electroFUN LTD por el vídeo que me sirvió de guía.
https://www.youtube.com/watch?v=k7xECZigxB4
Es vídeo al que se refiere NeoxM3, que esta realmente bien explicado pero para mi caso no me sirvió.
Bien manos a la obra
Para los que queráis probarlo en vuestras impresoras.
Yo he puesto una lamina de papel de aluminio entre el vidrio y la cama caliente, he usado un sensor inductivo pnp con un diámetro de 18 mm
jaja se ve un poco chapucero pero estoy en pruebas.
la verdad es que el sensor funciona muy bien tengo un cristal de 4 mm de grosor.
esta es otra foto de lateral para que veáis el lateral de inductor (por cierto es reutilizado)
En el conexionado del detector he usado un optoacoplador 4N26 y una resistencia de 10k, son componentes muy baratos
Este es el esquema, el optoacoplador para los que no lo saben, es una forma de separar los circuitos, por lo que podéis usar una fuente de alimentación de 12 voltios corriente continua externa a la impresora.
Dentro del optoacoplador digamos que hay 2 circuitos independientes, sin entrar en muchos detalles digamos, la salida del optoacoplador tiene un sensor luminoso y se activa cuando en el circuito de entrada, se enciende un led interno. por lo que los circuitos actúan mediante impulsos luminosos.
Por otra parte este circuito se puede usar con cualquier sensor ya sea mecánico, luminoso o inductivo.
Tenéis que respetar la polaridad la pata nº 5 del encapsulado tiene que recibir la señal positiva y la pata nº 4 es la que devuelve la señal en la GT2560 esta es la polaridad
Os he puesto, tanto la conexión para un sensor PNP como un NPN la señal resultante funcionara igual.
Bien dicho todo esto, lo único que yo he tenido que cambiar en el Marlin de mi impresora
#define ENDSTOPPULLUP_ZMIN (no lo he tocado lo he dejado activado de fabrica y funciona)
const bool Z_MIN_ENDSTOP_INVERTING = true; // INVERTIDO PARA LA SEÑAL DEL INDUCTOR
#define min_software_endstops false
#define ENABLE_AUTO_BED_LEVELING //Activado
#define AUTO_BED_LEVELING_GRID //Activado
#define LEFT_PROBE_BED_POSITION 15 (depende de vuestra cama, son los limites de la rejilla de muestreo)
#define RIGHT_PROBE_BED_POSITION 170 (depende de vuestra cama, son los limites de la rejilla de muestreo)
#define BACK_PROBE_BED_POSITION 170 (depende de vuestra cama, son los limites de la rejilla de muestreo)
#define FRONT_PROBE_BED_POSITION 20 (depende de vuestra cama, son los limites de la rejilla de muestreo)
#define AUTO_BED_LEVELING_GRID_POINTS 2 (de momento uso el 2, que son las 4 esquinas mas el centro)
#define ABL_PROBE_PT_1_X 15 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define ABL_PROBE_PT_1_Y 170 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define ABL_PROBE_PT_2_X 15 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define ABL_PROBE_PT_2_Y 20 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define ABL_PROBE_PT_3_X 170 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define ABL_PROBE_PT_3_Y 20 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define X_PROBE_OFFSET_FROM_EXTRUDER 0
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
#define Z_PROBE_OFFSET_FROM_EXTRUDER -1.34 // (ESTE ES EL QUE AJUSTA LA DIFERENCIA ENTRE EL DETECTOR Y LA PUNTA DEL EXTRUSOR
cada uno tiene que tomar las medidas que tiene)
//#define EEPROM_SETTINGS ///DESACTIVADO ESTE ES EL QUE TE BLOQUEA EL LOS AJUSTES DE (#define Z_PROBE_OFFSET_FROM_EXTRUDER -1.34)
Y aquí os dejo mi Marlin para el que lo quiera y pueda usar.
Marlin.zip (Tamaño: 304.29 KB / Descargas: 185)
Primero, gracias a NeoxM3, y a Daniel Díaz por la ayuda prestada
a electroFUN LTD por el vídeo que me sirvió de guía.
https://www.youtube.com/watch?v=k7xECZigxB4
Es vídeo al que se refiere NeoxM3, que esta realmente bien explicado pero para mi caso no me sirvió.
Bien manos a la obra
Para los que queráis probarlo en vuestras impresoras.
Yo he puesto una lamina de papel de aluminio entre el vidrio y la cama caliente, he usado un sensor inductivo pnp con un diámetro de 18 mm
jaja se ve un poco chapucero pero estoy en pruebas.
la verdad es que el sensor funciona muy bien tengo un cristal de 4 mm de grosor.
esta es otra foto de lateral para que veáis el lateral de inductor (por cierto es reutilizado)
En el conexionado del detector he usado un optoacoplador 4N26 y una resistencia de 10k, son componentes muy baratos
Este es el esquema, el optoacoplador para los que no lo saben, es una forma de separar los circuitos, por lo que podéis usar una fuente de alimentación de 12 voltios corriente continua externa a la impresora.
Dentro del optoacoplador digamos que hay 2 circuitos independientes, sin entrar en muchos detalles digamos, la salida del optoacoplador tiene un sensor luminoso y se activa cuando en el circuito de entrada, se enciende un led interno. por lo que los circuitos actúan mediante impulsos luminosos.
Por otra parte este circuito se puede usar con cualquier sensor ya sea mecánico, luminoso o inductivo.
Tenéis que respetar la polaridad la pata nº 5 del encapsulado tiene que recibir la señal positiva y la pata nº 4 es la que devuelve la señal en la GT2560 esta es la polaridad
Os he puesto, tanto la conexión para un sensor PNP como un NPN la señal resultante funcionara igual.
Bien dicho todo esto, lo único que yo he tenido que cambiar en el Marlin de mi impresora
#define ENDSTOPPULLUP_ZMIN (no lo he tocado lo he dejado activado de fabrica y funciona)
const bool Z_MIN_ENDSTOP_INVERTING = true; // INVERTIDO PARA LA SEÑAL DEL INDUCTOR
#define min_software_endstops false
#define ENABLE_AUTO_BED_LEVELING //Activado
#define AUTO_BED_LEVELING_GRID //Activado
#define LEFT_PROBE_BED_POSITION 15 (depende de vuestra cama, son los limites de la rejilla de muestreo)
#define RIGHT_PROBE_BED_POSITION 170 (depende de vuestra cama, son los limites de la rejilla de muestreo)
#define BACK_PROBE_BED_POSITION 170 (depende de vuestra cama, son los limites de la rejilla de muestreo)
#define FRONT_PROBE_BED_POSITION 20 (depende de vuestra cama, son los limites de la rejilla de muestreo)
#define AUTO_BED_LEVELING_GRID_POINTS 2 (de momento uso el 2, que son las 4 esquinas mas el centro)
#define ABL_PROBE_PT_1_X 15 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define ABL_PROBE_PT_1_Y 170 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define ABL_PROBE_PT_2_X 15 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define ABL_PROBE_PT_2_Y 20 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define ABL_PROBE_PT_3_X 170 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define ABL_PROBE_PT_3_Y 20 (depende de vuestra cama, son los puntos donde se parara el sensor para el de muestreo)
#define X_PROBE_OFFSET_FROM_EXTRUDER 0
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
#define Z_PROBE_OFFSET_FROM_EXTRUDER -1.34 // (ESTE ES EL QUE AJUSTA LA DIFERENCIA ENTRE EL DETECTOR Y LA PUNTA DEL EXTRUSOR
cada uno tiene que tomar las medidas que tiene)
//#define EEPROM_SETTINGS ///DESACTIVADO ESTE ES EL QUE TE BLOQUEA EL LOS AJUSTES DE (#define Z_PROBE_OFFSET_FROM_EXTRUDER -1.34)
Y aquí os dejo mi Marlin para el que lo quiera y pueda usar.
Marlin.zip (Tamaño: 304.29 KB / Descargas: 185)