Otras dos mejoras que he añadido a la CNC son: microswitches final de carrera como Hard Limits y optoswitches para función Homing.
A continuación voy a explicar cómo conectar finales de carrera a la CNC, también llamados limit switch o end stops. Lo siguiente es válido para un Shield CNC v3 como el de la foto, con GRBL v1.1 que es como he montado mi CNC, aunque supongo que funcionará sin mayores problemas en otras versiones.
Esta opción consiste en colocar microswitches final de carrera en el origen y fin de recorrido de todos los ejes, para cortar la corriente a los motores en caso de que la máquina se salga de los límites de la zona de trabajo, evitando así dañar la CNC.
Esta función se puede implementar de dos maneras: por software o por hardware. Por software, conectando los finales de carrera al shield CNC y habilitando la función Hard Limits en GRBL, o bien por hardware poniendo en serie todos los microswitches con la bobina de un relé que corte la corriente al shield CNC en caso de que alguno se accione. El siguiente esquema ilustra esta última opción.
Después de probar ambas soluciones, personalmente prefiero la segunda opción ya que al ser puramente hardware, las posibilidades de mal funcionamiento se reducen notablemente.
Para implementar este dispositivo de seguridad, tan solo necesitamos cinco microswitches que colocaremos en los finales de recorrido de las posiciones X+, X-, Y+, Y-, Z-, además de un relé de 24V que soporte una corriente en los contactos superior al total del consumo de los motores de la CNC.
La siguiente imagen muestra el montaje del microswitch Hard Limit en la posición Y-
En la posición Y+ se montan el microswitch Hard Limit y el optoswitch para la función Homing.
El optoswitch de Homing está más cerca, es decir, se activa antes que el Hard Limit, como no puede ser de otra forma. La idea es que en caso de fallo del optoswitch de Homing, si la CNC sigue avanzando, pise el micro de Hard Limit y corte la alimentación a los motores, deteniendo la máquina en el acto.
Para implementar la función de Homing, he montado tres optoswitches en los extremos más alejados de los ejes X e Y y en tercer optoswitch lo he montado en la parte más alta del eje Z.
Los optoswitches se alimentan con 24V de la fuente principal. Cuando un optoswitch se activa el transistor deja de conducir y la entrada de la puerta NOT se pone a 1 debido a la resistencia pull-up, lo que se traduce en un 0 en la salida. El inversor es para que las señales sean activas a nivel bajo y por lo tanto más inmunes al ruido. Luego cada señal se lleva a la entrada correspondiente del Shield CNC.
Esta solución tiene una doble ventaja. Por un lado, al emplear interruptores ópticos en lugar de mecánicos, estamos eliminando los rebotes. En segundo lugar, hacemos pasar la señal por un inversor con entradas Schmitt-Trigger, reduciendo los errores producidos por ruido en la señal.
La siguiente imagen muestra los micros Hardlimit X-, X+, Z- y los optos para la función Homing, montados en los extremos de recorrido correspondientes.
Para que el cableado quede más limpio, he diseñado con KiCad el esquema y la PCB de la tarjeta de de interface entre los optoswitches y el Shield CNC.
Optoswitches Interface. Esquema
Optoswitches Interface. PCB
Después he montado el circuito de interface en una tarjeta de islas.
Otra solución consiste en emplear microswitches. Lo explico a continuación para ver todas las opciones, aunque repito que personalmente he optado por montar optoswitches.
Hay varias maneras de conectar los microswitches, se puede empezar por la más sencilla y ver que tal funciona, si da problemas como por ejemplo alarmas espúreas o paradas aleatorias de la máquina, probar con la siguiente.
La primera opción es conectar el microswitch tal cual, directamente al shield CNC. Para ello llevamos GND al común y el contacto normalmente abierto a la entrada que corresponda.
La segunda opción es colocar un condensador cerámico de 100nF para minimizarlos rebotes en la señal.
Si aún así da fallos, la tercera opción es conectar además una resistencia pull-up de entre 4K7 y 10K.
Hay que tener en cuenta que las señales son activas a nivel bajo, es decir, hay que llevar a masa la entrada correspondiente, además los contactos deben ser del tipo normalmente abierto.
Esto es porque por defecto, las entradas de Arduino son normalmente altas debido a la resistencia interna de pull-up. Cuando una entrada está a nivel bajo, GRBL lo interpreta como disparado. Para el comportamiento opuesto, simplemente hay que invertir las entradas con el comando $5=1.
Para mayor seguridad, se pueden utilizar contactos normalmente cerrados.
Mi experiencia es que ninguna de las opciones anteriores funciona correctamente, al menos no al 100%. La elevada longitud de los cables y los rebotes inherentes a los microswitches mecánicos, hacen que falle con frecuencia.
Aclaro que perfectamente se pueden utilizar microswitches para implementar la función Homing, pero hay que utilizar algún tipo de interfaz entre los microswitches y el Shield CNC, como por ejemplo, optoacopladores, puertas lógicas, etc .Googleando un poco encontré esta página donde hay disponible amplia información sobre el tema.
Si deseas emplear microswitches para implementar la función Homing, un ejemplo puede ser el siguiente circuito:
Lo cierto es que el tema de los limit switches tiene miga. Espero haber arrojado algo de luz.
¡Hasta pronto!