Anda di halaman 1dari 7

Fabricación de adaptador de USB

a Puerto paralelo para CNC


Por onasiis para cnccontrol.byethost13.com

Controla con CncControl una CNC


con puerto paralelo usando Arduino

1
Controla una CNC con Puerto Paralelo mediante CncControl y Arduino
http://cnccontrol.byethost13.com
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 directamente
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” tenemos 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 Dir Step Step Enable Enable


Arduino BreakOut Arduino BreakOut Arduino 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 placa “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