Publicidad

miércoles, 8 de abril de 2020

Finales de carrera

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.

Calculo de corriente para Drivers a4988 y dvr8825





Voltajes de referencia para drivers según la corriente del motor paso a paso deseado.
Cuando se usa micro microstepping el voltaje de referencia NO se usa al 70% de su capacidad opertiva

Driver A4988

Driver pololu A4988Vref=corriente del motor * (8*recistencia del driver)
Vref= 1.7*(8*0.1)= 1.36
Vref=1.36     con microstepping

PARA PASOS COMPLETOS sin microstepping

al 70% de su capacidad

1.36*0.7=0.952

EL VOLTAJE DE REFERENCIA DEL DRIVER ES DE 0.952


Driver DVR8825
Reprap Driver StepStick DRV8825 Controlador motor impresora 3D ...Vref= corriente del motor * 5 * resistencia del smd del driver


Vref=1.7A*5*0.1ohm=

Vref= 1.7*5*0.1=0.85

Vref= 0.85  con microstepping

para pasos completos sin microstepping

al 70%

0.85*0.7=0.595

Driver TMC 2288
Pololu - DRV8834 Low-Voltage Stepper Motor Driver Carrier
Vref= (RMS corriente * 2.5)/1.77  con microstepping

                                     al 90 % sin microstepping
xyz vref = (0.596*2.5)/1.77=0.842v  = 1.76

e vref = (0.709*2.5)/1.77= 1.00v   =   0.90

Publicidad