Tabla de contenido:

Arduino: Precision Lib para motor paso a paso: 19 pasos
Arduino: Precision Lib para motor paso a paso: 19 pasos

Video: Arduino: Precision Lib para motor paso a paso: 19 pasos

Video: Arduino: Precision Lib para motor paso a paso: 19 pasos
Video: Arduino stepper motor 28byj-48 with potentiometer in simple steps 2024, Mes de julio
Anonim
Image
Image
Variables globales
Variables globales

Hoy, les mostraré una biblioteca para un controlador de motor paso a paso completo con interruptores de límite y movimiento del motor con aceleración y micro paso. Esta Lib, que funciona tanto en Arduino Uno como en Arduino Mega, le permite mover los motores basándose no solo en el número de pasos, sino también en milímetros. Y también es bastante preciso.

Una característica importante de esta biblioteca es que le permite construir su propia máquina CNC, que no es necesariamente solo X, Y, sino también un interruptor de sección, por ejemplo, porque no es un GRBL listo, sino la programación que le permite hacer la máquina ideal para usted.

Sin embargo, ¡la siguiente declaración es un detalle importante! Este video es solo para aquellos que ya están acostumbrados a la programación. Si no está familiarizado con la programación de Arduino, primero debería ver otros videos más introductorios en mi canal. Esto se debe a que estoy discutiendo un tema avanzado en este video específico y explicando con más detalle la Lib utilizada en el video: Motor paso a paso con aceleración y fin de carrera.

Paso 1: Biblioteca StepDriver

Esta biblioteca cubre los tres tipos de controladores más comunes en el mercado: A4988, DRV8825 y TB6600. Configura los pines de los drivers, permitiéndoles realizar el reset y la colocación en modo Sleep, así como activar y desactivar las salidas del motor actuando sobre el pin Enable. También configura las entradas de los pines de micropaso del driver, y los interruptores de límite y su nivel de activación (alto o bajo). También cuenta con código de movimiento del motor con aceleración continua en mm / s², velocidad máxima en mm / s y velocidad mínima en mm / s.

Para aquellos que vieron las partes 1 y 2 del video Motor paso a paso con aceleración y fin de carrera, descarguen esta nueva biblioteca disponible hoy, porque hice algunos cambios en ese primer archivo para facilitar su uso.

Paso 2: Variables globales

Muestro exactamente para qué sirve cada una de las variables globales.

Paso 3: Funciones: configuración de los pines del controlador

Funciones: configuración de los pines del controlador
Funciones: configuración de los pines del controlador

Aquí, describo algunos métodos.

Configuré la configuración de Pinout y los pines de Arduino como salida.

Paso 4: Funciones: funciones básicas del controlador

Funciones: funciones básicas del conductor
Funciones: funciones básicas del conductor

En esta parte, trabajamos con la configuración del controlador y sus funciones básicas.

Paso 5: Funciones - Configuración del paso del motor

Funciones: ajuste del paso del motor
Funciones: ajuste del paso del motor
Funciones: ajuste del paso del motor
Funciones: ajuste del paso del motor

En este paso del código configuramos la cantidad de pasos por milímetro que debe ejecutar el motor.

Paso 6: Funciones: configuración del modo paso a paso del motor

Funciones: configuración del modo paso a paso del motor
Funciones: configuración del modo paso a paso del motor
Funciones: configuración del modo paso a paso del motor
Funciones: configuración del modo paso a paso del motor
Funciones: configuración del modo paso a paso del motor
Funciones: configuración del modo paso a paso del motor

Esta tabla muestra los ajustes para el modo paso a paso del motor. Aquí hay unos ejemplos.

Paso 7: Funciones: configuración de los interruptores de límite

Funciones: ajuste de los interruptores de final de carrera
Funciones: ajuste de los interruptores de final de carrera

Aquí, tengo que leer los valores completos y booleanos. Es necesario establecer si la tecla activa está hacia arriba o hacia abajo, mientras se configuran los extremos de límite máximo y mínimo.

Paso 8: Funciones - Lectura de finales de carrera

Funciones - Lectura de finales de carrera
Funciones - Lectura de finales de carrera
Funciones - Lectura de finales de carrera
Funciones - Lectura de finales de carrera
Funciones - Lectura de finales de carrera
Funciones - Lectura de finales de carrera

Esta parte es diferente a la de Lib que puse a disposición la semana pasada. ¿Por qué lo cambié? Bueno, creé eRead para reemplazar a otros. Aquí, el eRead leerá el LVL, el digitalRead (pin) y devolverá TRUE. Todo esto debe realizarse en alto. El siguiente trabajo con la clave activa será en el nivel bajo. Lo usaré aquí para mostrarte la tabla "Verdad".

En la imagen del código, coloqué un diagrama que ayudará a entender que, en esta parte del código fuente, me estoy moviendo hacia Ascendente y aún no he pulsado la tecla de fin de curso.

Ahora, en esta imagen del código del sistema operativo bool DRV8825, muestro el motor aún moviéndose en la dirección de crecimiento. Sin embargo, el interruptor de límite máximo se activó. El mecanismo, entonces, debe detener el movimiento.

Por último, muestro el mismo movimiento, pero en sentido contrario.

Aquí ya tienes activado el interruptor de fin de curso.

Paso 9: Funciones - Configuración de movimiento

Funciones: configuración de movimiento
Funciones: configuración de movimiento

La principal utilidad del método motionConfig es convertir milímetros por segundo (una medida utilizada en las máquinas CNC) en pasos, para cumplir con el controlador de un motor paso a paso. Es en esta parte, por lo tanto, que instancia las variables para entender los pasos y no los milímetros.

Paso 10: Funciones - Función de movimiento

Funciones - Función de movimiento
Funciones - Función de movimiento

En este paso, tratamos el comando que mueve un paso en la dirección deseada en un período en microsegundos. También configuramos el pin de dirección del conductor, el tiempo de retardo y la dirección de los interruptores de límite.

Paso 11: Funciones - Función de movimiento - Variables

Funciones - Función de movimiento - Variables
Funciones - Función de movimiento - Variables

En esta parte configuramos todas las variables que involucran periodos de máxima y mínima velocidad, distancia de trayectoria, pasos necesarios para interrumpir la trayectoria, entre otros.

Paso 12: Funciones - Función de movimiento - Aceleración

Funciones - Función de movimiento - Aceleración
Funciones - Función de movimiento - Aceleración
Funciones - Función de movimiento - Aceleración
Funciones - Función de movimiento - Aceleración

Aquí presento algunos detalles sobre cómo llegamos al dato de aceleración, el cual fue calculado a través de la ecuación de Torricelli, ya que esta toma en cuenta los espacios para trabajar la aceleración y no el tiempo. Pero, aquí es importante entender que toda esta ecuación se trata solo de una línea de código.

Identificamos un trapecio en la imagen de arriba, porque las RPM iniciales son malas para la mayoría de los motores paso a paso. Lo mismo ocurre con la desaceleración. Debido a esto, visualizamos un trapezoide en el período entre aceleración y desaceleración.

Paso 13: Funciones - Función de movimiento - Velocidad continua

Funciones - Función de movimiento - Velocidad continua
Funciones - Función de movimiento - Velocidad continua
Funciones - Función de movimiento - Velocidad continua
Funciones - Función de movimiento - Velocidad continua

Aquí mantenemos el número de pasos utilizados en la aceleración, continuamos en velocidad continua, y mantenemos la velocidad máxima, que se puede ver en la imagen de abajo.

Paso 14: Funciones - Función de movimiento - Deceleración

Funciones - Función de movimiento - Deceleración
Funciones - Función de movimiento - Deceleración
Funciones - Función de movimiento - Deceleración
Funciones - Función de movimiento - Deceleración

Aquí tenemos otra ecuación, esta vez con un valor de aceleración negativo. También se muestra en una línea de código, que representa, en la imagen de abajo, el rectángulo etiquetado Deceleración.

Paso 15: Funciones - Función de movimiento - Velocidad continua

Funciones - Función de movimiento - Velocidad continua
Funciones - Función de movimiento - Velocidad continua
Funciones - Función de movimiento - Velocidad continua
Funciones - Función de movimiento - Velocidad continua

Volvemos a la velocidad continua para trabajar la segunda mitad de la trayectoria, como se ve a continuación.

Paso 16: Funciones - Función Mover - Mover turnos

Funciones - Función Mover - Mover turnos
Funciones - Función Mover - Mover turnos

En esta parte, movemos el motor en un cierto número de vueltas en la dirección deseada, convirtiendo el número de vueltas en milímetros. Finalmente, movemos el motor en la dirección solicitada.

Paso 17: Gráfico de movimiento - Velocidad de posición

Gráfico de movimiento: velocidad de posición
Gráfico de movimiento: velocidad de posición

En este gráfico, tengo datos que se extrajeron de la ecuación que usamos en la parte de Aceleración. Tomé los valores y jugué en la serie Arduino, y pasé de esto a Excel, lo que resultó en esta tabla. Esta tabla muestra el progreso del paso.

Paso 18: Gráfico de movimiento - Posición vs. Posición

Gráfico de movimiento - Posición vs. Posición
Gráfico de movimiento - Posición vs. Posición

Aquí, tomamos la posición, en pasos, y la velocidad y la convertimos en período, en microsegundos. Observamos en este paso que el período es inversamente proporcional a la velocidad.

Paso 19: Gráfico de movimiento - Velocidad vs. Momento

Gráfico de movimiento: velocidad vs. Momento
Gráfico de movimiento: velocidad vs. Momento

Finalmente, tenemos la velocidad en función del instante, y por eso tenemos una línea recta, ya que es la velocidad en función del tiempo.

Recomendado: