¡Cómo configurar la posición de inicio de un Stepper en el inicio! Deja un comentario

Comparte este Post
VISIÓN DE CONJUNTO

Si ha seguido nuestros tutoriales durante un tiempo, habrá notado que hemos utilizado Stepper Motors en múltiples proyectos.

Una cosa a tener en cuenta es que cuando se elimina la energía, la información sobre la posición del Motor paso a paso se pierde y el proyecto no es una forma de saber cuál es la posición en el siguiente encendido.

Por lo tanto, en este tutorial veremos cómo agregar un simple cambio a cualquier proyecto de Stepper que pueda usarse para “Inicio” del Motor de pasos al inicio, y establecer esa posición como cero o inicio.

Entonces podemos calcular la cantidad máxima de pasos que podemos avanzar desde esa posición y usar eso como el viaje límite que puede realizar el paso a paso. De esta forma no tenemos que usar otro interruptor de límite.

En esta primera parte no usaremos Bibliotecas para mover el motor paso a paso, en la Parte 2 veremos cómo lograr los mismos resultados utilizando la popular biblioteca AccelStepper.

CONEXIONES

El controlador fácil:

Arduino Pin 6 está conectado a DIR en la placa Easy Driver
Pin 5 a STEPS
Pin 6 a DIR
Pin 2 a MS1
Pin 3 a MS2
Pin 8 a SLEEP
y GND está conectado a un pin GND en el Arduino

* El voltaje y GND (en la parte superior del Easy Driver) están conectados a una fuente de alimentación de 12V 1A.
El motor NEMA 17 que estamos utilizando tiene un consumo máximo de amperaje de alrededor de 0.45A.

Conexiones de motor paso a paso:

Los 4 cables del paso a paso NEMA (2 por bobina) están conectados directamente a los pines del grupo Easy Driver A y B.

Una manera rápida de identificar qué cables forman parte de la misma bobina es conectar dos cables entre sí y si siente resistencia al intentar girar el eje del motor paso a paso, eso significa que esos 2 cables son parte de la misma bobina.

El Joystick:

El pin A0 de Arduino está conectado al pin del eje X del Joystick
GND y 5V están conectados a un pin de 5V y GND en el Arduino

El pin del interruptor de límite NO (normalmente abierto) está conectado al pin 9 del Arduino

El pin COM (común) del interruptor está conectado a un pin GND en el Arduino

EL CÓDIGO

Queremos que el “Homing” del Motor paso a paso ocurra al inicio, así que pondremos todo el código necesario en la parte “CONFIGURACIÓN” del código Arduino, que se ejecuta primero antes del “BUCLE” principal.

Estamos utilizando 2 bucles While para lograr el restablecimiento o el inicio del stepper.

El primero se ejecuta siempre que el interruptor de referencia no esté activado, gira el motor de pasos hacia el interruptor hasta que se active.

El segundo ciclo while se ejecuta cuando el interruptor está activado, gira el motor paso a paso alejándolo del interruptor hasta que se desactiva.

Luego establecemos la variable “pasos” a cero.

El motor paso a paso ahora está en casa.

Como siempre, para obtener más información sobre el tutorial y la explicación del código, mire nuestro video tutorial.



/ * Código de inicio de motor paso a paso simple
 
 Creado por Yvan / https: // Inteligente - Bits . com
 Este código es  en el dominio público ... Puede: copiarlo, usarlo, modificarlo, compartirlo o simplemente ignóralo ! Gracias ! 

* / 

// Definir los pines utilizados #define step_pin 5 // Pin 5 conectado al pin Steps en EasyDriver 
#define dir_pin 6 // Pin 6 conectado al pin de dirección 
#define MS1 2 // Pin 3 conectado al pin MS1 
#define MS2 3 // Pin 4 conectado al pin MS2 
#define sleep_pin 8 // Pin 8 conectado al pin SLEEP 

#define x_pin A0 // Pin A0 conectado al joystick x eje pin 

#define home_switch 9 // Pin 9 conectado al Home Switch (MicroSwitch) 

En t dirección; // Variable a conjunto Rotación (CW - CCW) del motor En t pasos; // Acostumbrado a conjunto Posición HOME después del recorrido es terminado

 void setup () {
    pinMode (MS1, OUTPUT);
    pinMode (MS2, OUTPUT);
    pinMode (dir_pin, OUTPUT);
    pinMode (step_pin, OUTPUT);
    pinMode (sleep_pin, OUTPUT);
   
    pinMode (x_pin, INPUT);

    pinMode (home_switch, INPUT_PULLUP);
   
    digitalWrite (sleep_pin, HIGH); // Despertar EasyDriver
    retrasar( 5 ); // Espere para EasyDriver se despierta / * Configurar tipo de Pasos en EasyDriver: // MS1 MS2 // 
// BAJO BAJO = Paso completo // 
// ALTA BAJA = Medio paso // 
// BAJO ALTO = Un cuarto de paso // 
// ALTA ALTA = Un octavo de paso // 
* / digitalWrite (MS1, ALTO); // Configura a pasos completos
    digitalWrite (MS2, BAJO); // Configura a pasos completos // Comience el procedimiento de Homing del Motor paso a paso al inicio mientras (digitalRead (home_switch)) { // Haz esto hasta que el interruptor es activado
     digitalWrite (dir_pin, ALTO); // (ALTO = anti - agujas del reloj / BAJO = agujas del reloj)
     digitalWrite (step_pin, HIGH);
     retrasar( 5 ); // Demora para disminuir la velocidad de Stepper
     digitalWrite (step_pin, LOW);
     retrasar( 5 );
 } mientras ( ! digitalRead (home_switch)) { // Haz esto hasta que el interruptor es  no activado
     digitalWrite (dir_pin, BAJO);
     digitalWrite (step_pin, HIGH);
     retrasar( 10 ); // Más demora para disminuir aún más mientras alejándose de  cambiar digitalWrite (step_pin, LOW);
     retrasar( 10 );
   }

   pasos = 0 ; // Restablezca la variable de posición a cero
   
 }

 void loop () { // Habilite el movimiento del motor paso a paso usando el Joystick mientras (analogRead (x_pin) > =  0  && analogRead (x_pin)  100 ) { Si (pasos >  0 ) { // Para asegurarse de que el Stepper no ir más allá de la posición de inicio digitalWrite (dir_pin, ALTO); // (ALTO = anti - agujas del reloj / BAJO = agujas del reloj)
       digitalWrite (step_pin, HIGH);
       retrasar( 1 );
       digitalWrite (step_pin, LOW);
       retrasar( 1 );
       pasos - ; // Disminuir el número de pasos tomados
     }
   } mientras (analogRead (x_pin) >  900  && analogRead (x_pin)  1024 ) { Si (pasos  650 ) { // Pasos máximos que el paso a paso puede alejarse de  el  Casa  Posición digitalWrite (dir_pin, BAJO);
         digitalWrite (step_pin, HIGH);
         retrasar( 1 );
          digitalWrite (step_pin, LOW);
         retrasar( 1 );
         pasos ++ ; // Aumenta la cantidad de pasos tomados
       }
     }
 }


VIDEO TUTORIAL
DESCARGAR

No se necesita ninguna biblioteca para este tutorial.

Simplemente copie el código de Sketch anterior que desea usar arriba en su software Arduino IDE para programar su Arduino.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Tenemos un cupón de descuento disponible para vos

Abrir chat
0

Tu carrito