Tabla de contenido:
- Paso 1: Biblioteca StepDriver
- Paso 2: Variables globales
- Paso 3: Funciones: configuración de los pines del controlador
- Paso 4: Funciones: funciones básicas del controlador
- Paso 5: Funciones - Configuración del paso del motor
- Paso 6: Funciones: configuración del modo paso a paso del motor
- Paso 7: Funciones: configuración de los interruptores de límite
- Paso 8: Funciones - Lectura de finales de carrera
- Paso 9: Funciones - Configuración de movimiento
- Paso 10: Funciones - Función de movimiento
- Paso 11: Funciones - Función de movimiento - Variables
- Paso 12: Funciones - Función de movimiento - Aceleración
- Paso 13: Funciones - Función de movimiento - Velocidad continua
- Paso 14: Funciones - Función de movimiento - Deceleración
- Paso 15: Funciones - Función de movimiento - Velocidad continua
- Paso 16: Funciones - Función Mover - Mover turnos
- Paso 17: Gráfico de movimiento - Velocidad de posición
- Paso 18: Gráfico de movimiento - Posición vs. Posición
- Paso 19: Gráfico de movimiento - Velocidad vs. Momento
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:40
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
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
En esta parte, trabajamos con la configuración del controlador y sus funciones básicas.
Paso 5: Funciones - Configuración 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
Motor paso a paso controlado por motor paso a paso sin microcontrolador: 6 pasos
¡Motor paso a paso controlado por motor paso a paso sin microcontrolador !: En este Instructable rápido, haremos un controlador de motor paso a paso simple usando un motor paso a paso. Este proyecto no requiere circuitos complejos ni un microcontrolador. Así que sin más preámbulos, ¡comencemos
Motor paso a paso controlado por motor paso a paso sin microcontrolador (V2): 9 pasos (con imágenes)
Motor paso a paso controlado por motor paso a paso sin microcontrolador (V2): En uno de mis Instructables anteriores, le mostré cómo controlar un motor paso a paso usando un motor paso a paso sin un microcontrolador. Fue un proyecto rápido y divertido, pero vino con dos problemas que se resolverán en este Instructable. Entonces, ingenio
Modelo de locomotora controlada por motor paso a paso - Motor paso a paso como codificador rotatorio: 11 pasos (con imágenes)
Locomotora modelo controlada por motor paso a paso | Motor paso a paso como codificador rotatorio: en uno de los Instructables anteriores, aprendimos cómo usar un motor paso a paso como codificador rotatorio. En este proyecto, ahora usaremos ese motor paso a paso convertido en codificador rotatorio para controlar un modelo de locomotora usando un microcontrolador Arduino. Entonces, sin fu
Motor paso a paso controlado por motor - Motor paso a paso como codificador rotatorio: 11 pasos (con imágenes)
Motor paso a paso controlado por motor paso a paso | Motor paso a paso como codificador rotatorio: ¿Tiene un par de motores paso a paso por ahí y quiere hacer algo? En este Instructable, usemos un motor paso a paso como codificador rotatorio para controlar la posición de otro motor paso a paso usando un microcontrolador Arduino. Así que sin más preámbulos, vamos a
Cómo usar el motor paso a paso como codificador rotatorio y pantalla OLED para pasos: 6 pasos
Cómo usar el motor paso a paso como codificador rotatorio y pantalla OLED para pasos: En este tutorial aprenderemos cómo rastrear los pasos del motor paso a paso en la pantalla OLED. Mire un video de demostración. El crédito para el tutorial original es para el usuario de YouTube " sky4fly "