Biblioteca Arduino para motores paso a paso bipolares.

Anteriormente, proporcioné la biblioteca Arduino para motores paso a paso de tipo unipolar. Controla perfectamente la velocidad, dirección, número de rotaciones, ángulo del motor, etc., todos los parámetros de los motores paso a paso de tipo unipolar. Pero era sólo para motores paso a paso de tipo unipolar. Como sabemos, el motor paso a paso también puede ser de tipo bipolar. Pero esta biblioteca no puede controlar motores paso a paso de tipo bipolar. Entonces decidí desarrollar otra biblioteca Arduino para controlar motores paso a paso bipolares.

Entonces, aquí presento la biblioteca de motores paso a paso bipolares en Arduino para todos los motores paso a paso de tipo bipolar. La biblioteca tiene 9 funciones diferentes que se pueden utilizar para girar y controlar el motor según los requisitos. La biblioteca está diseñada según los requisitos de control de movimiento industrial . Estas son algunas de las características de esta biblioteca.

1. Controla cualquier motor paso a paso bipolar.

2. Controla la dirección de rotación del motor.

3. Controla con precisión el número de rotaciones del motor como 1, 2, 3, 4,…..

4. Controla con precisión la velocidad del motor en RPM con una precisión del 95%

5. Gira con precisión el motor hasta el ángulo deseado entre 0 – 360 ° con una precisión del 80-100%

6. Compatible con todas las placas Arduino

Aquí se proporcionan breves descripciones de todas las funciones de la biblioteca. A continuación se ofrecen algunos ejemplos que explican cómo se controla el motor utilizando esta biblioteca. También se proporciona un vídeo que muestra la demostración de estos ejemplos. Finalmente, se sugiere el circuito que utiliza el chip L293D, ampliamente utilizado como controlador de puente H para motores de CC, así como motores paso a paso bipolares.

Para usar esta biblioteca en su boceto de Arduino, simplemente copie la carpeta bi_polar_Stepper al directorio raíz de la carpeta de la biblioteca Arduino, como C:arduino-1.6.7libraries.

DESCRIPCIÓN DE FUNCIONES DE LA BIBLIOTECA

1) bi_polar_Stepper(int pin1,int pin2,int pin3,int pin4) : esto creará una instancia de bi_polar_Stepper en el boceto de Arduino con pines del controlador del motor paso a paso. Significa que necesita especificar los pines de la placa Arduino que se utilizan para accionar el motor paso a paso.

2) set_step_per_rev(int pasos) : esta función definirá el número de pasos necesarios para que el motor paso a paso complete 1 revolución. Significa que establecerá el ángulo de paso (resolución de paso) del motor. Es necesario ingresar el ángulo de paso del motor para un control preciso.

3) set_RPM(int rpm) : esta función establecerá la velocidad del motor en RPM y el motor girará a la velocidad seleccionada con hasta un 95% de precisión.

4) rotar_CW : esta función comenzará a girar el motor en el sentido de las agujas del reloj. Para girar continuamente el motor en el sentido de las agujas del reloj es necesario utilizar esta función en un bucle continuo.

5) rotar_CCW : esta función iniciará la rotación del motor en sentido antihorario. Para girar el motor en sentido contrario a las agujas del reloj de forma continua es necesario utilizar esta función en un bucle continuo.

6) rotar (int dir) : esta función rotará el motor según la dirección seleccionada. Si la dirección se da como 1, el motor girará en el sentido de las agujas del reloj y viceversa.

7) rotar_one_rev (directorio interno) : esta función hará girar el motor exactamente 1 revolución en la dirección seleccionada

8) turn_n_rev(int directorio,int num) : esta función rotará el motor el número requerido de rotaciones en las direcciones seleccionadas

9) rotar_x_deg(int grados) : esta función rotará el motor al ángulo deseado de 0 a 360o en cualquier dirección con una precisión de ángulo del 80 al 100%.

EJEMPLOS

1) Gire el motor continuamente en cualquier dirección a 60 RPM

/*este programa hará girar continuamente el motor paso a paso bipolar
* con ángulo de paso de 1,8 grados (200 pasos/rev) a 60 RPM
* creado por Ashutosh Bhatt el 12/12/16
*/
#incluir #define pasos 200 // cambia estos pasos dependiendo del motor bi_polar_Stepper mi_motor_paso a paso(8,9,10,11); rpm internas = 60; configuración nula { // pon tu código de configuración aquí, para ejecutarlo una vez: Serie.begin(9600); Serial.println(“programa de prueba de biblioteca de motores paso a paso bipolar”); my_step_motor.set_step_per_rev(pasos); mi_motor_paso.set_RPM(rpm); Serial.println(“el motor gira en el sentido de las agujas del reloj”); } bucle vacío { mi_motor_paso.rotate_CW; }

2) Gire el motor una vuelta en el sentido de las agujas del reloj y una vuelta en el sentido contrario a las agujas del reloj continuamente.

/*este programa hará girar el motor paso a paso bipolar
* con ángulo de paso de 1,8 grados (200 pasos/rev)
*como 1 revolución en el sentido de las agujas del reloj (CW) y 1 revolución
*en sentido antihorario (CCW) a 30 RPM continuamente
* creado por Ashutosh Bhatt el 12/12/16
*/
#incluir #definir pasos 200 bi_polar_Stepper mi_motor_paso a paso(8,9,10,11); rpm internas = 30; configuración nula { // pon tu código de configuración aquí, para ejecutarlo una vez: Serie.begin(9600); Serial.println(“programa de prueba de biblioteca de motores paso a paso bipolar creado por Ashutosh Bhatt”); my_step_motor.set_step_per_rev(pasos); mi_motor_paso.set_RPM(rpm); } bucle vacío { Serial.println(“el motor gira en el sentido de las agujas del reloj”); my_stepper_motor.rotate_one_rev(1); retraso(1000); Serial.println(“el motor gira en sentido antihorario”); my_stepper_motor.rotate_one_rev(0); retraso(1000); }

3) Gire el motor en el sentido de las agujas del reloj a 100 RPM y en el sentido contrario a las agujas del reloj a 50 RPM continuamente.

/*este programa primero hará girar el motor paso a paso bipolar * con ángulo de paso de 1,8 grados (200 pasos/rev) * en el sentido de las agujas del reloj (CW) durante 2 rotaciones a 100 RPM y luego *en sentido antihorario (CCW) para 2 rotaciones a 50 RPM * continuamente * creado por Ashutosh Bhatt el 12/12/16 */ #incluir #definir pasos 200 bi_polar_Stepper mi_motor_paso a paso(2,3,4,5); ent i; configuración nula { Serie.begin(9600); Serial.println(“Programa de prueba de biblioteca de motores paso a paso bipolar creado por Ashutosh Bhatt”); my_step_motor.set_step_per_rev(pasos); } bucle vacío { mi_motor_paso.set_RPM(100); for(i=0;i<100;i++) my_step_motor.rotate(1); retraso(2000); mi_motor_paso.set_RPM(50); for(i=0;i<100;i++) my_step_motor.rotate(0); retraso(2000); }

4) Gire el motor 4 vueltas en el sentido de las agujas del reloj a 20 RPM y 2 vueltas en el sentido contrario a las agujas del reloj a 10 RPM continuamente

/*este programa primero hará girar el motor paso a paso bipolar * con ángulo de paso de 1,8 grados (200 pasos/rev) * 4 rotaciones en el sentido de las agujas del reloj (CW) a 20 RPM y luego * 2 rotaciones en sentido antihorario (CCW) a 10 RPM * continuamente * creado por Ashutosh Bhatt el 12/12/16 */ #incluir #definir pasos 200 bi_polar_Stepper mi_motor_paso a paso(2,3,4,5); ent i; configuración nula { Serie.begin(9600); Serial.println(“Programa de prueba de biblioteca de motores paso a paso unipolar creado por Ashutosh Bhatt”); my_step_motor.set_step_per_rev(pasos); } bucle vacío { mi_motor_paso.set_RPM(20); my_step_motor.rotate_n_rev(1,4); retraso(2000); mi_motor_paso.set_RPM(10); my_step_motor.rotate_n_rev(0,2); retraso(2000); }

5) Gire el motor 90° en el sentido de las agujas del reloj y 90° en el sentido contrario a las agujas del reloj continuamente a 30 RPM.

/*este programa hará girar el motor bipolar * con ángulo de paso de 1,8 grados (200 pasos/rev) a 30 RPM para * 90 grados CW y 90 grados CCW continuamente * creado por Ashutosh Bhatt el 22/10/16 */ #incluir # definir pasos_motor 200 bi_polar_Stepper mi_motor_paso a paso(8,9,10,11); rpm internas = 30; configuración nula { // pon tu código de configuración aquí, para ejecutarlo una vez: Serie.begin(9600); Serial.println(“programa de prueba de biblioteca de motores paso a paso bipolar”); my_step_motor.set_step_per_rev(motor_steps); mi_motor_paso.set_RPM(rpm); Serial.println(“el motor gira 90 grados hacia adelante y hacia atrás”); } bucle vacío { mi_motor_paso.rotate_x_deg(90); retraso(2000); mi_motor_paso.rotate_x_deg(270); retraso(2000); }

Nota: - Si el motor paso a paso tiene valores nominales de corriente y voltaje más altos, en lugar del chip L293D podemos usar el chip L298 o un conjunto de 4 transistores Darlington separados como TIP122, TIP142, etc.

Aquí está el resumen de la disposición del circuito anterior.

Protótipo de controlador de motor de passo tipo bipolar

Fig. 1: Prototipo de controlador de motor paso a paso bipolar

La biblioteca proporcionada y los programas de ejemplo junto con el circuito anterior se prueban con los siguientes motores paso a paso.

1) Motor bipolar bifásico de 5V, 100 RPM (MAX), 200 pasos/rev (ángulo de paso de 1,8o)

2) Motor bipolar bifásico de 5V, 60 RPM (MAX), 200 pasos/rev (ángulo de paso de 1,8o)

Simplemente mire los videos proporcionados aquí como demostración.

Diagramas de circuito

Diagrama de circuito del controlador de motor paso a paso tipo bipolar

Vídeo del proyecto

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.