LECCIÓN 20: MOTOR PASO A PASO Y ULN2003

Introducción 

Los motores paso a paso, debido a su diseño único, se pueden controlar con un alto grado de precisión sin ningún mecanismo de retroalimentación. El eje de un paso a paso, montado con una serie de imanes, está controlado por una serie de bobinas electromagnéticas que se cargan positiva y negativamente en una secuencia específica, moviéndolo con precisión hacia adelante o hacia atrás en pequeños "pasos".

              

Como hemos mencionado en la lección anterior, hay dos tipos de motores paso a paso, unipolares y bipolares, y es muy importante saber con qué tipo está trabajando. En este experimento, usaremos un paso a paso unipolar. La placa UNO u otros MCU no pueden accionar directamente motores paso a paso. 

Es necesario un circuito controlador, por lo que en esta lección utilizamos una placa de controlador de motor paso a paso (como se muestra en la siguiente imagen).

En esta placa hay cuatro diodos LED en la parte superior. El conector blanco en el medio estará conectado al motor paso a paso. 

En cuanto a la parte inferior, son cuatro entradas IN1,IN2,IN3,IN4 utilizadas para conectar con el controlador. Cuando una entrada IN sea alta, el LED correspondiente se iluminará. 

La tira de pines a la derecha es la entrada de la fuente de alimentación. 

Hay cuatro diodos LED en la parte superior. El conector blanco en el medio está conectada al motor paso a paso.

La parte inferior son cuatro entradas IN1,IN2,IN3,IN4 utilizados para conectar con controlador. Cuando una entrada IN es alto, el LED correspondiente se iluminará. La tira de pines a la derecha es la entrada de la fuente de alimentación.

Componentes

 {Product:2000}{Product:256}{Product:1436}{Product:847}{Product:536}{Product:44}

Principio

El motor paso a paso es un motor de cuatro fases, que utiliza una fuente de alimentación de corriente continua unipolaridad. Todo el tiempo que proporcione corriente eléctrica a todas las bobinas de fase del motor paso a paso mediante una secuencia de sincronización adecuada, puede hacer que el motor gire paso a paso. El diagrama esquemático de un motor paso a paso reactivo de cuatro fases es como se muestra a continuación:

                  

Como se muestra en la figura, en el centro del motor hay un rotor – un imán permanente en forma de engranaje. Alrededor del rotor, de 0 a 5 son dientes. En el exterior, hay 8 polos magnéticos, cada uno de los cuales está conectado por medio de bobinas, así que forman cuatro pares de la A a la D, lo que se llama una fase. Tiene cuatro cables conductores para conectar con interruptores SA, SB, SC y SD. Por lo tanto, las cuatro fases están en paralelo en el circuito, y los dos polos magnéticos en una fase están en serie.

 

Así es como funciona un motor paso a paso de 4 fases:

Al principio, el interruptor SB está encendido, los interruptores SA, SC y SD están apagados, y los polos magnéticos de fase B se alinean con los dientes 0 y 3 del rotor.

Los polos B tirarán los dientes 0-3 del rotor uno hacia el otro. Cuando el interruptor SA está encendido y los interruptores SB, SC y SD están apagados, el rotor gira bajo el campo magnético de fase A y alinean con los dientes 5 y 2 del rotor. Los polos A tirarán los dientes 5-2 del rotor uno hacia el otro. La situación es similar y continua. 

Proporcione corriente eléctrica a las fases A, B, C y D a su vez, y el rotor girará en el orden de A, B, C y D

El motor paso a paso de cuatro fases tiene tres modos de funcionamiento:

-simple de cuatro pasos -Wave drive

-doble de cuatro pasos- Full step

-ocho pasos – Half step

El ángulo de paso para el simple de cuatro pasos y el doble de cuatro pasos son los mismos, pero el torque para el simple de cuatro pasos es más pequeño. El ángulo de paso en modo de ocho pasos es la mitad que el del simple de cuatro pasos y doble de cuatro pasos. Por lo tanto, el modo de funcionamiento del de ocho pasos puede mantener un alto torque y mejorar la precisión del control. En este experimento, dejamos que el motor paso a paso funcione en el modo de ocho pasos. Para conectar el motor al circuito, es necesario utilizar una placa controladora. El driver del motor paso a paso ULN2003 es un circuito inversor de 7 canales. Si suministramos un nivel alto a IN1, y bajo nivel a IN2, IN3 e IN4, entonces la salida OUT1 está en el nivel bajo, y todas las salidas están en el nivel alto. Así que D1 se ilumina, el interruptor SA se enciende y el motor paso a paso gira un paso. Esto se repite una y otra vez. Por lo tanto, sólo hay que dar al motor paso a paso una secuencia de temporización específica y rotará paso a paso. El ULN2003 aquí se utiliza para proporcionar secuencias de tiempo particulares para el motor paso a paso.

 

Procedimiento 

Paso 1: Conectar el circuito

 

ULN2003 placa driver IN1----------------------- Arduino UNO R3 Digital pin 8

ULN2003 placa driver IN2----------------------- Arduino UNO R3 Digital pin 9

ULN2003 placa driver IN3----------------------- Arduino UNO R3 Digital pin 10

ULN2003 placa driver IN4----------------------- Arduino UNO R3 Digital pin 11

ULN2003 placa driver “+” ----------------------- Arduino UNO R3 Power pin 5V

ULN2003 placa driver “-“ -----------------------  Arduino UNO R3 Power pin GND

Paso 2: Programar (consulte el código de ejemplo en el CD o sitio web oficial)

/***********************************************************

File name: steppermotor speed

***********************************************************/

int Pin0 = 8;//definition digital 8 pins as pin to control the IN1 (ULN24L01)

int Pin1 = 9;//definition digital 9 pins as pin to control the IN2 (ULN24L01)

int Pin2 = 10;//definition digital 10 pins as pin to control the IN3 (ULN24L01)

int Pin3 = 11;//definition digital 11 pins as pin to control the IN4 (ULN24L01)

int _step = 512; 

int _speed = 1; 

void setup()

{

 pinMode(Pin0, OUTPUT);//Set digital 8 port mode, the OUTPUT for the output

 pinMode(Pin1, OUTPUT);//Set digital 9 port mode, the OUTPUT for the output

 pinMode(Pin2, OUTPUT);//Set digital 10 port mode, the OUTPUT for the output

 pinMode(Pin3, OUTPUT);//Set digital 11 port mode, the OUTPUT for the output

}

void loop()

{

   Speed(15);//Stepper motor speed = 15 fast (note:speed from 1 to 15)

  Step(512);//Stepper motor forward 512 steps ---- 360 angle    

  delay(2000);// delay 2S

   Speed(1); //Stepper motor speed = 1 slow  (note:speed from 1 to 15)

  Step(-512);//Stepper motor backward 512 steps ---- 360 angle    

  delay(2000);//delay 2S

}

void Speed(int stepperspeed)//set Stepper speed 

{

    _speed = 15 - stepperspeed;

    if( _speed<1){

     _speed = 1;

    }

    if( _speed>15){

     _speed = 15;

    }

}

void Step(int _step)//Stepper motor rotation

{

  if(_step>=0){  // Stepper motor forward

    for(int i=0;i<_step;i++){   

      setStep(1, 0, 0, 1);

      delay(_speed); 

      setStep(1, 0, 0, 0);

      delay(_speed);

      setStep(1, 1, 0, 0);

      delay(_speed);

      setStep(0, 1, 0, 0);

      delay(_speed);

      setStep(0, 1, 1, 0);

      delay(_speed);

      setStep(0, 0, 1, 0);

      delay(_speed);

      setStep(0, 0, 1, 1);

      delay(_speed); 

      setStep(0, 0, 0, 1);

      delay(_speed);

    }

  }else{ // Stepper motor backward

     for(int i=_step;i<0;i++){  

      setStep(0, 0, 0, 1);

      delay(_speed);

      setStep(0, 0, 1, 1);

      delay(_speed);

      setStep(0, 0, 1, 0);

      delay(_speed);

      setStep(0, 1, 1, 0);

      delay(_speed);

      setStep(0, 1, 0, 0);

      delay(_speed);

      setStep(1, 1, 0, 0);

      delay(_speed);

      setStep(1, 0, 0, 0);

      delay(_speed);

      setStep(1, 0, 0, 1);

      delay(_speed);

    }

   }

}

void setStep(int a, int b, int c, int d)  

{  

    digitalWrite(Pin0, a);     

    digitalWrite(Pin1, b);     

    digitalWrite(Pin2, c);     

    digitalWrite(Pin3, d);     

}

Paso 3: Compilar el código.

Paso 4: Cargar el sketch en la placa Uno.

 

Ahora, ajuste el potenciómetro, el motor paso a paso girará los grados correspondientes.

Nota.

Motor de "4 bobinas" o "4 fases" - todos significan lo mismo