B
C m
C o
U
C 3
C u
o
S
N
1t a
a e
o l o
a p a
r
b.
el
a n
o
s
rt o
u C
n
a r
c
o n
ol
a
n
a
p
c
c
a d
c
a
el C
n c
e o t d
r
r a
o
i
si
al
n
t
r n e ó u i
a p o t
s o
P
r
a r
a
e
o
u n
r o P
F
n t
l
t
a
d
y
ol d
b
o
e
o
r
A u
ht
r
ci
r n
a
a
d
s
r d
c
ni
c.
N
p o C n o c
http://cnccontrol.byethost13.com
Controla una CNC con Puerto Paralelo mediante CncControl y Arduino A rduino 1
Las máquinas CNC se pueden controlar de diversas formas, y entre ellas tenemos el control mediante conexión USB, o mediante Puerto Paralelo y para cada caso usaremos una gama de programas diferentes. Muchos de nosotros tenemos solo la posibilidad de conectar nuestra máquina al ordenador mediante Puerto Paralelo, ya que la CNC viene solo provista de ese tipo de conexión. Normalmente cuando tienen puerto paralelo, tienen instalada una placa de control (Breakout Board), y un cable con conectores para puerto paralelo, mediante el cual se conecta al PC.
Breakout board o placa de control
Cable para puerto paralelo (conectores DB-25)
La placa de control a su vez está conectada a unos dispositivos llamados “Drivers” que
son los encargados de mandar las señales de potencia a los motores.
Esquema general de conexionado CNC mediante puerto paralelo (DB-25)
2
El puerto paralelo tiene 25 pines – 25 hilos, por los cuales va la información de activación de los motores, velocidad, direcci ón, etc: Pines Enable, Step, Dir, Alimentación, Masa…, que llegará a cada uno de los diferentes drivers, y será con esa información con lo que los drivers controlarán a los motores.
Mach o Linux CNC se encargarían de leer los archivos Gcode, y enviar los comandos por el pin correspondiente al driver oportuno. Por el contrario, si disponemos de una CNC la cual la tenemos funcionando con un Arduino como placa de control, éste estará conectado mediante USB al ordenador. El programa de control (CncControl) envía ese gcode al Arduino, y es el propio Arduino el que interpreta el código y manda las señales correspondientes a los drivers, que a su vez actuarán sobre los diferentes motores.
Digamos a groso modo, que cuando usamos puerto paralelo, es el programa del ordenador el que hace de “Cerebro” e interpreta el Gcode, y cuando usamos Arduino, es el propio Arduino el
que realiza esa función, usando el Gcode que el programa del ordenador le envía.
3
-En la CNC con Arduino, éste envía por sus pines de salida a los diferentes drivers la información de movimientos: Dir, Step, Enable, etc. -En la CNC con la “Breakout board” como placa de control, estamos inyectando directame nte desde el ordenador los comandos Dir, Step, Enable, etc. a través del propio cable paralelo por unos pines concretos. Ésta placa lo único que hace es distribuir esas señales y mandarlas hasta los drivers. Podemos usar esa particularidad y aprovecharla para el tema que trata este tutorial, de forma que lo comandos Dir, Step, Enable los podemos insertar directamente en un puerto paralelo usando un Arduino conectado a la “breakout board”.
Profundicemos un poco más en el tema para ver cómo se harían las conexiones, pero haré una explicación general, ya que el conexionado entre el Arduino, y la placa de control “Breakout Board” se puede complicar bastante si así lo queremos, y pasar todas las salidas del Arduino a la
placa de puerto paralelo, poniendo finales de carrera, sonda de contacto, etc, etc. En este caso explicaré el conexionado para el funcionamiento básico de nuestra CNC, solo para que cojáis el concepto que quiero transmitir, y ya podréis ampliarlo todo lo que se quiera y necesite. Usando el conexionado por defecto de Arduino, en concreto con el software GRBL v0.9, con la opción PWM habilitada, tenemos una asignación de pulsos determinada para cada pin de salida del Arduino.
4
Si queremos conectar Arduino a la placa “BreakOut Board” te nemos que fijarnos también cómo tenemos la asignación de pines en la configuración, por ejemplo de Mach3.
Con lo que vemos arriba, sabremos lo siguiente: Para el Driver del motor X, el pin Step es el 2, el Dir el 3. Para el Driver del motor Y, el Step es el 4, y el Dir es el 5. Para el Driver del motor Z, el Step es el 6, y el Dir es el 7.
Es importante que coincida el Step PORT y el Dir PORT con el puerto virtual que se configura en la siguiente pantalla (columna PORT).
Con la información de esta pantalla sabremos que el Pin Enable es el 14 , y que lo redirige al Puerto virtual 1 (Este dato último en concreto no lo necesitáis. Solo lo comento para que no confundáis los “PORT ” con los “Pin Number ”).
5
Realizaré un resumen de conexiones en la siguiente tabla para que se vea más fácilmente las conexiones que tendremos que realizar, en función de los datos de configuración anteriores: Dir Arduino
Dir BreakOut
Step Arduino
Step BreakOut
Enable Arduino
Enable BreakOut
Eje X
Pin 5
Pin 3
Pin 2
Pin 2
Pin 8
Pin 14
Eje Y
Pin 6
Pin 5
Pin 3
Pin 4
Pin 8
Pin 14
Eje Z
Pin 7
Pin 7
Pin 4
Pin 6
Pin 8
Pin 14
Interpretando la tabla, conectaríamos el Pin5(Dir) de Arduino, con el Pin3(Dir) de la “BreakOut”. …
El Pin2(Step) de Arduino con el Pin2(Step) de la “BreakOut”, etc. …
El Pin8(Enable) de Arduino, al Pin14(Enable) de la “BreakOut”. Y siguiendo, conectaríamos todos los pines con sus correspondientes. Importante destacar que si queréis usar la señal de PWM del arduino, ésta no tenéis que llevarla a la pla ca “BreakOut”, sino directamente desde el Pin11(PWM) del Arduino, al dispositivo que queráis controlar, como por ejemplo la entrada PWM de un driver Láser.
Esas conexiones pueden realizarse como queráis, mediante cables, soldando, conexiones a una placa de tests, etc. En mi caso he hecho una pequeña placa, la cual se puede mejorar mucho, pero de momento así me sirve bastante bien:
6
Una vez tengáis conectado todo correctamente, podréis usar el programa CncControl para controlar vuestra CNC, en lugar de Mach3 como quizás teníais antes como software de control de la máquina.
No explicaré cómo configurar Arduino y su software, ya que hay bastante información en el foro http://cnccontrol.byethost13.com, y habría que profundizar bastante en el tema, saliendo de aquí una guía totalmente nueva sólo para la configuración.
Con esto concluyo este pequeño manual, espero haya resultado interesante y os sea de ayuda. Manual realizado por Onasiis para los usuarios del foro de http://cnccontrol.byethost13.com
7