¿Te gustaría aprender a controlar un motor paso a paso de forma sencilla y efectiva? En este artículo te mostraremos cómo utilizar el controlador de motor L293D IC en combinación con un Arduino para lograr un control preciso y suave de tu motor. ¡Sigue leyendo para descubrir todos los detalles!
Una de las formas más fáciles y rentables de controlar motores paso a paso es conectar el CI del controlador del motor L293D a Arduino. Puede controlar tanto la velocidad como la dirección de rotación de cualquier motor paso a paso unipolar como 28BYJ-48 o motor paso a paso bipolar como NEMA 17.
Si desea aprender los conceptos básicos del L293D IC, el siguiente tutorial será invaluable. Primero, considere leer (al menos hojear) este tutorial.
Controlar un motor paso a paso con un puente H
Dado que el L293D IC tiene dos puentes H, cada puente H acciona una de las bobinas electromagnéticas de un motor paso a paso.
Al excitar estas bobinas electromagnéticas en un orden específico, el eje de un motor paso a paso se puede mover con precisión hacia adelante o hacia atrás en pequeños incrementos.
Sin embargo, la velocidad de un motor está determinada por la frecuencia con la que se energizan estas bobinas.
La siguiente imagen muestra el accionamiento de un paso a paso con puente H.
Conducción de un motor paso a paso unipolar (28BYJ-48)
En nuestro primer experimento, utilizamos el motor paso a paso unipolar 28BYJ-48 con un voltaje nominal de 5 V. Ofrece 48 pasos por revolución.
Antes de comenzar a conectar el motor al chip, debe determinar los cables A+, A, B+ y B- del motor que desea utilizar. La mejor manera de hacerlo es consultar la hoja de datos del motor. Para nuestro motor son naranja, rosa, azul y amarillo.
Tenga en cuenta que no utilizamos la conexión intermedia común (roja) en este experimento.
El terminal central se usa simplemente para suministrar energía al lado izquierdo o derecho de la bobina e invertir el flujo de corriente sin la necesidad de usar un circuito que pueda invertir la corriente.
Las conexiones son bastante simples. Comience conectando la salida de 5 V del Arduino a los pines Vcc2 y Vcc1. Conecte tierra a tierra.
También necesitas conectar los pines ENA y ENB a la salida de 5V para que el motor esté siempre habilitado.
Ahora conecte los pines de entrada (IN1, IN2, IN3 e IN4) del L293D IC a cuatro pines de salida digital (12, 11, 10 y 9) en Arduino.
Finalmente, conecte los cables A+ (Naranja), A- (Rosa), B- (Amarillo) y B+ (Azul) del motor paso a paso a los pines de salida del L293D (Out4, Out3, Out2 y Out1) como se muestra en la la siguiente figura .
Conducir un motor paso a paso bipolar (NEMA 17)
En nuestro próximo experimento, utilizaremos un motor paso a paso bipolar NEMA 17 de 12 V. Ofrece 200 pasos por revolución y puede funcionar a 60 RPM.
Antes de comenzar a conectar el motor al chip, debe determinar los cables A+, A, B+ y B- del motor que desea utilizar. La mejor manera de hacerlo es consultar la hoja de datos del motor. Para nuestro motor son rojo, verde, azul y amarillo.
Las conexiones son bastante simples. Primero, conecte una fuente de alimentación externa de 12 V al pin Vcc2 y la salida de 5 V del Arduino al pin Vcc1. Asegúrese de que todas las tierras del circuito sean comunes.
También necesitas conectar los pines ENA y ENB a la salida de 5V para que el motor esté siempre habilitado.
Ahora conecte los pines de entrada (IN1, IN2, IN3 e IN4) del L293D IC a cuatro pines de salida digital (12, 11, 10 y 9) en Arduino.
Finalmente, conecte los cables A+ (rojo), A- (verde), B+ (azul) y B- (amarillo) del motor paso a paso a los pines de salida del L293D (Out4, Out3, Out2 y Out1) como se muestra en la la siguiente figura .
Código Arduino – Controlar el motor paso a paso
El siguiente esquema le brindará una comprensión completa de cómo controlar un motor paso a paso unipolar o bipolar con chip L293D y es el mismo excepto para ambos motores. stepsPerRevolution
Parámetro.
Cambie este parámetro de acuerdo con las especificaciones de su motor antes de intentar el boceto. Por ejemplo, configúrelo en 200 para NEMA 17 y 48 para 28BYJ-48.
// Include the Arduino Stepper Library
#include <Stepper.h>
// Number of steps per output rotation
const int stepsPerRevolution = 200;
// Create Instance of Stepper library
Stepper myStepper(stepsPerRevolution, 12, 11, 10, 9);
void setup()
{
// set the speed at 20 rpm:
myStepper.setSpeed(20);
// initialize the serial port:
Serial.begin(9600);
}
void loop()
{
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}
El boceto comienza con la encuadernación. biblioteca paso a paso arduino. La biblioteca paso a paso viene incluida con el IDE de Arduino y se encarga de secuenciar los pulsos que enviamos a nuestro motor paso a paso.
// Include the Arduino Stepper Library
#include <Stepper.h>
Después de incluir la biblioteca, definimos una variable llamada stepsPerRevolution
. Como su nombre indica, es el número de pasos por revolución para el que está diseñado nuestro motor. Cambie este parámetro según las especificaciones de su motor. Por ejemplo, configúrelo en 200 para NEMA 17 y 48 para 28BYJ-48.
// Number of steps per output rotation
const int stepsPerRevolution = 200;
A continuación, creamos una instancia de la biblioteca paso a paso. Como parámetros se utilizan los pasos por revolución del motor y las conexiones de pines de Arduino.
// Create Instance of Stepper library
Stepper myStepper(stepsPerRevolution, 12, 11, 10, 9);
En la sección de configuración del código, configuramos la velocidad del motor paso a paso llamando setSpeed()
funcionar e inicializar la comunicación serie.
void setup()
{
// set the speed at 20 rpm:
myStepper.setSpeed(20);
// initialize the serial port:
Serial.begin(9600);
}
En la sección de bucle del código, simplemente llamamos step()
Función que hace girar el motor un cierto número de pasos a una velocidad específica setSpeed()
Función. Pasar un número negativo a esta función invertirá el sentido de rotación del motor.
void loop()
{
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}
Controla el motor paso a paso con el controlador de motor L293D IC y Arduino
Una de las maneras más fáciles y económicas de controlar motores paso a paso es mediante la interfaz del controlador de motor L293D con Arduino. Este controlador puede controlar tanto la velocidad como la dirección de giro de cualquier motor paso a paso unipolar como el 28BYJ-48 o un motor paso a paso bipolar como el NEMA 17.
Preguntas frecuentes:
-
¿Qué es el controlador de motor L293D IC?
El controlador de motor L293D IC es un chip que contiene dos puentes H, los cuales permiten controlar la dirección y velocidad de motores DC. Es ampliamente utilizado en proyectos de robótica y automatización debido a su facilidad de uso y bajo costo.
-
¿Cómo se conecta un motor paso a paso con el L293D y Arduino?
Para conectar un motor paso a paso con el L293D y Arduino, primero se deben identificar las conexiones del motor, ya sea un motor unipolar o bipolar. Luego, se realiza la conexión de los pines de entrada del L293D con los pines digitales de salida de Arduino y se conectan los cables del motor a las salidas del L293D según las especificaciones del mismo.
-
¿Cómo se programa Arduino para controlar un motor paso a paso con el L293D?
Para controlar un motor paso a paso con el L293D y Arduino, se utiliza la librería Stepper de Arduino. Se define el número de pasos por revolución del motor en el código y se configura la velocidad de giro en rpm. Luego, se utilizan las funciones de la librería para hacer girar el motor en la dirección y cantidad de pasos deseados.
Si deseas aprender más detalles sobre cómo controlar motores paso a paso con el controlador L293D IC, te recomendamos visitar el siguiente tutorial.
¡Muy útil! Gracias por la explicación detallada, ahora me siento más seguro de intentarlo yo mismo. ¡Buena guía!
¡Interesante tutorial! Me gusta cómo explican paso a paso cómo hacerlo. ¡Gracias por compartir!