marzo 23, 2018 dgferrete 27Comment

Hola a todos,

Este es un tema candente, algo que me lleváis pidiendo tiempo, aunque lo cierto es que en la wiki de GRBL esta todo lo necesario para poder implementar esta función en nuestros CNCs. Aún así aquí va mi versión de los hechos XD. Como siempre quiero que sepáis que yo no soy un experto en nada (o casi) y que estas nociones están basadas en mi propia experiencia.

Antes de nada, deciros que en una CNC como la que hemos creado en SrFerrete, los finales de carrera no son necesarios, los motores que usamos nos tienen fuerza como para rompernos nada, en caso de salirnos de los limites más allá de un molesto ruido, esto más para CNCs con motores potentes que en caso de salirse pueden crear un autentico desastre. Aún así se los vamos a poner por que nunca está de más aprenderlo y saber como funciona.

Otra cosa importante que hay que tener en cuenta, es que tendemos (yo el primero), a creer que los finales de carrera y las funciones de «homing» en una CNC funcionan o sirven para lo mismo que en una impresora 3D y esto no es así. En una impresora 3D el punto de cero o home, siempre es el mismo, en los 3 ejes, y a partir de ahí la impresora va a generar el modelo.

En una CNC, los finales de carrera, son una mera medida de seguridad para que los motores no vayan más allá de nuestro área de trabajo. Ya que nuestro punto cero va a variar prácticamente en cada trabajo, no es lo mismo fresar una PCB y una madera de DM, como mínimo siempre tendremos que ajustar el eje z.

En GRBL tenemos una función para «homing», que veremos más adelante.

 

FINALES DE CARRERA

Pensando en quien no sabe que estamos hablando voy a resumir un poco de que estamos hablando con esto de los finales de carrera.

Un final de carrera es un pulsador o botón (en palabras mundanas) que se suele utilizar en sistemas automatizamos para delimitar la acción de cierto elemento, en este caso un motor, de ahí su nombre.

Tienen un par de caracteristicas, que los diferencian de un pulsador normal, la primera es que la gran mayoría dispone de una pequeña palanca que es la que pulsa el boton, en nuestro caso y como ejemplo, el eje X se mueve, acciona la palanca, ésta toca el pulsador y el eje se detiene.

La otra característica, es que constan de 3 pines (los más comunes), identificados como  COM (común), NO (normalmente abierto), NC (normalmente Cerrado), esto ¿que significa?

  • NO, se refiere a que cuando el pulsador no esta accionado la corriente no pasa, y si pasa corriente al estar pulsado.
  • NC, justo al contrario cuando el pulsador no está accionado la corriente pasa, y si lo accionados deja de pasar
  • COMÚN, es el pin común como su propio nombre indica.

El común lo usaremos siempre y dependiendo de la configuración que queramos usaremos NC o NO.

MANERAS DE CONECTAR LOS FINALES DE CARRERA A NUESTRA CNC

Existen varias maneras de implementar los finales de carrera, uno teniendo en cuenta las opciones de NC y NO que comentábamos antes y dos, dependiendo de cuantos limites queremos poner, limites mínimos, máximos en todos los ejes, etc.

Os voy a mostrar varias maneras de conectar los finales de carrera, pero en el caso concreto de mi CNC al final solo vamos a implementarlo en los eje X e Y, en sus limites mínimos y máximos. En Z no lo haremos, por que ya de por si tenemos poco recorrido y por que para este eje me gustaría implementar una sonda ( aunque esto ya es otro tema).

Otra cosita importante, antes de empezar a ver cableados, casi todos estaremos usando nuestra CNC Shield, que tiene conectores para el limite máximo y mínimo para cada eje, tanto el limite máximo como el minimizo de cada eje son el mismo pin (hay un pin por eje) de arduino  (lo podéis comprobar con el multimetro). Esto es importante por que a la hora hacer el cableado nosotros haremos la conexión de los finales de carrera en paralelo, es decir, que a la CNC Shiled solo conectaremos un par de cables por eje, Con los diagramas de conexión lo veréis más claro.

Los finales de carrera los podremos conectar, como ya hemos visto, como normalmente abiertos  o normalmente cerrados, se diferencian en que pines de los finales de carrera usamos, por defecto, GRBL viene configurado para usarlo como NO, y si nos decidimos por NC, tendremos que decirle a GRBL que estamos usando esta opción. ( más adelante explico como)

Por lo  general en máquinas profesionales, la configuración por la que se suele optar es por Normalmente Cerrado, ya es la más segura en caso de que nuestro cableado se rompa. Si tenemos nuestra CNC con finales en NO y hay una cable roto cuando el carro pulse dicho botón, arduino no se va a enterar y la máquina no se parará.

Por eso nos vamos a centrar en usar una configuración de limites en NC,

 Adicionalmente y para optimizar el funcionamiento de los finales de carrera, se les puede incluir un filtro con una resitencia y un condesador, además de trenzar todos los cables. De esta manera podemos evitar que existan rebotes en las pulsaciones del limite de carrera. El esquema con filtros sería este:

 

 

Esta configuración con filtros es muy interesante, pero para poder cablearlo de manera correcta es mejor hacer una PCB donde incluir los componentes ya que si no el montaje puede ser bastante lioso, habría que tener componentes al aire y es fácil que algo se rompa, se suelte, etc etc… Así que de momento no vamos a poner este filtro, pero me parecía interesante comentarlo.

Como habéis observado en los esquemas de conexión, están documentados para conectarlos directamente a arduino y no a CNC Shield. Para conectarlo a la CNC shield simplemente usaremos los pines habilitados para -Zmin -Xmin -Ymin. En estos pines de CNC_shield colocaremos los finales dos finales de carrera que tenemos por eje.

 

NOTA: Si estáis usando GRBL 1.1 y CNC_shield V3 los finales de carrera del Eje Z hay que conectarlos a «EspEn» ya que esta versión cambia los pines para poder usar el pin 11 de arduino como salida PWM, por ejemplo para usar Lasers.

Este sería un ejemplo de conexión de dos finales de Carrera en paralelo por ejemplo para el eje X, no os lo voy a mostrar en la maquina, por que lo tengo a modo de prueba con los cables colgando por en medio y no es plan jejejeje. Además el tema del cableado cada uno se suele organizar a su gusto…

MONTAJE EN LA CNC

Aunque esta explicación me gustaría que fuera genérica para cualquier CNC, para colocarlo en mi CNC he diseñado unos soportes para colocarlos en unas varillas de 10mm. Los soportes los podéis encontrar  en la web de thingiverse en el enlace de la CNC. Lo cierto es que estos soportes no son mi mejor creación y tengo que darle una vuelta al diseño.

Estos soporte van anclados las varillas y lo más normal si los vamos a usar como medida de seguridad es ponerlos en los extremos de cada eje, como tenemos 2 ejes Y solo será necesario ponerlos en uno de ellos. Y a modo de recomendación yo no los pondría en el Eje Z ya que nuestro Z es cortito y estaríamos perdiendo recorrido. Siempre hablo para esta CNC en concreto, si vuestro eje es más largo o podeis posicionar los finales de carrera en otro lugar, son totalmente recomendables también en este eje.

 

CONFIGURACIÓN

Pues una vez colocados en la máquina y conectados a CNC_shield, toca decirle a GRBL, primero que los hemos puestos y segundo que  tenemos los finales de carrera en normalmente Cerrado.

Para ello nos vamos a Universal Gcode Sender o nuestro gestor de CNC y en la linea de comandos escribimos $$ + ENTER para que nos devuelva todos los parámetros de la máquina.

Los parámetros $21 y $5 deberíamos tenerlos a cero ya que no estábamos usando finales de carrera, así que debemos ponerlos a 1.

Escribimos $21=1 + ENTER Para decirle que vamos a usar limites por hardware (o físicos).

Y después escribimos $5=1 + ENTER Con esto se configuran las resistencias internas de arduino, para que podamos usar los finales de carrera como Normalmente Cerrados.

Una vez hecho esto necesitamos apagar arduino y volverlo a encender, para que termine de configurar correctamente el paramento $5

PRUEBA

Ya solo nos queda probar que todo está correcto, para ello no necesitamos mover la máquina, solo cercioramos de que cada vez que pulsamos uno de los finales de carrera con el dedo, en Universal Gcode sender debería saltarnos una alarma como esta.

Lamentablemente una vez nos salte una alarma por pulsación de uno de los limites no nos quedará más remedio que reiniciar la CNC y comenzar el trabajo de nuevo.

 

 

HOMING

GRBL tiene una función de homing, pero como os comentaba al principio, yo personalmente, no le veo ninguna utilidad ya que cuando vamos a fresar una pieza, el material no es igual, no mide lo mismo, no tiene el mismo grosor y casi nunca se pone en el mismo sitio exacto. Y de ahí que yo siempre configuro mi «cero» en cada fresado.

Como os he dicho ya en alguna ocasión yo no soy un experto, y quizás el homing pueda tener más de una utilidad, como podría ser recuperar el trabajo por un parón de la máquina o utilizar el punto «Home» como referencia para un posible cambio de fresa, son opciones que me gustaría investigar y probar.

Aún así, como dije antes son cosas que no está demás saber como funcionan.

En mi caso como no he puesto finales de carrera en el Eje Z, he modificado el firmware para que al hacer homing solo lo haga en X e Y, si queréis saber más a cerca de esto me lo dejáis en los comentarios y hacemos una entrada explicándolo

Por defecto, cuando activamos y le decimos a la máquina que haga homing, el proceso que sigue es el siguiente:

1º – Mueve el eje Z buscando el final de carrera, cunado lo pulsa se retira unos mm(configurable) y vuelve a buscarlo pero más despacio. Una vez lo encuentra vuelve a separase una distancia X para no dejar accionado el final de carrera.

2º – Una vez a terminado el Eje Z, repite el mismo proceso con los ejes X e Y, pero en esta ocasión mueve ambos ejes a la vez.

Para configurar el homing y su comportamientos debemos modificar los siguientes para metros:

  • $22=1 para activar el ciclo de homing. IMPORTANTE, cuando lo tengamos activado al iniciar la CNC, ésta se iniciará en ALARMA y no se debloqueará hasta que hagamos homing ($H) o pulsemos $X
  • $23= 3, con este parámetro le indicamos donde va a hacer el homing y tenemos varias opciones: $23=0 Se irá hacia atrás e izquierda, $23=1 hacia atrás y derecha, $23=2 hacia delante e izquierda, $23=3 hacia delante y derecha(lo más común). Tiene un 4º valor que es $23=4 pero este cambia el eje que no lo he podido probar.
  • $24=60, este parámetro determina la velocidad a la que se van a mover los, después de hacer la busqueda, es decir, cuando se mueve esos poco mm que os comentaba al principio, recomendable una velocidad baja.
  • $25=300, es la velocidad en la que va a buscar los finales de carrera, es decir, cuando le decimos que haga homing y hasta que los encuentre se moverá a esa velocidad, puede ser más alta que la anterior para que el homing no tarde demasiado, pero sin pasarse.
  • $26=250, este parámetro nos ayuda a evitar posibles micro-rebotes en los finales de carrera, configurando un tiempo en mili segundos entre pulsación y pulsación, el valor por defecto esta bien
  • $27=2, es la distancia, en mm, que se va a separar el eje, cuando encuentre el final de carrera, y la distancia a la que se va a separara al terminar le homing, para no dejar pulsado el final de carrera. Le pongo lo mínimo posible para que no este pulsado.

 

Y con esto deberíais ser capaces de montar y configurar vuestros finales de carrera y homing en vuestras CNCs.

Reconozco que en esta parte la información que aporta la documentación de GRBL, es donde me he informado yo, a veces es un poco liosa y por eso con algunas cosas he tenido que realizar alguna batería de pruebas para entender como funciona.

Pero para eso estoy aquí, ya me vuelvo loco yo, para que vosotros no tengáis que hacerlo. Me gusta experimentar y volverme loco, jejeje, así que encima me lo paso bien.

Espero que os haya gustado y sobre todo, espero que os sea útil.

Nos vemos en la próxima.

27 thoughts on “Finales de Carrera para tu CNC (basado en GRBL)

  1. Genial!
    Esta tarde lo haré con el Universal Gcode sender.
    Ya lo hice con el CNC Control y funcionó perfecto. En ese programa es sencillisimo, te va pidiendo los valores con toda claridad. Pero no me funciona el botón “modificar GRBL” con lo cual después de desconectar no guarda los parámetros

  2. Hola,veo que los dos finales de carrera van en serie solamente con el eje Xmin. y por ende el Xmax. quedaria
    sin proteccion alguna, o al menos es lo que observo en la foto.
    Te importaria aclarar este hecho si eres tan amable.
    Un saludo.

  3. buenas tardes, configure todo como muestra en su instructivo, pero cuando mando a hacer el homming, me marca coordenadas -199 en todos los ejes, tanto absolutas como relativas, tiene idea que puede llegar a ser? desde ya de agradezco la respuesta. saludos.

  4. Hola
    Querría saber como modificar el firmware que hiciste tú para que no haga el homing del eje z.
    Estoy usando la plataforma del universal gcode sender y me funciona de maravilla.
    Espero tu respuesta con mucha ilusión

  5. Saludos amigo reciba un abrazo desde Venezuela, estoy en la espera del vídeo de cómo modificar el firmware para eliminar el homming del eje Zeta….

  6. Hola amigo muy buena su explicación , estoy esperando el vídeo de cómo modificar el firmware para eliminar el homming en mi caso de x e y. Millón de gracias por su tiempo 👍👍👍👍

  7. Saludos,gracias por tu explicación, me ha despejado muchas dudas,hace tiempo empece a fabricar una CNC casera y quería implementarla con finales de carrera y homing, por fin lo he logrado gracias a este pos, en este momento estoy varado porque quiero automatizar mi dremel con un rele para que prenda y apague por comandos y no lo he logrado, en este momento tengo una shield arduino uno v.3 y el GRBL 1.1, gracias de antemano si me puedes dar una orientacion.

  8. Señór, buenas noches.
    Querría saber como se modifica el firmware para evitar que haga el homing en el eje Z, puesto que, tanto en tu página como en tu video expresas el deseo de compartirlo con la comunidad.
    Además, no hay información para realizar este tipo de precedimiento con la placa Arduino y shield que tu implementas en ello.
    Agradeciendo de ante mano tu atención y respuesta.

  9. Buenos días Sr Ferrete.
    Ante todo felicitarle por sus vídeos y explicaciones.
    No debo de ser su mejor alumno o tengo algún problema oculto.
    Me funciona la máquina bien, instalado los finales de carrera en el eje X e Y, modifico los parámetros $21 y $5 a posición 1, apago arduino, enciendo, intento moverme y no se mueve para nada la máquina y me aparece el mensaje de Alarma, es decir como si se hubiese activado un final de carrera cuando no es así.
    He comprobado el cableado de los finales de carrera y diría que está bien, pues hay continuidad entre los dos extremos a unir a la CNC Shiell y se corta la continuidad al activar cualquiera de los finales de carrera, creo que están bien cableados.
    Me siento perdido pues no lo entiendo, una ayudita por favor.
    Muchas gracias por anticipado

  10. Buenas,y feliz Navidad y Feliz año nuevo 2019.
    Me sumo al problema de los finales de carrera , me pasa lo mismo que a JJR y a Victor Manuel , lo de la alarma y que no se mueva , los tengo quitados de la cnc shield y asi me funciona ,pero a ver si nos da una solucion para poder usarlos . Muchas Gracias por todas sus aportaciones .

    1. Hola Sr. ferrete.
      A mi tb me ocurre el mismo problema con los finales de Carrera. Me saltan las alarmas y se detiene el movimiento de los ejes.

      Por otro lado con la CNC ya montada, quiero agradecerte de nuevo el titánico trabajo que has compartido en la red.

      Infinitamente agradecido.
      Saludos

  11. Ya lo que me faltaba por ver, montó los finales de carrera en la Cnc y no me funcionan, me sale lo de la alarma, los quito de la cnc y los conecto a la shield, quitados de la máquina y funcionan correctamente, puede ser por ruidos procedentes de los motores.? Si no eso ya no se me ocurre banda más. Ayuda por favor y feliz navidad para todos. Un saludo.

  12. Buenas tardes Sr Ferrete.

    El pasado 4 de diciembre 2018 le deje una pregunta sobre los finales de carrera ya que no me funcionaban y se me bloqueaba y bloquea la máquina. Al día de hoy no he tenido contestación, cosa que entiendo, y lo entiendo. Debo entonar el mea culpa.
    Como ya le decía no debo de ser su mejor alumno y, después de leer sus comentarios varias veces, y aplicando el dicho de, “al papel y a la………………. has de ver”, me he dado cuenta que tengo desactivado el eje Z, pues no pretendo utilizarlo con laser, y sus explicaciones son para los tres ejes.
    Conclusión: tiene razones para que no funcione.
    En sus comentarios en el tutorial aparece esta frase:
    “En mi caso como no he puesto finales de carrera en el Eje Z, he modificado el firmware para que al hacer homing solo lo haga en X e Y, si queréis saber más a cerca de esto me lo dejáis en los comentarios y hacemos una entrada explicándolo”.
    Motivo por el que no me funciona.
    La pregunta. ¿Modificaciones del firmware para que solo haga homing en eje X e Y? ya que el Z lo tengo desactivado.
    Feliz año, muchas gracias,
    Saludos
    JJR

  13. Hola. Tengo el mismo problema he usado los finales de carrera de makerbot v1.2 y al hacer homing solo hace el eje x, en el momento que toca ese final de carrera se bloquea la maquina y el eje y no he conseguido hacerlo en ningún momento. Agradacería algún video o explicación lo suficientemente clara o comprensible para todos, no se porque pero el homing en la cyclone pcb me cuesta mucho trabajo comprenderlo.

  14. Hola, como identificamos en un eje que final de carrera corresponde al mínimo y al máximo ya que están conectados en paralelo?
    Me confunde para instalarlos en la maquina.
    Gracias, Saludos!

    1. Da igual cuál utilices, simplemente cuando el sistema tiene un eje (motor) en movimiento y detecta uno de los dos micros de ese eje pulsados, para el motor, en el sentido que sea. Para volver a arrancar deberás liberar el micro y reiniciar la marcha; si es hacia el mismo sentido volverá a parar… y si es hacia el sentido contrario irá hasta encontrarse al micro opuesto. Para evitar que vaya de micro a micro parando por alarma cada vez, existe el límite por software.

  15. Hola. Gracias por la información. Tengo una duda, yo entiendo que el homing debiera hacerse en el cero de las coordenadas x,y,z o sea, mirando de frente la máquina (es decir, viendo el dremel de frente) el carro debiera irse a la izquierda y al fondo y el z en la parte mas alta. Porque una cosa el el cero de referencia para empezar un trabajo y otra es el cero de la máquina, es lo que no me queda claro, entiendo que el cero de la máquina es para llevar lo mas alto posible la herramienta y poder cambiarla de ser necesario en trabajos de cambio de herramientas… Me quedan dudas, a ver si puedes armar un explicativo de como cambiar las herramientas (fresas) en por ejemplo el esculpido de un dragón (algo complicado, no?) donde interviene el grabado y luego el trabajo de terminación con una fresa de menor diametro. Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *