Motor Paso a Paso con potenciómetro

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

Hay dos tipos de motores paso a paso, unipolares y bipolares, y es muy importante saber qué tipo está usted trabajando. Para cada uno de los motores, hay un circuito diferente. El código de ejemplo controlará los dos tipos de motores. Ver los esquemas motores unipolares y bipolares para obtener información sobre cómo cablear su motor.

En este ejemplo, un potenciómetro (u otro sensor) en la entrada analógica 0 se utiliza para controlar el movimiento de un motor paso a paso usando la biblioteca Stepper de Arduino. El motor paso a paso es controlado por los pines digitales con 8, 9, 10, y 11, ya sea para motores bipolares o unipolares.

La placa Arduino o Genuino se conectará a una matriz Darlington U2004  si está utilizando un paso a paso unipolar o un SN754410NE H-Bridge si tiene un motor bipolar.

Para obtener más información acerca de las diferencias de los dos tipos, por favor, eche un vistazo a la página Motores paso a paso.


Hardware necesario

Placa Arduino o Genuino
Potenciómetro de 10k ohm
Motor paso a paso
Darlington Array U2004 (si se utiliza un paso a paso unipolar) SN754410ne H-puente (si se utiliza un paso a paso bipolar)
Fuente de alimentación adecuada para su paso a paso en particular
Cable de conexionado
Placa protoboard

Circuitos

En la página Biblioteca Stepper encontrará circuitos para ambos motores paso a paso unipolares y bipolares. En cualquiera de los casos, es mejor alimentar sus motores paso a paso desde una fuente externa, ya que consumen demasiado para ser alimentados directamente desde la placa Arduino.
En ambos circuitos, conectar un potenciómetro de 10k entre  alimentación y tierra, con su toma central conectada al pin analógico 0.

Nota: Ambos circuitos descritos son cuatro configuraciones de cableado. Dos configuraciones de cableado no funcionarán con el código proporcionado.

Código

Para ambos motores paso a paso unipolares y bipolares.

// Control de la velocidad de un motor paso a paso con potenciometro

 // Este programa controla un motor paso a paso unipolar o bipolar.
 // El motor está conectado a los pines digitales 8 - 11 del Arduino.
 // Un potenciómetro se conecta a la entrada analógica 0.
 // El motor girará en sentido horario.
 // Cuanto mayor sea el valor del potenciómetro, más rápida será la velocidad del motor.
 // Debido a que setSpeed () establece un retardo entre los pasos,
 // se puede observar que el motor es menos sensible a los // cambios en el valor del sensor en bajas velocidades.

 // Creado el 30 de Noviembre de 2009
 // Modificado el 28 de Octubre de  2010 por Tom Igoe

 #include <Stepper.h>

 const int stepsPerRevolution = 200;  // cambiar esto para fijar el numero de pasos por revolucion
 // de su motor


 // initializa la biblioteca Stepper con los pines 8 a 11:
 Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

 int stepCount = 0;  // numero de pasos que el motor ha dado

 void setup() {
   // nada denro de setup
 }

 void loop() {
   // lee el valor del sensor:
   int sensorReading = analogRead(A0);
   // mapea este al rango 0 a 100:
   int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
   // establece la velocidad del motor:
   if (motorSpeed > 0) {
     myStepper.setSpeed(motorSpeed);
     // paso 1/100 de revolucion:
     myStepper.step(stepsPerRevolution / 100);
   }
 }
  

1 comentario: