Você está na página 1de 98

Desarrollo Electrónica DIYLILCNC

NOMBRE Viviana Acevedo

AUTOR Juan José Peters

PERÍODO Marzo-Diciembre

PALABRAS Electrónica, Juan José Peters, Código G, GRBL, DIYLILCNC, Drivers, Arduino, cnt, MadLab
CLAVE

RELACIONADO CNC_DIY, Introducción al control numérico computarizado (CNC), Funcionamiento del driver
CNC DIY para motores paso a paso (Marco teórico)

ESTUDIADO EN CNC_DIY

ESTUDIADO POR Juan José Peters

CONTENIDO

[ocultar]

 1 Artículos Previos
o 1.1 Desarrollados por el MADLAB
 2 Desarrollo Electrónica DIYLILCNC
o 2.1 Especificaciones Técnicas
 2.1.1 Fresadora DIYLILCNC
 2.1.2 Alimentación
 2.1.3 Fusibles provistos
 2.1.4 Área de Trabajo
 2.1.5 Dimensiones
 2.1.6 Accionamiento de los ejes
 2.1.7 Otros
o 2.2 Especificaciones de motores de avance
 2.2.1 Características físicas
 2.2.2 Características eléctricas
 2.2.3 Características mecánicas
o 2.3 Especificaciones de motor de fresado
 2.3.1 Características
o 2.4 Configuración de pines en Arduino para GRBL
 2.4.1 Características
 2.4.2 Video Funcionamiento
 3 GRBL: SOFTWARE DE CONTROL NUMÉRICO COMPUTARIZADO PARA DIYLILCNC
o 3.1 Sobre el desarrollo del software
o 3.2 Definición
o 3.3 Usuarios
o 3.4 Características amigables
o 3.5 Manejo de aceleración
o 3.6 Limitaciones de diseño
o 3.7 Nuevas características de GRBL V0.8
o 3.8 Cargar firmware de GRBL en Arduino
o 3.9 Conexión de driver de motores paso a paso a Arduino GRBL
 3.9.1 Conexión de drivers de motores paso a paso en Arduino
o 3.10 Interfáz gráfica de usuario (GUI) para GRBL
 4 CONFIGURACION DE HARDWARE DEL DRIVER DE MOTORES DIYLILCNC
o 4.1 Pines de conexión y Jumpers de selección de funcionamiento
 4.1.1 Pines de conexión
 4.1.2 Jumpers de selección de funcionamiento
 5 CONFIGURACIÓN DE GRBL V0.8 PARA FRESADORA DIYLILCNC
o 5.1 Comandos de configuración: “$$”, $X=val, $N y $Nx=line
 5.1.1 $$ (Ver la configuración Grbl) y $x = val (Guardar configuración Grbl)
 5.1.2 $N (Ver los bloques de inicio) y $Nx=line (Guardar bloque de inicio)
 5.1.3 De Grbl $x = val configuración y su significado
 5.1.4 Comandos internos de GRBL $G, $# y ?
o 5.2 Otros comandos: $C, $X, $H, ~, !, Ctrl-X
 5.2.1 $C (El modo de Chequeo de código G)
 5.2.2 $X (Bloqueo de Kill alarm)
 5.2.3 $H (Ejecutar ciclo de homing)
 5.2.4 ~ (Inicio del ciclo o Cycle Start)
 5.2.5 ! (Feed Hold)
 5.2.6 Ctrl-x (Reseteo de Grbl)
o 5.3 Configuración de GRBL para la máquina DIYLILCNC
 5.3.1 Pasos por milímetro para ejes X, Y y Z
 5.3.2 Feed Rate y Seek Rate
 5.3.3 Auto Start
 5.3.4 Orden de Enable invertida para Drivers de motores paso a paso
 5.3.5 Límites críticos o Hard Limits
 6 Conexión de Hardware en DIYLILCNC
o 6.1 Elección de motor de fresado
o 6.2 Gabinete de Energía
o 6.3 Gabinete de Control
 7 Construcción de driver para motores paso a paso
o 7.1 Placa de control puente H (L297)
o 7.2 Placa de puente H doble (L298N)
o 7.3 Fotoherramientas en PDF
o 7.4 Fabricación de placas
o 7.5 Perforación de las placas
o 7.6 Corte y lijado de placas
o 7.7 Soldado de placas
o 7.8 Sellado de la superficie de cobre en las placas
o 7.9 Conexión entre placas
o 7.10 Separación estructural de placas
o 7.11 Conexión del driver para su funcionamiento
o 7.12 Galería de imágenes (completa)

Artículos Previos
DESARROLLADOS POR EL MADLAB

1. Proyecto DIYLILCNC
2. Proyecto RepRap
3. CNC_DIY

Desarrollo Electrónica DIYLILCNC


ESPECIFICACIONES TÉCNICAS

FRES AD O R A DIY LILCNC

AL IMEN T AC IÓ N
Corriente de alimentación ..............................................10.5A Máx.

Tensión de alimentación ........................ 220V ±10% 50 – 60 Hz. Monofásica.

Potencia instalada.................................................(no calculada).

FUSIBL ES PROVI STO S

Automático general…………………………… 15A a 220V/50Hz.

Fusible transformador 220/110V dremel……………………………………… 3A.

ÁRE A D E T R AB AJO

Recorrido eje X (Longitudinalmente)…………………………………… 714mm.

Recorrido eje Y (Transversalmente)……………………………………….725mm.

Recorrido eje Z (Verticalmente)……………………………………………200mm.

DIMENSION ES

Dimensiones de la máquina (L * P * H)……………………760 x 1000 x 495 mm.

Altura de la mesa……………………………………812 mm.

Peso……………………………………………………………………… 60 Kg.

AC C ION AM IE NTO DE LOS EJ ES

Motores de los ejes……………………………..…... Motores paso a paso bipolares.

Fuerza de empuje de los carros X e Y……………………………………….2.1 Nm.

Guiado de los carros X e ……………………correa dentada, patines de rodamiento.

Fuerza de empuje del carro Z……….……………………….……………… 4.3 Nm.


Guiado del carro Z………….…eje sinfín con acople simple, patines de rodamiento.

Rieles……………………...……………………………..…………. Barra cilíndrica.

OTROS

Materiales principales de la máquina…………..…………. Trupan, terciado marino.

Precisión de tallado real………………………….….…..………………….. 0.1 mm. (Tallado varía para distintas

durezas de material)

Exactitud en repetitividad de posicionamiento………....…..…….……….. 0.08 mm.

Velocidad de trabajo…………………………..……...………….. 0 – 2000 mm/min.

Avance rápido………………………………..………………………. 5000 mm/min.

Materiales aceptables para procesar: PVC, PCB, Plástico, Madera, latón y aluminio.

ESPECIFICACIONES DE MOTORES DE AVANCE


CAR AC TE RÍS TIC AS FÍSI CAS

Modelo…………………………………………….…….….23HS8430 (NEMA 23).

Configuración de bobinas………..…………………..…………….……….. Bipolar.

Resolución…………………200 pasos/rev. (400 pasos/rev. configurado por driver).

Ángulo de paso………...……………… 1.8° por paso (0.9° configurado por driver).

Largo…………………..……………………………………………..………. 76mm.

Ancho………………………...………………………….………………… 56.4 mm.

Alto…………………………..……………………………….…………… 56.4 mm.

Cables…………………………………..……………………………….….. 4 lineas.

Peso…………………………………………...……………………..………. 1.1 Kg.

C AR AC T E RÍS TIC AS ELÉC TRI C AS

Corriente de alimentación máxima…………….……………………………..…. 3A.

Resistencia de bobinas………………………………………………………. 1 Ohm.

Impedancia de Bobinas…………………………………...………………… 3.5 mH.

C AR AC T E RÍS TIC AS M ECÁ NIC AS

Par motor máximo a rotor bloqueado………………………………………. 1.8 Nm.

Torque de detención…………………………………………………….…… 6N/cm.


Momento de inercia del rotor……………………………………..……. 440 gr/cm2.

ESPECIFICACIONES DE MOTOR DE FRESADO

C AR AC T E RÍS TIC AS

Marca…………………………………..………………..………………….. Dremel.

Modelo………………………………..……………………………………….. 4000.

Tensión………………………………..………………………………………. 110V.

Potencia nominal de entrada……….…..…… 175W (protegido contra sobrecargas).

Velocidad de giro en vacio…………….………. 5.000 – 35.000 rpm. Seleccionable.

Abertura de mandril…………………… 1/32 a 1/8 de pulgada (ver manual dremel).

Peso ………………………….……………………………………..……… 0.66 Kg.


CONFIGURACIÓN DE PINES EN ARDUINO PARA GRBL

C AR AC T E RÍS TIC AS

Marca………………………………………………………………………Arduino.

Modelo…………………………………………………..…. Arduino UNO Rev. 3.

Microcontrolador………………………………………………..….. ATmega328P.

Tensión de operación……………………………………..………….…… 5V DC.

Tensión fuente de alimentación externa…………………….…….. 7 – 12 V DC.

Pines digitales (I/O)………………………… 14 (6 de ellos configurables a PWM).

Pines de entrada analógicos………………………………………………..……. 6.

Memoria flash…………. 32 KB (de los cuales 0.5 KB son usados por bootloader).

SRAM……………………………………………………………….………… 2KB.

EEPROM……………………………………………………………………… 1KB.
Velocidad de cristal………………………………………………..……… 16Mhz.

Cantidad máxima de motores…. hasta 3 motores (configuración software GRBL).

Interfase/comunicación………………………………………………..……. USB.

Firmware utilizado………………………………………………...………. Grbl.hex.

VIDEO F UNCIO N AM IE NTO

GRBL: SOFTWARE DE CONTROL NUMÉRICO


COMPUTARIZADO PARA DIYLILCNC
SOBRE EL DE S ARROLLO DEL SO FTW AR E

GRBL está bajo la Licencia Pública General GNU y ha sido desarrollado por el programador Simen Svale

Skogsrud en Noruega. La documentación de este software ha sido traducida al español y adaptada al

funcionamiento de DILLILCNC desde la Wiki GRBL del desarrollador.

Las actualizaciones de este programa para cargar en Arduino pueden descargarse desde el repositorio de

GRBL.

DEFINICIÓN

GRBL es un controlador de fresadora CNC de alto rendimiento, libre y de código abierto, escrito en C

optimizado y que se ejecuta en un Arduino.

USU AR IO S
Los usuarios ideales son los fabricantes que realizan trabajos de fresado y necesitan un controlador simple y

amigable para su sistema (y que pueda ser manejado amigablemente por el usuario desde una interfaz

gráfica).

Las personas que detestan el desorden de cables en su espacio de trabajo. Esto por el legado de las torres de

PC, pues las máquinas CNC han sido fabricadas principalmente para usar el puerto paralelo.

Inventores que necesitan un controlador escrito en un ordenado lenguaje C modular como base para su

proyecto.

C AR AC T E RÍS TIC AS AM IG AB LE S

GRBL está listo para la producción en poca potencia. Podemos usarlo para todo nuestro fresado, ejecutándolo

desde nuestros ordenadores portátiles utilizando un script de consola simple (incluido) para transmitir el código

G. Está escrito en C optimizado utilizando todas las características inteligentes de los chips ATmega328P del

Arduino para lograr la sincronización exacta y la operación asincrónica. Es capaz de mantener una frecuencia

de pasos de más de 30 kHz y ofrece un flujo limpio, libre de jitter (variabilidad en los cantos de subida y

bajada) de impulsos de control. Grbl es para máquinas de tres ejes. No hay ejes de rotación, simplemente ejes

X, Y y Z. El intérprete de código G implementa un subconjunto de la norma rs274/ngc NIST y ha sido testeado

con la salida de un número de Herramientas CAM sin problemas. Movimiento lineal, circular y helicoidal son

totalmente compatibles.

G-Codes soportados en v0.7:

1. Movimiento lineal (G0, G1)


2. Movimientos de arco (reloj y contrareloj)(G2, G3)
3. Dwell (retardo o detención temporal en el movimiento de la herramienta) (G4)
4. Selección del plano X-Y, X-Z e Y-Z (sobre centros de maquinado) (G17, G18, G19)
5. Datos de entrada en pulgadas o en milimetros(G20, G21)
6. Volver al home de la máquina (G28, G30) [realizado incorrectamente el ciclo homing]
7. Modos de Distancia (absoluta o incremental) (G90, G91)
8. Modos de feedrate (G93, G94))
9. Coordenadas de offset (G92)
10.Control de giro del cabezal (M3, M4, M5)
11.Otros (G53, G80).

G-Codes soportados en v0.8

1. Sistemas de Coordenadas de trabajo (G54, G55, G56, G57, G58, G59)


2. Seleccionar offset de coordenadas de trabajo (G10 L2, G10 L20)
3. Volver al home de la máquina (G28, G30)
4. Establecer posición home predefinida (G28.1, G30.1)
5. Borrar offsets del sistema de coordenadas (G92.1)
6. Pausa de programa y fin (M0, M2, M30)
7. Control de líquido refrigerante (M8, M9)

La mayoría de las opciones de configuración se pueden establecer en tiempo de ejecución y se guardan en la

memoria EEPROM entre sesiones e incluso conservadas entre las diferentes versiones de Grbl cuando se

actualiza el firmware. Para obtener descripciones de estos códigos G, vaya a las directrices de código g NIST.

LinuxCNC.org también proporciona gran documentación de estos también. (Códigos G) (Códigos M) (Otros

códigos).

M AN EJO DE AC E LER AC IÓ N

La característica más solicitada que realmente queríamos que tuviera es un amigable y avanzado

administrador de aceleración look-ahead (Acelerador Anticipado, Predictivo). En las primeras versiones,

algunos usuarios no pudieron ejecutar sus CNC a toda velocidad sin algún tipo de alivio. El administrador de

máximas aceleraciones de GRBL con planificador look-ahead facilitará en los feed rates rápidos y frenará

antes de las esquinas para un funcionamiento rápido y libre de sacudidas. En esto hubo mucho trabajo para

asegurarse de que los movimientos sean sólidos. Aquí hay un enlace que describe el algoritmo de curvas de

alta velocidad.

LIMIT ACIO NE S D E DIS E ÑO

Hemos limitado el apoyo de código G para el diseño. GRBL soporta todas las operaciones comunes que se

encuentran en la salida de las herramientas CAM, pero deja a algunos codificadores humanos de código g

frustrados. No hay variables, no hay correcciones de herramienta, sin funciones, sin ciclos fijos, no hay
aritmética y no hay estructuras de control. Sólo las operaciones básicas y capacidades de la máquina. Algo

más complejo, creemos que las interfaces pueden manejarlas con bastante facilidad y traducirlas para GRBL.

NUEV AS C AR AC TERÍ STI C AS D E GRBL V0.8

Han pasado muchas cosas desde la v0.7. Estamos empujando muy duro para crear un controlador CNC

simple, pero potente para el venerable Arduino. He aquí una lista de las cosas nuevas que han llegado a la

v0.8.

1. Comandos multi-tarea de tiempo de ejecución: Pausa de un programa (Feed Hold) ejecutado con
deceleración controlada para no perder la ubicación, reanudará después de la pausa del programa,
reinicia, y reporta los estados actuales.
2. Advanced Cycle Homing: Un montón de opciones de configuración para los diferentes tipos de
máquinas de como deben moverse los ejes cuando busca sus direcciones. Los interruptores de límite
también se pueden usar como Hard limit también.
3. Datos de sistema de coordenadas persistente: sistemas de coordenadas de trabajo (G54-G59) y de
posiciones predefinidas (G28, G30) se llevan a cabo en la EEPROM, por lo que siempre se va a
establecer como la última vez que los ha ajustado.
4. Comprobación de modo de código G: configure Grbl para ejecutar programas sin que se mueva nada
en la máquina, así que usted puede comprobar si usted tiene o no errores en Grbl que no le gusten.
5. Mejor retroalimentación: reportes de posición en tiempo real, qué está haciendo Grbl, el estado del
analizador de código g, y los valores coordenados de offset almacenados.
6. Bloques de inicio: Auto-mágicamente el usuario ejecuta bloques de código g en el inicio o reinicio del
programa. Se puede utilizar para establecer los valores predeterminados de la máquina.
7. Pin-outs: Cycle start, Feed Hold, y abort están ahora puestos en los pines de salida al A0, A1, A2. Sólo
tiene que conectar un interruptor normalmente abierto al pin correspondiente y tierra. Eso es todo!
8. Analizador de código g más robusto con comprobación de errores de realimentación.

CARGAR FIRMWARE DE GRBL EN ARDUINO

Esta sección está destinada a proporcionar diversas instrucciones sobre cómo cargar grbl a un Arduino. GRBL

es un programa multiplataforma, por lo que puede ser utilizado tanto en Windows, Mac o Linux. Se presentará

a continuación la instalación de GRBL en Windows (Para instalar GRBL en otras distribuciones de sistema

operativo refiérase a la WIKI del desarrollador del software.

Para Windows Cargar un archivo hex a tu Arduino es simple en Windows. En primer lugar, se debe conectar
el Arduino a cualquier puerto USB de su computadora con Windows y luego determinar el puerto COM

asignado al Arduino. Para determinar el puerto COM de la placa Arduino:

 Windows XP: Haga clic derecho sobre " Mi PC ", seleccionar" Propiedades ", seleccione" Administrador de
dispositivos ".
 Windows 7: Haga clic en "Inicio" - haga clic derecho en > "ordenador "-> Seleccione" Administrar "->
Seleccione" Administrador de dispositivos "del panel izquierdo.
 En el árbol, expanda " Puertos (COM & LPT) "
 Tu Arduino será el puerto serie USB (COMX), donde la "X" representa el número de COM, por ejemplo
COM6.
 Si hay varios puertos USB seriales, haga clic en cada uno de ellos y compruebe el fabricante, el Arduino
será "FTDI".

Para actualizar un archivo .hex de grbl a un Arduino:

1. Descargar el firmware .hex de grbl GRBL de Arduino. Nota: hemos usado la versión 0.8c de GRBL.
2. Descargar y extraer XLoader.
3. Abrir XLoader y seleccione el puerto COM de su Arduino desde el menú desplegable en la parte inferior
izquierda.
4. Seleccione el dispositivo apropiado en la lista desplegable titulada "Dispositivo".
5. Compruebe que Xloader establece la velocidad de transmisión correcta del dispositivo: 57.600 para
Duemilanove / Nano (ATmega 328) o 115200 para Uno (ATmega 328).
6. Ahora utilice el botón Examinar en la parte superior derecha del formulario para buscar en el archivo
.hex de grbl.
7. Una vez seleccionado el archivo .hex de grbl, haga clic en "Upload"

Tras hacer clic en cargar, verás las luces RX/TX parpadear intensamente en el Arduino. El proceso de carga

general toma alrededor de 10 segundos para finalizar. Una vez finalizado, aparecerá un mensaje en la esquina

inferior izquierda de XLoader que le dirá cuántos bytes se han subido. Si hay un error, se mostraría en lugar de

los bytes totales cargados. Los pasos deben ser similares y puede ser hecho a través de la línea de comandos.

CONEXIÓN DE DRIVER DE MOTORES PASO A PASO A ARDUINO GRBL

Esta es una interfaz bastante sencilla para una máquina de eje 3. La "señal de tierra" para cada driver se

conectan entre sí y se atan al pin GND del Arduino. No hay que confundir esto con la tierra del motor o

cualquier otro tipo de conexión a tierra en el Driver CNC DIY. El pin 'Step' para los ejes X, Y y Z se unen a los
pines digitales 2, 3 y 4 respectivamente. El pin 'Dir' para los ejes X, Y y Z se unen a los pines digitales 5, 6 y 7,

respectivamente.

CONEXIÓ N DE D RIVER S D E MOTORES P AS O A P AS O EN AR DUIN O

INTERFÁZ GRÁFICA DE USUARIO (GUI) PARA GRBL

GRBL permite utilizar el software de Arduino (Arduino IDE) y otras interfaces de terminal serial para conectarse

con GRBL (PuTTY, CoolTerm, etc.). Sin embargo, para aprovechar plenamente todas las capacidades de Grbl,

los desarrolladores del software recomiendan utilizar uno de los tantos GUIs que los usuarios han escrito para

transmitir sus programas en código G para Grbl. Uno de estos es la GUI llamada “Universal GcodeSender”, la

cual se está utilizando en la máquina DIYLILCNC en su versión 1.0.6.

Interfáz gráfica de usuario “Universal GcodeSender”.


Universal GcodeSender es una interfaz gráfica de usuario con todas las funciones, creado por el desarrollador

de software Will Winder en Estados Unidos. Posee visualizador de código g y tiene un completo control y

funcionalidad de comentarios para las características de alto nivel de Grbl. Está escrito en Java, lo que

significa que se puede ejecutar en cualquier máquina con Java incluyendo la RaspberryPi. El grupo Grbl

trabaja en estrecha colaboración con este proyecto y recomienda encarecidamente utilizar esta interfaz gráfica

de usuario. Si usted encuentra cualquier problema o desea solicitar más características en la GUI, Will Winder

ha hecho un trabajo maravilloso en la realización de muchas de las peticiones en el foro de la Wiki de GRBL.

Este software se está utilizando para DIYLILCNC en Windows (para 32 bits en su versión 1.0.6). Si desea

instalar Universal GcodeSender en Windows de 64 bits, instalar en otras distribuciones de sistema operativo o

probar otras versiones (mas antiguas o mas actualizadas) de esta interfaz gráfica refierase a la WIKI del

desarrollador.

Ventana de visualización de código g en “Universal GcodeSender”.


CONFIGURACION DE HARDWARE DEL DRIVER
DE MOTORES DIYLILCNC
El driver de motores paso a paso diseñado para la fresadora DIYLILCNC trabaja en base a 2 circuitos

integrados complementarios y dedicados al manejo de motores paso a paso unipolares y bipolares. Estos

chips son el Puente H doble L298 y el controlador de puente H L297. El trabajo pesado es desarrollado por el

Circuito integrado L298, quien permite la conmutación de las bobinas de los motores para que estos giren,

según las ordenes que le entregue el circuito integrado L297. Este chip es el cerebro del driver y permite una

gran variedad de funciones para el manejo de motores paso a paso. Para la utilización de este driver en la

fresadora DIYLILCNC no se utilizan todas sus funciones, sin embargo, se han dejado habilitadas todas en el

hardware y pueden ser seleccionadas a partir de pequeños puentes o “Jumpers” incorporados en el driver. A

continuación se presentarán las distintas configuraciones que posee este driver de motores paso a paso

diseñado para esta máquina:


PINES DE CONEXIÓN Y JUMPERS DE SELECCIÓN DE
FUNCIONAMIENTO

El driver de motores paso a paso ha sido diseñado en 2 placas, montadas una sobre otra y separadas por

pernos.

Vista de driver conectado a un motor paso a paso

Driver CNC DIY v1.0 conectado a motor paso a paso

Driver CNC DIY v1.2

Donde la placa inferior posee el hardware asociado al circuito integrado L298 y la placa superior posee el

hardware asociado al circuito integrado de control L297. Los pines de conexión del driver y la configuración de

funcionamiento de este se encuentran en la placa superior

Pines de conexión y Jumpers de configuración de hardware en el driver


PINE S DE CO NE XIÓN

El driver de motores paso a paso posee 12 pines de conexión, tanto de salida como de entrada de señales.

Algunos son utilizados en el funcionamiento de la fresadora DIYLILCNC y otros no, pero han sido

implementados en el diseño del driver en caso de una posible utilización futura o para el desarrollo de otro tipo

de máquinas que requieran de las funciones adicionales entregadas por el L297.

A continuación se presentará las características de estos pines:

 Pasos: Este pin recibe pulsos de señal, en el que cada pulso de entrada incrementa la secuencia del motor
en una unidad. El paso se produce en el borde ascendente de esta señal.

 Dirección: Este pin de entrada controla el sentido de giro del motor (dirección Reloj/contrareloj). La
dirección física de rotación del motor también depende de la conexión de los devanados. La secuencia de
pasos del motor se mantendrá o se invertirá si este pin se encuentra en nivel alto o bajo de tensión.

 Enable: Entrada de habilitación del chip. Cuando esta entrada está en nivel bajo el driver permanecerá
encendido, pero des energizará las bobinas del motor.

 Control: Entrada de control que define la acción de regulación de corriente en los motores. Este pin de
entrada no se utiliza, pues se configura por hardware en el mismo driver con Jumpers de configuración.
Esta configuración interna se explicará más adelante.

 HALF/FULL: Entrada de selección para paso completo o medio paso. Cuando se selecciona un nivel alto
funciona en medio paso, cuando se selecciona un nivel bajo funciona en paso completo. Este pin de
entrada no se utiliza, pues se configura por hardware en el mismo driver con Jumpers de configuración.
Esta configuración interna se explicará más adelante.

 Home: Pin de salida que indica cuando el driver se encuentra en la posición inicial de una secuencia
(ABCD=0101). Cada vez que el driver se encuentra en una posición inicial de secuencia de pasos el pin
HOME entrega nivel bajo y entrega nivel alto para el resto de la secuencia. Este pin de entrada no se
utiliza, pues se configura por hardware en el mismo driver con Jumpers de configuración, conectando
internamente la señal de HOME a un LED que se apaga cada vez que existe una posición inicial de
secuencia. Esta configuración interna se explicará más adelante.

 Sync: m Salida del oscilador de regulación de corriente del driver. Permite sincronizar varios drivers al
mismo tiempo conectando una fuente de reloj externa común. Este pin de entrada no se utiliza.

 GND: Pin de referencia de voltaje. Existen 2 pines de este tipo: uno para conectarse al Arduino y el otro
para conectarse a la placa inferior, donde se encuentra el chip puente H doble L298. Estas conexiones son
necesarias debido a que todos los circuitos electrónicos conectados entre sí deben tener un mismo nivel de
tensión de referencia.

 Vin_12V y Vout_5V: Este pin se utiliza para energizar los circuitos integrados de ambas placas del driver.
Estos chips funcionan con una tensión de 5V, por lo que este pin recibe una tensión de 12V, tensión que
será reducida a 5V por un transistor regulador de voltaje, el cual entregará el voltaje apropiado a cada chip.
Este regulador está incorporado en la primera placa, por lo que la segunda placa recibirá directamente los
5V a partir del pin de salida de voltaje Vout_5V.

 Reset: Este pin reinicia la secuencia de pasos de los motores si permanece en nivel bajo por unos
instantes, por lo que el driver funcionará normalmente mientras este pin permanezca en nivel alto de
tensión. Este pin de entrada no se utiliza, pues se configura por hardware en el mismo driver con Jumpers
de configuración. Esta configuración interna se explicará más adelante.

JUMPER S DE SE LECCIÓN DE FU NCION AM IEN TO

Existen en el driver de motor paso a paso una selección de funcionamiento para los modos Control, Enable,

Home, Reset y HALF/FULL. La selección se realiza a través de puentes entre pines los cuales se realizan por

medio de “Jumpers”. Estas conexiones permiten configurar el driver para que los modos de funcionamiento

mencionados se configuren de manera externa (a través de los pines corresponientes) o de manera interna

(entregando nivel de voltaje alto o bajo a estos pines desde el mismo driver). Estas configuraciones de

hardware se explican a continuación:


 Control

Modo de funcionamiento “Control”. Modo externo y modo interno respectivamente

Si se instala un jumper en la posición del ovalo verde permite utilizar el modo “Control” de forma externa, a

partir del pin de control. Si se coloca un jumper en la posición del óvalo azul, la configuración del modo de

control se realizará de forma interna desde el hardware. Junto a este jumper existe un segundo jumper el cual

debe instalarse en la posición del rectángulo rojo (nivel alto de tensión para control de corriente desde ABCD)

o en la posición del rectángulo negro (nivel bajo de tensión para control de corriente desde INH1 e INH2). La

configuración de “Control”en la máquina DIYLILCNC debe ser interna de nivel bajo (ovalo azul – rectángulo

negro).
 Enable

Si se instala un jumper en la posición del ovalo verde permite utilizar el modo “Enable” de forma externa, a

partir del pin de Enable. Si se coloca un jumper en la posición del óvalo rojo, la configuración del modo de

Enable se realizará de forma interna desde el hardware conectando este pin interno directamente a nivel alto,

para que el driver alimente los motores en todo momento. Si está recién aprendiendo a utilizar los drivers

puede utilizar la configuración interna. GRBL permite la opción de desenergizar los motores cada vez que la

máquina no se encuentre realizando movimientos de fresado, por lo que utilizaremos para la máquina la

configuración externa (jumper en óvalo verde).


 Home

Modo de funcionamiento “HOME”. Modo externo y modo interno respectivamente

Si se instala un jumper en la posición del ovalo verde permite entregar la indicación de la posición de

secuencia “HOME” de forma externa, a partir del pin de salida HOME. Si se coloca un jumper en la posición del

óvalo rojo, la señal de HOME se realizará de forma interna y será conectada a un LED, el cual indicará que el

driver se encuentra en la posición inicial de una secuencia cada vez que se apague el LED.
 Reset

Modo de funcionamiento “RESET”. Modo externo y modo interno respectivamente

Si se instala un jumper en la posición del ovalo verde permite utilizar el modo “RESET” de forma externa, a

partir del pin de RESET. Si se coloca un jumper en la posición del óvalo azul, la configuración del modo de

RESET se realizará de forma interna desde el hardware. Junto a este jumper existe un segundo jumper el cual

debe instalarse en la posición del rectángulo rojo (nivel alto de tensión para funcionamiento normal del driver) o

en la posición del rectángulo negro (nivel bajo de tensión para reinicio de la secuencia de conmutación de las

bobinas). La configuración de “RESET” en la máquina DIYLILCNC debe ser interna de nivel alto (ovalo azul –

rectángulo rojo), pues esta opción no es utilizada en la máquina.


 HALF/FULL

Modo de funcionamiento “HALF/FULL”. Modo externo y modo interno respectivamente.

Si se instala un jumper en la posición del ovalo verde permite utilizar el modo “HALF/FULL” de forma externa, a

partir del pin de HALF/FULL. Si se coloca un jumper en la posición del óvalo azul, la configuración del modo de

HALF/FULL se realizará de forma interna desde el hardware. Junto a este jumper existe un segundo jumper el

cual debe instalarse en la posición del rectángulo negro (nivel bajo de tensión para funcionamiento en modo de

paso normal) o en la posición del rectángulo rojo (nivel alto de tensión para funcionamiento en modo de medios

pasos). La configuración de “HALF/FULL” en la máquina DIYLILCNC debe ser interna de nivel alto (ovalo azul
– rectángulo rojo). Esto permite que el driver duplique en los motores la cantidad de pasos por revolución y con

esto aumente la resolución de la máquina.

Si desea conocer como funciona por dentro el driver CNC DIY para DIYLILCNC puede acceder al

capítuloFuncionamiento del driver CNC DIY para motores paso a paso (Marco teórico).

CONFIGURACIÓN DE GRBL V0.8 PARA


FRESADORA DIYLILCNC
Nota: La siguiente documentación de este software ha sido traducida al español y adaptada al funcionamiento

de DILLILCNC desde la Wiki GRBL del desarrollador. GRBL está bajo la Licencia Pública General GNU y ha

sido desarrollado por el programador Simen Svale Skogsrud en Noruega.

Grbl tiene un sistema de comandos '$' para ajustar la configuración y los comandos de tiempo de ejecución

para la puesta en marcha. Puede conectarse a Grbl utilizando una terminal serial de su elección (velocidad de

transmisión 9600 a menos que desee cambiarlo en el archivo config.h) como el 8-N-1 (8 bits, sin paridad, y 1

bit de parada). Una vez conectado usted debe observar en la ventana terminal un mensaje de GRBL de la

siguiente forma:

Escriba $ y pulse enter. Usted no debe ver ningún eco local del $ y enter, pero Grbl debe responder con un

mensaje de ayuda:
De estos comandos, sólo cuatro de ellos se utilizan para configurar Grbl [$$, $x=value, $N, $Nx=line] mientras

que el resto son comandos de tiempo de ejecución que, o bien informan del estado actual en Grbl o modificar

su comportamiento.

COMANDOS DE CONFIGURACIÓN: “$$”, $X=VAL, $N Y $NX=LINE

$$ (VER L A CON FIGUR ACI ÓN GR BL) Y $X = V AL ( GU AR D AR


CONF IGUR AC IÓN GRBL)

Cuando se conecte a Grbl, escriba $$ y presione enter. Grbl debe responder con una lista de los valores

actuales del sistema, similar a como se muestra en la siguiente lista. Todos estos ajustes son persistentes y se

mantiene en la EEPROM, por lo que si usted apaga el equipo, éstos se cargarán de nuevo la próxima vez que

encienda el Arduino.
Para cambiar, por ejemplo, la opción de pulsos para paso de microsegundos a 10us usted debe escribir lo

siguiente, seguido de enter:


Si todo marcha bien, Grbl responderá con un 'ok', y esta configuración se almacenará en la EEPROM y se

conservará para siempre o hasta que decida cambiarlo. Puede comprobar si Grbl ha recibido y almacenado la

configuración correctamente escribiendo $$ para ver la configuración del sistema nuevamente.

$N (VER L OS BL OQUES D E INICI O ) Y $NX=LINE ( GU AR D AR BLOQUE DE


INICIO)

$Nx son los bloques de inicialización que Grbl ejecuta cada vez que se enciende Grbl o se resetea Grbl. En

otras palabras, un bloque de inicialización es una línea de "código g" que se puede tener corriendo a Grbl auto-

mágicamente para seleccionar valores de código g predeterminados por usted, o cualquier otra cosa que usted

necesite que haga Grbl cada vez que arranque el equipo. Por el momento, Grbl puede almacenar dos bloques

de código-g por defecto en el sistema, pero se puede almacenar en cualquier lugar de 1 a 5, como una opción

en tiempo de compilación (cambiando config.h y re-compilando). Por lo tanto, cuando se conecte a Grbl,

escriba $ y luego enter. Grbl debe responder con un mensaje corto, como:

No hay mucho que seguir, pero esto sólo significa que no hay ningún bloque de código g almacenado en la

línea $N0 en Grbl para ser ejecutada en el arranque. $N1 es la siguiente línea a ejecutar. (Si vuelve a compilar

para tener más, se ejecutará en orden a $N4). Para definir un bloque de arranque, escriba $N0 = seguido de

un bloque de código g válido y luego enter. Grbl ejecutará el bloque para comprobar si es válido y luego

responderá con un 'ok' o un error: para decirle si tuvo éxito o algo salió mal.

Por ejemplo, digamos que usted desea utilizar su primer bloque de arranque $N0 para programar los modos de

analizador de código de g como coordenadas trabajo G54, modo pulgadas G20 y plano XY G17. Usted debería

escribir $N0 = G20 G54 G17 con un entra y usted debería ver una respuesta 'ok'. A continuación, puede

comprobar si se consiguió almacenar escribiendo $ N y ahora debería ver una respuesta como $N0 =

G20G54G17. Una vez que tenga un bloque de arranque almacenado en la EEPROM de Grbl, cada vez que se
arranque o restablecer verá su bloque de arranque impreso por usted y una respuesta de Grbl para indicar si

funcionara bien. Así que para el ejemplo anterior, verá:

Si dispone de varios bloques de inicio de código de g, se imprimiran nuevamente a usted en orden sobre cada

inicio. Y si desea borrar uno de los bloques de inicio, escriba $N0 = sin nada después del signo igual. Además,

si usted tiene activado homing, los bloques de arranque se ejecutará inmediatamente después del ciclo

homing, no en el inicio. IMPORTANTE: Tenga mucho cuidado al almacenar cualquier comandos de

movimiento (G0/1, G2/3, G28/30) en los bloques de inicio .Estos comandos de movimiento se ejecutarán cada

vez que se reinicie o encienda Grbl, así que si usted está en una situación de emergencia y tiene que ejecutar

una parada de emergencia y reiniciar, un movimiento del bloque de inicio puede (y probablemente lo hará)

empeorar las cosas rápidamente.

DE GRBL $X = V AL CON FIGUR AC IÓN Y SU SIGN IFIC AD O

 $0, $1 y $2 (pasos/mm de ejes X, Y y Z)

GRBL necesita saber cuán lejos cada paso desplazará la herramienta en la realidad. Para calcular los

pasos/mm para cada eje de su máquina usted necesita saber:

1. Los mm por revolución del tornillo de avance


2. Los pasos completos por revolución de los motores paso a paso (normalmente 200)
3. Los micropasos por paso de su driver (normalmente 1, 2, 4, 8 o 16).

Consejo: Usando valores altos de micropasos (por ejemplo, 16) puede reducir el torque de su motor paso a

paso, entonces utilice el valor más bajo que le de la resolución deseada en los ejes y propiedades de

funcionamiento más cómodas. Los pasos/mm entonces se pueden calcular así:

Calcule este valor para cada eje y escriba estos valores en Grbl.

 $3 (Pulsos de paso, microsegundos)


Los drivers de motores paso a paso están clasificados para una determinada longitud de pulsos de paso

mínima. Revise la hoja de datos de los motores o simplemente pruebe algunos números. ¿Quieres que pulsos

muy cortos en los Drivers de motor paso a paso puedan ser reconocidos con fiabilidad?. Si los pulsos son

demasiado largos podría encontrarse con problemas para ejecutar el sistema a altas velocidades de avance.

Generalmente algo entre 5 y 50 microsegundos funciona bien.

 $4 y $5 (Feed Rate y seek Rate por defecto, mm/min)

Esta configuración setea el seek rate por defecto (G0) y el feed rate (tasa de alimentación) (G1, G2, G3)

después de encender Grbl e inicializar. El seek rate ( también conocidos como saltos rápidos) se utiliza para

moverse desde el punto A al punto B lo más rápido posible, por lo general para el desplazamiento a la

posición. El seek rate debe ajustarse a la máxima velocidad a la que máquina puede ir en cualquier

movimiento de los ejes. El feed rate por defecto normalmente no entra en la tabla como generalmente se

especificarán los feed rate en el programa de código de g, pero si no, este feed rate por defecto se utilizará.

NOTA: En versiones futuras, se eliminará la tasa de alimentación por defecto (default feed rate). La norma de

código G no posee una tasa de alimentación por defecto (G1, G2, G3), pero entregará error de salida si no ha

habido un comando de avance "F" especificado. La tasa de seek (también conocido como saltos rápidos) se

actualizará para que los usuarios puedan especificar la velocidad máxima a la cual cada uno de los ejes se

pueda mover, en lugar de tener sólo una velocidad que limite a todos ellos.

 $6 (Invertir puertos de entrada de paso por máscara de bits, int: binaria)

Algunos controladores paso a paso para CNC necesitan que sus entradas de nivel alto y y de nivel bajo estén

invertidas tanto para la dirección como en los pasos. Las líneas de señal son normalmente puestas en nivel

alto o bajo para indicar la dirección de giro o puestas en nivel alto y pasando a nivel bajo un par de

microsegundos para indicar un evento de paso. Para lograr esto, Grbl puede invertir los bits de salida para

acomodarse a esas necesidades particulares. El valor invertido de la máscara es un byte el cual es negado

con los datos de dirección y paso antes de que se envíe por el puerto de entrada de control de pasos del driver

de motores. De esa manera usted puede utilizar este método tanto para invertir pulsos de paso o para invertir
una o más de las direcciones de los ejes. Los bits de este byte corresponden a los pines asignados para la

generación de pasos en el código del archivo config.h. Tenga en cuenta que los bits 0 y 1 no se utilizan para la

inversión. Por defecto bits se asignan así:

Por ejemplo, si desea invertir las direcciones de X e Y en esta configuración se debe calcular un valor por

bitshifting así (en su entorno de cálculo favorito):

Que es igual a 96, por lo que al enviar este comando los invertirá:

Ahora, al ver la configuración actual, debería ver esto en su línea de comandos de inversión de máscara con la

representación binaria del número (bits 5 y 6 debería mostrar ahora un 1 para indicar la inversión.)

 $7 (Retardo de ralenti de pasos, ms)

Cada vez que los motores paso a paso completen un movimiento y se detengan, Grbl deshabilitará los motores

paso a paso de forma predeterminada. El tiempo de bloqueo de ralenti de los motores paso a paso es la

longitud de tiempo en que GRBL mantendrá los motores paso a paso bloqueados antes de deshabilitar.

Dependiendo del sistema, se puede establecer este a cero y desactivarlo. En otros, es posible que necesite 25

a 50 milisegundos para asegurarse de que sus ejes se detengan por completo antes de deshabilitarse. (El
autor comenta que su máquina tiende a desviarse ligeramente si no tienen activada esta función.) O, puedes

mantener siempre los ejes activados todo el tiempo seteando este valor en el máximo de 255 milisegundos.

Una vez más, sólo para repetir, se puede mantener todos los ejes siempre habilitados estableciendo $ 7 = 255.

 $8 (Aceleración, mm/seg^2)

Esta es la aceleración en mm/segundo/segundo. Usted no tiene que entender lo que eso significa, basta decir

que un valor inferior proporciona una aceleración muy suave mientras que con un valor superior producirá

movimientos más ajustados y alcanzará feedrates mucho más rápido. En términos técnicos, esta es la

aceleración punto a punto de la máquina, independientemente de los ejes. Seleccione este valor de

aceleración tan alto como los límites de los ejes pueden dejarle sin perder CUALQUIER paso. Por lo general,

le gustaría darse un poco de buffer, ya que si pierdes pasos, Grbl no tiene ni idea de lo que ha sucedido (los

motores paso a paso se controlan en lazo abierto) y sigue adelante.

 $9 (Desviación de uniones, mm)

La desviación de unión de curvas es utilizada por el manager de aceleración para determinar la rapidez con

que puede moverse a través de un camino. La matemática es un poco complicada, pero en general, los

valores más altos da generalmente movimientos más rápido, posiblemente bruscos. Los valores más bajos

hacen que el manager de aceleración sea más cuidadoso y dará lugar a un cuidadoso y lento movimiento en

las curvas. Así que si llegas a tener problemas cuando el equipo trate de tomar una curva demasiado rápido,

reduzca este valor para que sea más lento. Si desea que su máquina pueda moverse más rápido a través de

los cruces, aumente este valor para acelerarlo. Para los técnicos, ir a este enlace para leer sobre el algoritmo

de curvas de Grbl, que representa tanto la velocidad y el ángulo de cruce con un método muy simple, eficiente

y robusto.

 $10 (Arco, mm/segmento)

GRBL renderiza círculos y arcos mediante la subdivisión de ellos en líneas muy pequeñitas. Es probable que

nunca tenga que ajustar este valor, pero si usted encuentra que sus círculos son demasiado irregulares (¿en
serio? ¿una décima de milímetro no es lo suficientemente precisa para usted? ¿Está usted en la

nanotecnología?) Usted puede ajustar esto. Los valores más bajos dan una mayor precisión, pero puede dar

lugar a problemas de rendimiento.

 $11 (Corrección de n-ésimo arco, int)

Esta es una opción avanzada que no se debe cambiar a menos que existan circunstancias en las que usted lo

necesite. Para que sea posible hacer arcos G02/03 en Grbl, Grbl aproxima la ubicación del siguiente segmento

de arco con una pequeña aproximación de ángulo. La corrección de n-ésimo arco es el número de segmentos

de arco aproximados realizados antes de que Grbl calcule un segmento de arco exacto para corregir el drift de

error de aproximación. Calcular estas ubicaciones exactas es computacionalmente costosa, pero hay algunos

casos extremos en los que las pequeñas aproximaciones angulares pueden introducir suficientes error a

notarse, con muy muy pequeños arcos con una gran longitud de segmento de arco. Cambie esta configuración

sólo si encuentra problemas extraños con arcos, pero no es recomendable para ir por debajo de 3, ya que esto

puede llevar al buffer a encontrarse vacío en algunos espacios de tiempo, donde los ejes desaceleren and

hiccup. Sin embargo, los resultados pueden variar.

 $12 (Decimal n-ésimo, int)

Selecciona cuantos de todos los decimales de los valores de punto flotante entregará Grbl. No es mucho más

complicado que eso.

 $13 (pulgadas reportadas, booleano)

GRBL v0.8 tiene una función de informe de posicionamiento en tiempo real para proporcionar a los usuarios

una retroalimentación sobre donde se encuentra exactamente la máquina en ese momento. Por defecto está

configurado para informar en mm, pero enviando el comando $13 = 1, usted envia este indicador booleano

como "verdadero" y la función de los informes de estado reportará ahora en pulgadas. Para ajustar

nuevamente a mm $13 = 0.
 $14 (Inicio automático, booleano)

En un entorno de CNC más profesional, los profesionales comienzan un trabajo cargando su programa y luego

pulsando el botón 'inicio del ciclo' (Cycle start) en su máquina. Se inicia el trabajo. Grbl hace lo mismo, pero no

por defecto. Como una herramienta de aprendizaje, 'auto inicio de ciclo' ejecutar cualquier comando de código

G que el usuario envíe a Grbl, sólo para correr la máquina para ver si se mueven en la dirección que cree que

debería ir o simplemente ver lo que la máquina puede hacer . Esto hace que sea más fácil de cargar código en

su máquina con Grbl y observar como trabaja, en lugar de tener que presionar el botón "inicio del ciclo" cada

vez que desee mover los ejes. Una vez que aprenda a usar el equipo y obtenga un buen manejo de código g,

puede desactivar la función "auto inicio de ciclo 'enviando el comando $14=0 a GRBL. (Puede ser necesario un

ciclo de soft-reset o un power cycle para cargar el cambio). Otra forma de decirlo podría ser: Si $14 = 0,

entonces algunos comandos Gcode como Xn, Yn etc. no resultarán cuando les aplique "enter" en un terminal

serial. Si $14 = 1, entonces van a pasar los comandos de movimiento de Gcode. Al parecer en las grandes cnc

no se ejecutará codigo G hasta que el operador presione el botón de "inicio del ciclo". Los comandos Gcode se

reciben, pero permanecen en cola y en espera al botón "inicio del ciclo". Tiene sentido, ¿no? Cuando $14 = 0,

entonces así es como actúa grbl también. Necesita el botón! (En este caso, instale el botón de feed-hold

(alimentación retenida) también). Cuando $14 = 1, entonces el software grbl agrega automáticamente el código

de software del "inicio del ciclo" cada vez que se pulse "Enter" a una línea de comandos de codigo G a través

de un terminal serial. Esto se hace para que sea más conveniente para usted introducir comandos y ver que

algo suceda sin tener que pulsar el botón.

 $15 (Habilitación de paso invertido, booleano)

Por defecto, el pin de habilitación (Enable) de motor paso a paso está en nivel alto para desactivar y bajo para

habilitar. Si su configuración requiere lo contrario, simplemente invierta el pin de habilitación de motor paso a

paso escribiendo $15 = 1. Desactivar con $15 = 0. (Puede ser necesario un "power cycle" para cargar el

cambio).

 $16 (Límites de fin de carrera o Hard Limits, booleano)


Los finales de carrera son una medida de seguridad para ayudar a evitar que su máquina viaje demasiado

lejos de los extremos de recorrido y choquen o rompan algo caro. Básicamente se cablean algunos

interruptores (mecánico u óptico) cerca del final de carrera de cada uno de los ejes, o donde quiera que usted

considere que podría haber problemas si el programa se desplaza demasiado hacia donde no debe. Cuando el

interruptor se activa, se detendrá inmediatamente la marcha, el apagado del refrigerante y del cabezal (si están

conectados), y entra en el modo de alarma, lo que obliga a revisar el equipo y reiniciar todo. Para utilizar los

límites de final de carrera con Grbl, los pines de límite de final de carrera en arduino estarán en nivel alto con

una resistencia pull-up interna, por lo que todo lo que tienes que hacer es cablear un interruptor normalmente

abierto con el pin y tierra y habilitarlo con el comando $16 = 1. Eso es todo.(Desactivar con $16 = 0 ) Si quieres

limitar ambos finales de carrera en uno los ejes, sólo cablea dos interruptores en paralelo con el pin y tierra,

por lo que si uno de los dos se activa, se disparará la acción de final de carrera. Sólo sé, que un evento de fin

de carrera es considerado como evento crítico, donde los motores paso a paso paran inmediatamente y

tendrán probablemente los pasos perdidos. Grbl no tiene ninguna información sobre la posición, por lo que no

puede garantizar que tiene alguna idea de dónde está. Por lo tanto, si se activa una alarma de Hard limit, Grbl

entrará en un bucle infinito de modo de alarma, que te da la oportunidad de ver la máquina y te obliga a

reiniciar Grbl. Recuerda que es una medida de seguridad exclusivamente. Si tiene problemas con que el

interruptor de límite de fin de carrera se dispara constantemente después de resetear, un soft-reset

restablecerá Grbl en un estado de alarma, donde se puede acceder a la configuración y comandos Grbl, pero

todos los códigos G y bloques de arranque serán bloqueados. Así que usted puede desactivar el ajuste de los

límites de fin de carrera y luego con $X desbloquear la alarma. O bien, puede conectar en un interruptor

normalmente cerrado en serie con la tierra a todos los finales de carrera para desconectar los interruptores de

forma temporal para que pueda poder mover con GRBL sus ejes fuera de los interruptores.

 $17 (Ciclo de Homing, booleano)

Algo que ha sido muy necesario en Grbl desde hace largo tiempo. Está ahora plenamente compatible con v0.8.

Para los que recién se inician en CNC, el ciclo de Homing se utiliza para localizar con exactitud y precisión la

posición cero en una máquina (también conocido como cero de máquina) cada vez que arranque su Grbl entre

sesiones. En otras palabras, usted sabe exactamente dónde se encuentra en cada momento, cada vez.
Supongamos que partimos mecanizando algo o está a punto de iniciar el siguiente paso en un trabajo y se va

la luz, se vuelve a iniciar Grbl y Grbl no tiene ni idea de dónde está. Uno se queda con la tarea de averiguar

dónde se encuentra. Si usted tiene homing, siempre tienes el punto de referencia cero de la máquina

localizado, por lo que todo lo que tienes que hacer es ejecutar el ciclo de homing y continuar donde lo dejó.

Para configurar el ciclo de homing de Grbl, es necesario tener fines de carrera en una posición fija que no va a

ser golpeada o movida, o bien su punto de referencia sea erróneo. Por lo general, se configuran en el punto

más lejano de +X, +Y y +Z de cada uno de los ejes. Conecte los interruptores de límite con el pin de límite y de

tierra, al igual que como hizo con los límites de final de carrera y habilite el homing. Si tienes curiosidad,

puedes usar los interruptores de límite para ambos finales de carrera y homing. Ellos trabajan bien uno con el

otro. De forma predeterminada, el ciclo de homing de Grbl mueve el eje Z positivo primero para borrar el área

de trabajo y luego se mueve tanto en el eje X y eje Y al mismo tiempo en la dirección positiva. Para configurar

el comportamiento de su ciclo homing hay más opciones de Grbl en las siguientes secciones que describen lo

que hace cada una (y las opciones de tiempo de compilación también). Además, una cosa más para tener en

cuenta, cuando homing esté activado, Grbl bloqueará todos los comandos de código G hasta que se realice el

ciclo de homing. Significa que no hay movimiento de ejes, a menos que el bloqueo esté desactivado ($X), pero

lo veremos más adelante. La mayoría, si no todos los controladores CNC, hacer algo similar ya que en su

mayoría lo usan como medida de seguridad para ayudar a que los usuarios realicen correcciones de error de

posicionamiento, que es muy fácil de hacer y es triste cuando un error arruina una pieza. Si usted encuentra

esta molestia o encuentra algún error extraño, por favor háganlo saber y vamos a tratar de trabajar en él para

todo el mundo sea feliz. :) NOTA: Revise config.h para más opciones de homing para usuarios avanzados.

Puede desactivar el bloqueo de homing al inicio, configurar los ejes que mueven primero durante un ciclo de

homing y en qué orden, y mucho más.

 $18 (Invertir dirección de Homing por máscara, int: binario)

De forma predeterminada, Grbl asume que sus finales de carrera son posición de Homing en la dirección

positiva, en primer lugar mueve el eje z positivo, entonces mueve los ejes x e y en dirección positiva antes de

tratar de localizar exactamente el cero de máquina yendo y viniendo lentamente alrededor del switch. Si la

máquina tiene un interruptor de límite en la dirección negativa, la máscara de dirección homing puede invertir el
sentido de los ejes. Funciona igual que en el la inversión de puertos de entrada de paso por máscara de bits,

donde todo lo que tienes que hacer es ajustar los pines de dirección de eje a "1" que desees invertir y que los

ejes ahora busquen el pin límite en la dirección negativa.

 $19 (Homing feed, mm/min)

El ciclo de homing primero busca llegar a los finales de carrera a un seek rate alto (a una velocidad de

desplazamiento alta) y después que los encuentra, se mueve a una velocidad de avance más lenta para poner

a punto en la ubicación precisa el cero de la máquina. Homing feed significa que avance más lento. Ajústelo a

cualquier valor de velocidad que proporcione una repetible y precisa localización del origen de la máquina.

 $20 (Homing seek, mm/min)

La tasa de Homing seek es la tasa de búsqueda de ciclos de homing, o la velocidad a la que primero intenta

encontrar los finales de carrera. Ajuste a cualquier tasa a la que se llegue a los finales de carrera en un tiempo

suficientemente corto sin que se descarrile la máquina en los finales de carrera si viene demasiado rápida.

Esta seek rate se comporta un poco diferente que el driver de motor paso a paso principal. En lugar de la tasa

de punto a punto, sólo se mueven todos los ejes a la misma velocidad individual, independientemente de

cuantos ejes se mueven al mismo tiempo. Por lo tanto, el movimiento seek XY parecerá moverse alrededor del

41% más rápido que si usted desee moverlo con un comando G1. (Se puede desactivar esto en el código del

programa config.h si le molesta. Está ahí para acelerar el ciclo de homing.)

 $21 (rebote de Homing, ms)

Cada vez que un interruptor se activa, algunos de ellos pueden tener ruido electro/mecánico que en realidad

"rebotan" la señal en nivel alto y bajo durante unos milisegundos antes de asentarse. Para solucionar esto, es

necesario para evitar el rebote de la señal, ya sea por hardware con algún tipo de Acondicionador de señal o

por software con un pequeño retraso para que acabe el rebote de la señal. Grbl realiza una breve demora sólo
en homing cuando localiza el cero de máquina. Establezca este valor de retardo a cualquier valor que su

switch necesite para evitar una repetición de homing. En la mayoría de los casos 5 a 25 milisegundos está

bien.

 $22 (Homing pull-off, mm)

Para trabajar bien con la función de los límites de carrera, donde homing puede compartir los mismos switches

de fin de carrera, el ciclo de homing se moverá fuera de todos los switches de límite por este viaje de pull-off.

En otras palabras, ayuda a prevenir el disparo accidental del límite de carrera después de un ciclo de homing.

El rate de homing seek selecciona una forma de controlar cuán rápido una maniobra de pull-off se mueve,

como en un comando G1.

COM AN DOS IN TE RNOS D E GRBL $G, $# Y ?

Técnicamente, los comandos Grbl restantes no son comandos de configuración, pero vamos a explicarlo aquí

no por una buena razón que no sea por completar. GRBL proporciona tres comandos para informar de su

estado actual y dónde se encuentra. De los tres, uno de ellos está en tiempo real, respondiendo con la posición

actual. Los otros dos no lo son, sino que responden a cómo los bloques entrantes serán procesados en función

de los seteos de estado seleccionados por código g, configuraciones, o switches. La razón por la que no son

en tiempo real es que Grbl tiene un buffer interno que almacena y planea los movimientos almacenados en

ella. Los bloques de codigo G entrantes sólo generaran en un nuevo movimiento al final del buffer cuando se

tenga espacio en él. El buffer básicamente garantiza que los movimientos en Grbl se muevan a las tasas más

rápidas y más seguras posibles, recalculando constantemente en tiempo real los movimientos finalizados y los

nuevos que vienen.

 $G (Estado del analizador de codigo G de visualización)

Este comando imprime todos los modos de codigo G activos que el analizador interpretará de cualquier

comando entrante. Estos modos incluyen los modos de pulgadas/mm G20/G21, los sistema de coordenadas

de trabajo activo G54-G59, los modos de movimiento activo G0/G1/G2/G3, la selección de plano activo

G17/G18/G19, los de modos absoluto G90/G91, los de modo de feed rate inversos G93/G94, los de flujo del
programa M0/M1/M2, los de estado del cabezal M3/M4/M5, los de estado de refrigeración M8/M9, los de

número de herramienta T y los de feed rate activo F. También indicará cualquier switch GRBL activo $Sx , así

como bloque borrado $S1. Cuando se llama, Grbl devolverá una línea como esta:

[ G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 F500 0,000 ]

 $# (Parámetros de código G de visualización)

Los parámetros en código G por lo general almacenan los offsets de coordenadas de trabajo G54-G59 y las

posiciones iniciales G28/G30 (que no debe confundirse con el cero por Homing y el cero de máquina. Estas

posiciones iniciales pueden ser seleccionadas en cualquier parte del espacio de la máquina por los comandos

G28.1/G30.1). La mayoría de estos parámetros se escriben directamente en la memoria EEPROM en cualquier

momento que se cambien y permanecen almacenados. Lo que significa que van a seguir siendo la misma,

independientemente del apagado de la máquina, hasta que se modifiquen explícitamente. Las coordenadas de

trabajo G54-G59 se pueden cambiar a través del comando G10 L2 Px o G10 L20 Px definido por el estándar

gcode NIST y el estándar EMC2 (linuxcnc.org). Las posiciones iniciales G28/G30 se pueden cambiar a través

de los comandos G28.1 y G30.1, respectivamente. Tenga en cuenta que G92 no es permanente o almacenada

en la memoria EEPROM según las normas de código g, y se restablecerá a cero cuando Grbl se reinicie. Por

favor, lea estos estándares de código de g para entender cómo se utilizan. Cuando se llama a la función $#,

Grbl responderá con los offsets almacenados de las coordenadas de la máquina para cada sistema de la

siguiente manera
En su mayor parte, estos offsets no son particularmente útiles a menos que tenga habilitado homing. Si tiene

habilitado homing, estos son maravillosamente impresionantes, porque una vez que el inició, siempre se puede

volver a la misma posición almacenada mediante el uso de los sistemas de coordenadas de trabajo dentro de

la precisión de la máquina. O si usted está haciendo múltiples partes y tiene una trayectoria de la herramienta

para sólo una parte, todo lo que tienes que hacer es configurar tu sistema de coordenadas de trabajo en la

ubicación donde la próxima parte va a ser fabricada y volver a ejecutar el mismo código.

 ? (Estado actual)

El comando ? devuelve inmediatamente los estados activos de Grbl y la posición actual en tiempo real, tanto

en coordenadas de máquina como en coordenadas de trabajo. Esto puede ser enviado en cualquier momento

y funciona de forma asíncrona con todos los demás procesos que Grbl está haciendo. la selección de seteo

$13 de Grbl determina si se declara en milímetros o en pulgadas. Cuando ? es presionado, Grbl responderá

inmediatamente con algo como lo siguiente:

Los estados activos en Grbl que pueden estar son: inicio, en cola, corriendo, Hogar, Reloj, Hora:

1. Inicio (Idle): Todos los sistemas están listos y ya está listo para cualquier cosa.
2. En cola (Queue): Movimiento(s) se ponen en cola en el planificador de buffer esperando por el ciclo de
inicio de marcha que se emitirá. Algunos procesos como el modo de verificación de código de g no se
puede ejecutar mientras está en la cola algo. Restablezca para borrar la cola.
3. Corriendo (Run): Indica que un ciclo está en marcha.
4. (Hold): Un feed hold se encuentra en proceso de ejecución, o desacelerando hasta detenerse. Después
de que el hold se haya completado, Grbl entrará en un estado de cola, en espera de un ciclo de inicio
para reanudar el programa.
5. Home: En la mitad de un ciclo de homing. NOTA: Las posiciones no se actualizan en vivo durante el
ciclo de homing, pero se setearán a [0,0,0] una vez haya terminado.
6. Alarm : indica que algo ha salido mal o Grbl no sabe su posición. En este estado se bloquean todos los
comandos de códigos g, pero le permite interactuar con la configuración de Grbl si es necesario. el
bloqueo Kill Alarm '$X' publica este estado y pone a Grbl en estado de reposo, lo que permitirá mover
cosas de nuevo. Como se dijo antes, tenga cuidado de lo que está haciendo después de una alarma.
7. Check : Grbl está en modo de chequeo de código g. Se procesará y responderá a todos los comandos
de códigos de g, pero no moverá o encenderá cualquier cosa. Una vez que lo desactive con otro
comando '$C', Grbl se reseteará a sí mismo.

OTROS COMANDOS: $C, $X, $H, ~, !, CTRL-X

$C (EL MODO DE CHEQU EO DE C ÓDIGO G)

Esto cambia el analizador de codigo G del Grbl para tomar todos los bloques de entrada procesándolos por

completo, como lo haría en una operación normal, pero sin que se mueva ninguno de los ejes, ignorando la

demora y apagando el husillo y el ventilador. Esto está pensado como una manera de proporcionar al usuario

una manera de comprobar cómo el nuevo programa de código G fares con el analizador de GRBL y monitor de

los errores de GRBL. (Y, eventualmente, este también chequeará violaciones de soft limits). Al desactivarse,

Grbl realizará un soft-reset automático (^X). Esto es para dos propósitos. Simplifica la gestión de código un

poco, pero también evita que los usuarios inicien un trabajo cuando sus modos de código g no son lo que ellos

piensan que son. Un reinicio del sistema siempre le da al usuario un inicio consistente limpio. NOTA:

Eventualmente, el modo de chequeo de codigo G podría ser re-factorizado para tener en cuenta la opción de

"reanudar el programa" en Grbl. Esto significa que Grbl podría iniciar un programa de código G en cualquier

lugar. Iría internamente a través de todo el programa de código g hasta el punto de reanudación dentro del

programa deseado para setear todos los estados del analizador y de reanudación, se moverá hasta ese punto

de inicio, y comenzará la ejecución/movimiento desde ese punto. Por ejemplo, digamos que tiene una E-Stop

(parada de emergencia) en medio de un programa porque se le olvidó algo o tiene la herramienta equivocada
en el cabezal. Su pieza está muy bien y tiene que reiniciar el programa. En este momento, tendrá que iniciar el

programa desde el principio y que se mueva físicamente y correr hasta el punto en que se produjo la parada de

emergencia. Si usted tiene un programa de fresado extenso, esto puede tomar un tiempo. En cambio, una

"reanudación de programa" sólo pasará por el comienzo del programa internamente, sin mover nada, y sólo

comenzar a moverse desde el punto de reanudación.

$X (BL OQUEO D E KILL AL AR M)

El modo de alarma de Grbl es un estado en el que algo ha salido críticamente mal, como llegar a un límite de

carrera o al abortar durante el ciclo, o si Grbl no sabe su posición. Por defecto, si tiene habilitada Home y

enciende el Arduino, Grbl entrará en estado de alarma, ya que no conoce su posición. El modo de alarma

bloqueará todos los bloques de código g hasta que se haya realizado el ciclo de homing '$H'. O si un usuario

necesita anular el bloqueo de alarma para mover sus ejes fuera de sus finales de carrera, por ejemplo, el

bloqueo de kill alarm '$X' anula los bloqueos y permite que las funciones de código de g trabajen de nuevo.

Pero, andar con cuidado! Esto sólo se debe utilizar en situaciones de emergencia. La posición probablemente

se haya perdido y Grbl puede que no esté donde tú creas que esté. Por lo tanto, es aconsejable utilizar el

modo incremental G91 para hacer movimientos cortos. A continuación, realice un ciclo de homing o

restablezca inmediatamente después.

$H (EJECU T AR C ICLO D E HOMING )

Este comando es la única forma de realizar el ciclo de homing en Grbl. Anteriormente (versiones anteriores de

GRBL), los comandos G28 y G30 iniciaban automáticamente el ciclo de Homing, pero esto es incorrecto de

acuerdo a los estándares de código de g. Homing es un comando completamente independiente manejado por

el controlador. G28 y G30 sólo mueven a una posición de inicio predefinida que se almacena en los

parámetros de código g, que pueden estar ubicados en cualquier parte de la máquina. SUGERENCIA:

Después, ejecute un ciclo de homing, en vez de correr manualmente todo el tiempo a una posición en la mitad

de su volumen de trabajo. Puede establecer una posición predefinida G28 o G30 que sea su posición post-

homing, cerca de donde usted estará mecanizando. Para establecer estos, primero tendrá que refrescar la

máquina en el lugar que se desea que se mueva a después de homing. Escriba un comando G28.1 (o G30.1)

para tener almacenada esa posición en GRBL. Así que después de un homing "$H ", usted podrá entrar con
"G28"(o "G30") y se moverá hasta allí auto-mágicamente. En general, me gustaría simplemente mover el eje

XY del centro y dejar el eje Z hacia arriba. Esto asegura que no hay posibilidad de que la herramienta en el

husillo no se enganche en cualquier cosa.

~ (INICIO DEL CICLO O CYCLE S TAR T)

Este es el ciclo de iniciar o reanudar el comando que se puede emitir en cualquier momento, ya que es un

comando en tiempo real. Cuando Grbl tiene movimientos en cola en su memoria y está listo para ir, el

comando "~" de inicio del ciclo iniciará la ejecución de la memoria intermedia y Grbl comenzará el

desplazamiento de los ejes. Sin embargo, por defecto, se activa inicio de ciclo automático, por lo que los

nuevos usuarios no necesitarán este comando a no ser que se realice una alimentación del buffer. Cuando se

ejecuta una alimentación de buffer, el inicio del ciclo reanudará el programa. El Inicio del ciclo sólo será eficaz

cuando hay movimientos en el buffer listo para ir y no funcionarán con cualquier otro proceso, como "Homing".

! (FE ED HOL D)

El comando Feed Hold llevará el ciclo activo a parada a través de una desaceleración controlada, de manera

de no perder la posición. También está en tiempo real y puede ser activado en cualquier momento. Una vez

terminado o estando en pausa, Grbl esperará hasta que se emita una orden de inicio de ciclo para continuar

con el programa. Feed Hold sólo puede pausar un ciclo y no afectará el homing (la posición de inicio) o

cualquier otro proceso. Si usted necesita detener un programa a la mitad de un ciclo y no puede permitirse

perder la posición, realice un Feed Hold para que Grbl conduzca todo a una parada controlada. Una vez que

haya terminado, usted puede emitir un reset. Siempre trate de ejecutar un feed hold cuando la máquina esté en

funcionamiento antes de un hitting reset, excepto, por supuesto, si hay alguna situación de emergencia.

CTRL -X (RE SE TE O DE G RBL)

Este es el comando de soft reset de Grbl. Está en tiempo real y puede ser enviado en cualquier momento.

Como su nombre lo indica, se resetea Grbl, pero de una manera controlada, retiene la posición de la máquina,

y todo se hace sin necesidad de apagar el Arduino. Las únicas veces que un soft-reset podría perder la

posición es cuando se generan problemas como si los steppers murieran mientras se estaban moviendo. Si es

así, se informará si el seguimiento de Grbl de la posición de la máquina se ha perdido. Esto se debe a que una
desaceleración descontrolada puede conducir a pasos perdidos y Grbl no tiene realimentación para saber

cuántos pasos perdió (este es el problema con los motores paso a paso en general). De lo contrario, Grbl se

reinicializará, colocará las líneas de inicio y continuará en su feliz recorrido. Tenga en cuenta que se

recomienda hacer un soft-reset antes de comenzar un trabajo. Esto garantiza que no hay ningún modo de

código g activo que debiese estar trabajando al rededor o seteando su máquina. Por lo tanto, el equipo

siempre comienza fresco y coherente, y la máquina hace lo que usted espera.

CONFIGURACIÓN DE GRBL PARA LA MÁQUINA DIYLILCNC

A continuación se explicará y justificará la configuración realizada en el software GRBL a partir de los

comandos de configuración para trabajar y calibrar la máquina DIYLILCNC. En nuestro caso no es necesario

modificar todos los comandos mencionados en las secciones anteriores.

P AS O S POR MILÍ METRO P AR A E J ES X, Y Y Z

En DIYLILCNC los ejes X e Y la transmisión del movimiento se realiza en base a correas de

distribución("timing belt" en inglés) y la transmisión de movimiento en el eje Z se realiza en base a varillas

roscadas (threaded rods), comúnmente llamados "hilo".

Para los ejes X e Y la relación entre el número de pasos y la cantidad de milímetros recorridos se establece a

partir del número de pasos que posee el motor paso a paso, los micropasos que entregue el driver de motor y

el diámetro efectivo de las poleas de distribución (timing pulley) conectados a las correas de cada eje. La

primera tarea consiste en establecer el diámetro de las poleas. Para el engrane del motor paso a paso ubicado

en el eje X, el diámetro efectivo del engrane es de 12.3 mm.


De esta información, podemos obtener el perímetro efectivo recorrido por la correa en una revolución o la

cantidad de mm por revolución:

(Nota: otra forma de calcular el perímetro consiste en calcular el paso de un diente de la correa de distribución

y multiplicarlo por el número de dientes de la polea)

Como los motores paso a paso utilizados en DIYLILCNC entregan 200 pasos por vuelta y los drivers se

encuentran configurados para trabajar en ½ de paso entonces el número de pasos que se necesita para

avanzar 1 mm en el eje Y es:

Este valor es el que debemos incorporar en GRBL para que la máquina establezca el número de pasos que

debe generar para recorrer 1 mm en el eje X. Para incorporar el comando, se ejecutará la instrucción:

El cual quedará almacenado en GRBL permanentemente, hasta que se decida cambiar nuevamente este

valor.

Para la polea del eje Y, el diámetro efectivo de la polea es de 16mm.


De esta información, podemos obtener el perímetro efectivo recorrido por la correa en una revolución o la

cantidad de mm por revolución:

(Nota: otra forma de calcular el perímetro consiste en calcular el paso de un diente de la correa de distribución

y multiplicarlo por el número de dientes de la polea)

Como los motores paso a paso utilizados en DIYLILCNC entregan 200 pasos por vuelta y los drivers se

encuentran configurados para trabajar en ½ de paso entonces el número de pasos que se necesita para

avanzar 1 mm en el eje Y es:

Este valor es el que debemos incorporar en GRBL para que la máquina establezca el número de pasos que

debe generar para recorrer 1 mm en el eje X. Para incorporar el comando, se ejecutará la instrucción:

El cual quedará almacenado en GRBL permanentemente, hasta que se decida cambiar nuevamente este

valor. En caso de querer estimar los valores de paso por milímetro, se puede utilizar una simple regla de tres,
comparando los valores actuales configurados en la máquina con los valores deseados e iterar varias veces

hasta lograr un fresado correcto.

Para el eje Z la relación entre el número de pasos y la cantidad de milímetros recorridos se establece a partir

del número de pasos que posee el motor paso a paso, los micropasos que entregue el driver de motor y el

paso de hilo de la varilla dentada (thread pitch) usada como eje sinfin. La primera tarea consiste en establecer

el paso de hilo (o sea, la distancia por revolución recorrida a lo largo del hilo). Para el eje sinfin del motor paso

a paso ubicado en el eje Z, se ha usado un hilo de 1/4 de pulgada, el cual posee un paso de hilo de 1.5 mm

aprox.

Como los motores paso a paso utilizados en DIYLILCNC entregan 200 pasos por vuelta y los drivers se

encuentran configurados para trabajar en ½ de paso entonces el número de pasos que se necesita para

avanzar 1 mm en el eje Z es:

Existe otro método sencillo y razonable para calcular el número de pasos por mm para los 3 ejes y consiste en

usar una simple regla de 3.

Tomando como ejemplo el cálculo de pasos por mm en el eje Z, la relación entre el número de pasos y la

cantidad de milímetros recorridos por el eje Z se puede calcular de la siguiente forma (igualmente para los

otros 2 ejes):

La configuración inicial de pasos por milímetro almacenada en GRBL fue de $3 = 150 (pasos por mm). Se

fresó una pieza de trupán estructural de baja densidad indicándole a la máquina que recorriera 9 mm. Al fresar

la plancha, la fresa recorrió 16 mm por lo que se puede concluir que el valor de pasos por milímetro está

desajustado. Para corregir esto, se utilizará una simple regla de tres, mediante la siguiente ecuación:
Se puede comprobar que el valor de pasos por mm calculado técnicamente para el eje Z respecto del mismo

valor calculado por regla de 3 resultan ser similares.

El valor obtenido es una mejor aproximación al número de pasos por mm requerido para la precisión de

movimiento en el eje Z. En caso de requerir mayor precisión, puede repetir la regla de 3 incorporando el valor

calculado anteriormente. El valor encontrado es el que debemos incorporar en GRBL para que la máquina

establezca el número de pasos que debe generar para recorrer 1 mm en el eje Z. Para incorporar el comando,

se ejecutará la instrucción:

FEED R AT E Y S E EK R AT E

El avance rápido durante el fresado (Feed Rate) y el avance rápido de la máquina en desplazamientos largos

dentro de la base de trabajo (Seek Rate) se ha configurado por observación. Los valores configurados por

defecto hacen que la máquina se mueva de manera brusca, por lo que se ha establecido los valores:

Como valores apropiados. Con estos valores la máquina no avanza muy lento ni presenta movimientos

bruscos en el desplazamiento de los ejes.

AU TO ST AR T

Las máquinas CNC comerciales incorporan un botón de partida, el cual debe presionarse cada vez que se

requiera comenzar el fresado, independientemente de que haya sido cargado un programa de corte. GRBL

también incorpora esta opción, conectando un interruptor en el pin A2 de Arduino y adicionalmente incorpora

una segunda opción (configurado por defecto) la cual permite ejecutar un código g inmediatamente se cargue

un programa, sin necesidad de utilizar un botón de partida. Se utilizará esta opción predefinida inicialmente.

Por lo tanto, se mantiene la configuración por defecto


En el futuro se incorporará un botón de partida.

ORDEN D E E N AB LE INVE R TID A P AR A DRI VER S D E MOTOR ES P AS O A P AS O

En la configuración de habilitación (o Enable) de los drivers de motores paso a paso por defecto se establece

que Arduino presentará nivel bajo de tensión en el pin de habilitación de drivers para que los drivers se

habiliten y energicen los motores y entregará un nivel alto de tensión para deshabilitar los drivers. Este tipo de

habilitación y deshabilitación de drivers es utilizado por algunos drivers de motores paso a paso comerciales.

En el caso del driver diseñado para DIYLILCNC, la habilitación y desabilitación de los drivers funciona de

manera inversa. GRBL permite ser configurado para invertir estas órdenes. Para ello, debemos escribir el

siguiente comando:

LÍMITES CRÍ TICO S O H AR D LIMITS

GRBL permite habilitar o deshabilitar los interruptores de inicio y fin de carrera. Por defecto esa opción viene

deshabilitada, por lo que al conectar los switches a la placa de Arduino GRBL no los reconocerá. Para habilitar

esta opción se debe escribir el siguiente comando:

Conexión de Hardware en DIYLILCNC


ELECCIÓN DE MOTOR DE FRESADO

Para que DIYLILCNC pueda fresar materiales de densidad intermedia (Trupán, Terciado, placas PCB, etc.), se

requiere de un motor de fresado que tenga la potencia suficiente para trabajar estos tipos de material. Se ha

evaluado 2 alternativas comerciales, de las cuales ambas son herramientas multipropósito Dremel. Se ha

elegido Dremel debido a la calidad y durabilidad que presenta esta marca y su relativo bajo costo. A
continuación se presentarán las características técnicas de las siguientes herramientas multipropósito

evaluadas:

Herramienta Multi propósito dremel: Dremel S300 (Izquierda) y Dremel 4000 (derecha)

Observando la tabla, se puede observar las diferencias mas importantes de estas herramientas.
Respecto de la herramienta multipropósito Dremel S300, la cual se encuentra en tiendas de ferretería en Chile

se puede decir que, por su potencia y falta de control electrónico de torque solo sirve para realizar tareas

básicas de trabajo casero, reparación, decoración o artesanía.

La herramienta multipropósito Dremel 4000 presenta una potencia mucho mayor y posee control electrónico de

torque, por lo que presenta alto rendimiento y se puede utilizar para tareas más exigentes. El selector de

velocidad se encuentra separado del interruptor de encendido y además posee un mecanismo de seguridad

que evita el funcionamiento de Dremel cuando se bloquea el giro del eje para cambiar la herramienta.

Por esta razón se ha elegido la herramienta multipropósito Dremel 4000 para ser incorporada a DIYLILCNC

como motor de fresado.

Se ha adquirido de segunda mano una dremel 4000 americana, a un precio bastante económico. Sin embargo,

por ser Norteamericana su tensión de alimentación es de 110 VAC, por lo que se ha debido incorporar un

transformador que adapte los 110 VAC de la Dremel a los 220 VAC de la red eléctrica domiciliaria chilena.

Nota: No es nuestra intención establecer una elección de marca para el motor de fresado. Se ha elegido esta

herramienta multipropósito debido a que sus características se adaptan a los requerimientos mínimos de

DIYLILCNC.

GABINETE DE ENERGÍA

DIYLILCNC incorpora un Gabinete el cual posee los elementos de energización de la máquina. Se requiere

disponer de alimentación de 220V AC de la red eléctrica domiciliaria (Dremel y Adaptador de corriente para

alimentación de Arduino) y de una fuente de alimentación de corriente continua para la energizar los motores

paso a paso. Se ha elegido una fuente de alimentación de entrada 220 VAC y salida 12 VDC 15A para la

energización de los motores, pues el consumo máximo total de corriente para los 3 motores es de 9A. Una

fuente de 12 VDC 15A se ofrece como producto estandar en el comercio y entrega un margen de holgura

suficiente en capacidad de corriente.


El esquema de conexión y la indicación de cada elemento en el circuito eléctrico se muestran el la siguiente

imagen:

GABINETE DE CONTROL

DIYLILCNC además incorpora un segundo Gabinete el cual posee los elementos de control de la máquina. La

etapa de control se alimenta desde la salida del gabinete de energía y se encarga de traducir los comandos de

código G o las rutinas de fresado en órdenes de movimiento para los motores paso a paso (o steppers) de

cada eje. La interfáz encargada de la traducción de la información de movimiento para la máquina está a cargo

de una tarjeta de desarrollo llamada Arduino UNO, la cual recibe las ordenes en codigo G desde la
computadora en comunicación serial USB y desde pines específicos de salida de esta tarjeta envía las ordenes

de numero de pasos y dirección de giro para los drivers. Cada driver de motor paso a paso cumple 2 funciones

principales:

 Entregan la corriente necesaria para cada motor


 Generan la secuencia de conmutación de las bobinas en los motores para generar el movimiento de cada
uno.

Los motores paso a paso o steppers se encargan de trasladar el motor de fresado en los ejes X, Y y Z.

El esquema de conexión y la indicación de cada elemento de este circuito se muestran el la siguiente imagen:

Error al crear miniatura: Parámetros del thumbnail no válidos

Si desea conocer como funciona por dentro el driver CNC DIY para DIYLILCNC puede acceder al

capítuloFuncionamiento del driver CNC DIY para motores paso a paso (Marco teórico).

Construcción de driver para motores paso a paso


Este driver de motores paso a paso ha sido diseñado en base a 2 circuitos integrados complementarios

llamados L297 (Controlador de puente H) y L298N (Puente H doble). Las características principales de este

driver son:

 Permite manejar motores paso a paso unipolares y bipolares de hasta 4 Amperes.


 Permite ajustar el valor de corriente en los motores para ajustarse a motores de distinto tamaño y además
controlar su torque, de acuerdo a las exigencias y prestaciones sujetas al funcionamiento del motor.
 Permite configuración de paso completo y de medio paso, por lo que entrega al motor paso a paso la
capacidad de trabajar a 200 pasos por cada giro o a 400 pasos por cada giro.
 A pesar de existir en el extranjero drivers comerciales mas pequeños, como parte de esta investigación se
ha decidido desarrollar un driver de motores paso a paso cuyos componentes puedan ser encontrados en
Chile.

El driver está conformado por 2 placas PCB: la placa superior posee toda la electrónica que acompaña al

circuito de control de puente H L297 y la placa inferior contiene toda la electrónica en torno a los puentes H

dobles L298N.

A continuación se presentarán los aspectos y pasos para la fabricación de este driver de motores paso a paso.

Este driver corresponde a su versión 1.2. A continuación se muestran algunas vistas de este driver el la

siguiente galería de fotos.


Si desea observar las fotografías en mayor detalle y fluidez vaya a la galería fotográfica siguiente elaboradas

en Flickr.

Driver Stepper 4A CNC DIY para DIYLILCNC

PL AC A DE CON TROL PUE N TE H (L297)

La placa de control de puente H alberga el circuito integrado L297, el cual se encarga de generar la secuencia

de alimentación para las bobinas del motor paso a paso y controla la cantidad de corriente que circula por

ellas. Esto permite regular el torque de los motores por debajo de su valor nominal. Si desea conocer en mayor

profundidad las características de este circuito integrado, puede revisar la hoja de datos entregada fabricante y

su nota de aplicaciones.
El esquema circuital presente en la placa se muestra a continuación:

La distribución de los componentes presentes en el circuito en la placa se presentan en la siguiente imagen:


Componentes:

 JP1:HEADER PCB 4P 90º 0.1" (Victronics)


 HOUSING 4t 0.1" CABLE (Victronics)
 JP2, JP3, JP5: HEADER PCB 2P 90º 0.1" (Victronics).
 HOUSING 2t 0.1" CABLE (Victronics)
 JP4:HEADER PCB 3P 90º 0.1" (Victronics).
 HOUSING 3t 0.1" CABLE (Victronics)
 JP19: HEADER PCB 6P 0.1" RECTO (Victronics)
 HOUSING 6t 0.1" CABLE (Victronics)
 JP20: HEADER PCB 2P 0.1" RECTO (Victronics)
 HOUSING 2t 0.1" CABLE (Victronics)
 Terminal para Header PCB 0.1" (Victronics)
 JP6, JP7, JP8, JP9, JP11, JP12, JP14, JP15, JP16, JP17, JP21: Pinheader macho 2 pin (Victronics)
 JP10, JP13, JP18: Pinheader macho 3 pin. (Victronics)
 JUMPER 2 VIAS (Victronics)
 LED1 y LED2: LED 5MM ROJO DIFUSO (Victronics)
 C1,C2: Condensador electrolítico 47uF 25V (Victronics)
 C3,C5: Condensador cerámico 100nF. (104)(Victronics)
 C4: Condensado cerámico 3.3 nF. (332) (Victronics)
 C6,C7: Condensador cerámico 1 nF. (102) (Victronics)
 R1, R4: Resistencia 1k ohm 1/4W (cafe negro rojo) (Victronics) (Global)
 R2: Resistencia 22k ohm 1/4W (rojo rojo naranjo) (Victronics) (Global)
 R3: Resistencia 100k ohm 1/4W (cafe negro amarillo) (Victronics) (Global)
 R5,R6: Resistencia 4.7k ohm 1/4W (Amarillo morado rojo) (Victronics) (Global)
 R7: POT 25 VUELTAS 10K OHM 3296W (Victronics)
 D1: Diodo rectificador 1N4007 1A (Victronics)
 IC1: Circuito Integrado L297 (encapsulado DIP20) (CM2)
 Zócalo para L297 (Encapsulado DIP20) (Victronics)
 IC2: REG. VOLT L7805CV 5V/1,5A (Victronics)

Para la fabricación de las placas se utilizará una imagen monocromática de la placa diseñada, la cual sirve

para ser utilizada por cualquier método de cerigrafía para quemado de placas PCB. A continuación se muestra

la plantilla monocromática a utilizar:


PL AC A DE PU EN TE H D OBLE ( L298N)

La placa de puente H doble alberga 2 unidades del circuito integrado L298N, los cuales se encargan de

energizar las bobinas del motor paso a paso según la secuencia de alimentación que entregue la placa

superior. Si desea conocer en mayor profundidad las características de este circuito integrado, puede revisar

la hoja de datos entregada por el fabricante.

El esquema circuital presente en esta placa se muestra a continuación:


La distribución de los componentes presentes en el circuito en la placa se presentan en la siguiente imagen:
Componentes:

 X1, X3: HEADER 2T 90º PCB 3.96mm (Victronics).


 HOUSING 2T PASO 3.96mm P/CABLE (Victronics)
 X2, X4: HEADER 3T paso 3.96mm (Victronics)
 HOUSING 3T PASO 3.96mm P/CABLE (Victronics)
 Terminal para HEADER 2T (Victronics)
 JP1,JP3: HEADER PCB 2P 0.1" RECTO (Victronics).
 HOUSING 2t 0.1" CABLE (Victronics).
 JP2,JP4: HEADER PCB 4P 0.1" RECTO (Victronics).
 HOUSING 4t 0.1" CABLE (Victronics).
 Terminal para Header PCB 0.1" (Victronics).
 D1 a D8: Diodo Shottky1N5822 40V 3A (Victronics)
 U1, U2: Circuito Integrado L298N. (Encapsulado Multiwatt15 vertical) (CM2)
 C1, C3: Condensador electrolítico 470uF 50V. (Victronics) (Global)
 C2, C4: Condensador cerámico 100nF. (Victronics) (Global)
 R1, R2: Resistencia cerámica 0.5 ohm 5W. (CM2)
 2 discipadores de aluminio para L298N.
 JUEGO DE PERNOS PARA TO-3 (L298 a discipador) (Victronics)

Para la fabricación de las placas se utilizará una imagen monocromática de la placa diseñada, la cual sirve

para ser utilizada por cualquier método de cerigrafía para quemado de placas PCB. A continuación se muestra

la plantilla monocromática a utilizar:

FOTOHER R AMI E NT AS EN PDF


para la impresión de las fotoherramientas acceda al siguiente vínculo, en el cual podrá descargarlas en formato

PDF. Recuerde imprimir la transparencia en tamaño 100% (sin ajuste a escala) en impresión offset.

Archivo:Fotoherramientas Driver DIY CNC v1.3.PDF

F ABRI C AC IÓN D E PL AC AS

Los métodos caseros más usados en la fabricación de placas PCB son el clásico método del plumon

permanente y el método del planchado. El que los ha utilizado alguna vez sabe que estos métodos permiten

fabricar fácil y rápidamente placas para sus prototipos, pero no permiten obtener un buen acabado ni tampoco

incorporar elementos de mucho detalle en la serigrafía. En esta ocasión se utilizará un método de serigrafía

que, aunque mas lento, permite realizar una placa PCB muy bien acabada e incorporar en ella gran cantidad

de detalles.

Para comenzar, se requiere de los siguientes materiales:

Insumos para fabricación de placas, interconexiones y estructura:

 Placa virgen para PCB 10X10 cm. (2 unidades) (Fibra de vidrio o pertinax) (Casa Royal) (Global)
 Spray laca fotosensible Positiv Resist (Poirot)
 Spray laca protectora de PCB PLASTIK (Poirot)
 Alcohol Isopropílico (Piscival)
 Soda Caustica (Artículos de ferretería)
 Agua oxigenada 20Vol para curaciones (Farmacias)
 Ácido muriático líquido (Artículos de ferretería)
 bandeja plástica para manipular químicos (puede servir una caja de casata)
 Virutilla de olla (Supermercados y roticería)
 Cinta adhesiva de papel (Maskin)
 Hoja de lija fina
 Corta acrílico
 Regla
 Caja de cartón (Caja de zapatos o similar)
 Fotoherramienta de ambas placas

Lo primero que se debe hacer es pulir ambas placas PCB virgenes con una virutilla de acero fina. Las placas

PCB nuevas vienen cubiertas con un aceite para evitar la corrosión. Al pulir las placas con la virutilla se elimina

el aceite y la placa queda brillante. Luego de pulir, se debe lavar con abundante agua y jabón, para retirar

todos los residuos de la placa.


Luego de secar con un paño que no deje pelusas, se coloca en la superficie sin cobre de cada placa anillos de

cinta adhesiva de papel (Maskin) y luego se pegan ambas placas en el interior de una caja de cartón que tenga

tapa, para evitar que las placas se muevan. Debido a que se utilizará laca fotosensible, el proceso de serigrafía

debe manejarse a oscuras, por lo que la caja nos ayudará a mantener la laca fotocensible protegida de la luz.

Ahora se debe aplicar la laca fotosensible (Positiv Resist). A partir de ahora, todo el proceso se debe hacer en

un lugar a oscuras, sin luz ultravioleta. Se pintan las placas con el spray de manera uniforme y se dejan

reposar a oscuras por un par de minutos, para que la laca se desparrame uniformemente (Si no es así, puede

agitarse la caja para que la laca baje a aquellas zonas sin pintar).

Para acelerar el proceso de secado, se puede colocar la caja con las placas pintadas en el horno durante unos

minutos. En la fabricación de estas placas se ha usado un horno eléctrico a 180° durante 9 minutos. Nota: es

importante que la laca quede seca en la placa, pero también no exceder el tiempo de estas en el horno, pues

la laca pierde sus propiedades de fotosensibilidad al sobrecalentarse.

Una vez secas las placas se procede a insolar el lado pintado de cada una con luz ultravioleta, utilizando una

transparencia con el circuito de cada placa dibujado en negro, al cual llamaremos "Fotoherramienta". La laca

posee la propiedad de debilitar aquellos espacios de pintura a los cuales ingrese la luz y mantiene firme

aquellos espacios de pintura tapados por la parte obscura de la fotoherramienta. En este diseño utilizamos

como fotoherramienta una impresión del diseño de cada placa en transparencia por Offset, el cual se a enviado

a fabricar a una imprenta. El método de offset, además de ser económico, entrega una fotoherramienta

monocromática apropiadamente oscura, como una radiografía. Una impresión de transparencia con una
impresora de toner común no permite una buena insolación de las placas, pues el toner igualmente se trasluce,

permitiendo el paso de la luz ultravioleta por la parte oscura de la fotoherramienta.

Una luz ultravioleta especial para este tipo de trabajo permite insolar la placa en unos 3 minutos. Sin embargo,

se ha optado, por ahorrar la compra de una luz especial, el uso de una mesa de luz con tubos fluorescentes

convencionales, los cuales emiten igualmente radiación ultravioleta pero en pequeña proporción, por lo cual el

tiempo de insolación de las placas es mas largo, pero mas accesible y económico. Se coloca sobre la mesa de

luz ambas fotoherramientas con la parte frontal hacia abajo.

Luego, se colocan ambas placas PCB sobre cada fotoherramienta con la cara pintada en dirección hacia la luz.

Es importante que no exista separación entre la mesa de luz, la fotoherramienta y la placa, por lo que se debe

colocar sobre las placas un objeto pesado. Se enciende la mesa de luz durante 25 minutos aproximadamente.


Transcurrido el tiempo de insolación, se retiran las placas. Ahora podemos trabajar con luz. Para limpiar las

placas se debe sumergir cada una en una solución de agua con soda cáustica (2 litros de agua por 4

cucharadas soperas de soda). En un recipiente plástico se agrega una cantidad suficiente de solución para

sumergir la placa completamente (Nota: Se debe tener precaución con la concentración de soda. Si nota que la

placa se revela muy rápidamente agregar mas agua). Al sumergir la placa se sacude le recipiente suavemente

para ayudar al proceso.

Comenzará a observarse que cada placa comenzará a soltar pintura y la imagen de nuestro circuito se

revelará como una fotografía.


Finalmente ambas placas quedarán impresas con el circuito diseñado como en una serigrafía.

Finalizado este proceso se lavan las placas con agua y jabón para eliminar los residuos de pintura y de

solución de soda cáustica.


En caso de que queden residuos de pintura no deseados en la placa pueden removerse con una hoja de

cartonero y si hubiese partes sin pintar pueden rellenarse con un plumón permanente de punta fina.

El proceso siguiente consiste en eliminar el cobre de las placas que no se encuentra con pintura. Para esto se

utilizará una solución de 2 partes de Agua oxigenada por una de ácido muriático. En un recipiente plástico se

agrega una cantidad suficiente de solución para sumergir la placa completamente. Sumergidas ya las placas

se dejan reposar en la solución, batiendo suavemente cada cierto tiempo, hasta que la solución haya retirado

todo el cobre no pintado.



Finalmente quedará listo el diseño del circuito en cobre para cada placa. luego de esto se lavan con abundante

agua y jabón para retirar la solución de las placas.

Si desea observar las fotografías en mayor detalle y fluidez de visualización vaya a las siguientes galerías

fotográficas elaboradas en Flickr.

Químicos fabricación de placas PCB Driver CNC

Pulido y lavado placas PCB para Driver CNC

Secado placas PCB Driver CNC

Fotoherramientas e insolación placas PCB Driver CNC

Revelado de serigrafía placas PCB Driver CNC

Reparación serigrafía placas PCB Driver CNC

Quemado con ácido placas PCB Driver CNC


PERF OR AC IÓN D E L AS P L AC AS

Las perforaciones para los componentes de este circuito se han realizado con distintas medidas de broca. Se

sugiere las siguientes medidas:

 resistencias, condensadores y puentes pequeños: 0.7 mm


 Diodos LED y pines zócalo L297: 0.8 mm.
 Pinheaders, conectores header 0.1", diodo rectificador y pines L298: 0.9 mm.
 Conectores header 3.96 mm: 1 mm
 Diodos Shottky y puentes grandes: 1.2 mm.
 Agujeros de soporte: 3 mm.


Si desea observar las fotografías en mayor detalle y fluidez de visualización vaya a la siguiente galería

fotográfica elaborada en Flickr.

Perforado de placas PCB Driver CNC

CORT E Y L IJ AD O DE PL AC AS

Se ha utilizado para cortar los bordes de las placas una cuchilla corta acrílico, con la ayuda de una regla

metálica para que el rayado inicial sea recto. Luego de cortar los bordes se pulen con una lija fina para un

mejor acabado.

Si desea observar las fotografías en mayor detalle y fluidez de visualización vaya a la galería fotográfica

siguiente elaborada en Flickr.

Cortado y lijado placas PCB Driver CNC


SOLD AD O D E PL AC AS

Material adicional

 Pasta discipadora (Casa Royal)

Ya perforadas cada una de las placas, se procede a retirar la laca presente en el cobre. Se utiliza un paño o

papel tizú empapado con abundante alcohol isopropílico. Debe limpiarse muy bién cada placa hasta retirar

toda la pintura. El cobre de la placa debe quedar brillante.


Se procede a soldar cada uno de los componentes. Se muestran a continuación fotografías de dicho proceso:

PLACA L297



PLACA L298





Si desea observar las fotografías en mayor detalle y fluidez de visualización vaya a las siguientes galerías

fotograficas elaboradas en Flickr.

Limpieza de laca fotosensible Placas PCB Driver CNC

Componentes electrónicos placa PCB L297 y placa PCB L298 Driver CNC
Soldaje placa PCB L297 Driver CNC

Soldaje placa PCB L298 Driver CNC

SELL AD O DE L A SUP ERF ICIE D E COBRE EN L AS PL AC AS

Para proteger el cobre de la corrosión y evitar que el cobre se oscurezca se ha utilizado una laca protectora en

spray llamada Plastik, la cual se aplica sobre la superficie de cobre y se deja secar unos 20 a 30 minutos.


Si desea observar las fotografías en mayor detalle y fluidez de visualización vaya a la siguiente galería

fotográfica elaborada en Flickr.

Protección de placas PCB con laca Driver CNC

CONEXIÓ N EN TR E PL AC AS

Cada placa se interconecta a partir de cables con enchufes.

Materiales adicionales

 Cable AWG 24 (Varios colores) (Victronics)

La conexiones entre placas y confección de enchufes se detallan a continuación en la siguiente galería

fotográfica.







Si desea observar las fotografías en mayor detalle y fluidez de visualización vaya a la siguiente galería

fotográfica elaborada en Flickr.

Conexión de cables entre placas PCB Driver CNC

SEP AR AC IÓ N ES TRUC TUR AL D E PL AC AS

La estructura de unión de ambas placas consiste en 4 pernos largos con 3 tuercas cada uno. Esto permitirá la

unión de ambas placas y a su vez una separación entre las mismas.

Materiales adicionales

 Pernos 1/8X3 Pulgadas con 3 tuercas y 4 golillas planas c/u (4 unidades)(Ferretería)

La instalación de los pernos para crear la estructura del driver se detalla en la siguiente galería de fotos.




Si desea observar las fotografías en mayor detalle y fluidez de visualización vaya a la siguiente galería

fotográfica elaborada en Flickr.

Colocación de pernos estructura placas PCB Driver CNC

CONEXIÓ N DEL DRIVE R P AR A S U FUNCION AM IE N TO

Una sugerencia de conexión del driver para probar su funcionamiento se puede visualizar en la siguiente

secuencia fotográfica.





Si desea observar las fotografías en mayor detalle y fluidez de visualización vaya a la siguiente galería

fotográfica elaborada en Flickr.

Você também pode gostar