lunes, 8 de abril de 2013

CONTROL DE UN MOTOR PASO A PASO BIPOLAR INALÁMBRICAMENTE (XBEE) CON ARDUINO Y LABVIEW (1º PARTE)

En este proyecto abordaré el tema de los motores paso paso y su control desde arduino. En un paso final gobernaré dicho motor desde XBEE y LABVIEW con un panel frontal muy chulo.

El Motor paso a paso que voy a cotrolar es bipolar y consta de 4 hilos. Cada par de ellos gobierna una bobina. En la foto vemos dicho motor:



 
Este es un motor paso a paso Bipolar 35x36mm de 200 pasos por vuelta. Cada fase funciona a 2.7V a 1000mA lo que le proporciona un torque de 1400g-cm. Pesa tan solo 180 gramos y es de dimensiones muy reducidas.

Especificationes:
  • Tamaño: 35x36 mm (sin contar el eje)
  • Peso: 180 gramos
  • Diámetro del eje: 5 mm
  • Corriente: 1000 mA por fase
  • Voltaje: 2.7 V
  • Longitud del eje: 15 mm (diámetro: 4mm)
  • Resistencia: 2.7 Ohm por bobinado
  • Torque: 1400 g-cm (2.5 oz-in)
  • Pasos por vuelta: 200

En esta estupenda página disponemos de un tutorial my clarito que explica la teoría de dichos motores:


Nosotros en canbiio vamos a controlar el motor mediante una librería muy sencilla disponible para arduino y para la tarjeta de control de dicho motor llamada: Arduino Motor Shield Rev3.


Esta shield tiene dos canales separados, denominados A y B, que cada usa 4 de los pines de Arduino para conducir y sensar el motor. En total hay 8 pines en su uso . Se puede utilizar cada canal por separado para conducir dos motores DC o combinarlos para conducir un motor paso a paso. Las Cables de la figura deben conectarse bien a la placa según el par de bobinas o según los colores que se indican. Bobina 1 (cables azul y rojo).Bobina 2 (Cables negro y azul).Mirar las caracterisiticas de tu motor si los colores son diferentes.

Los Pins de la shield, dividido por el canal se muestran en la siguiente tabla:

 
Functionpins per Ch. Apins per Ch. B
DirectionD12D13
PWMD3D11
BrakeD9D8
Current SensingA0A1

Además tiene dos pines de alimentación exterior para el motor a los cuales conectaremos una pila de 9 Voltios. Los Pines de "Brake" y "Current Sensing" nos los utilizaremos.


 Si no hacemos uso de la librería el programa bajo Arduino que haría girar el motor en un sólo sentido con la secuencia apropiada aplicada a las dos bobinas sería el siguiente:

// Programa simple de giro continuo del motor bipolar (sólo para pruebas)

int motorPin1 = 13;       // pines del Motor
int motorPin2 = 12;
int motorPin3 = 3;
int motorPin4 = 11;
int delayTime = 100;       // Delay que determina la velocidad de giro

void setup() {
pinMode(motorPin1, OUTPUT); // Configuración de los PINes como salida digital
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}

void loop() {
digitalWrite(motorPin1, HIGH);   // Los pines se activan en secuencia
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);

delay(delayTime);
 
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
 
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, HIGH);
 
delay(delayTime);
 
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
 
delay(delayTime);
}

Este programa lo podriamos probar para las pruebas del funcionamiento del motor porque,en realidad, vamos a utilizar,como se dijo antes, una librería muy simple.

El video de muestra el funcionamiento del motor:

 
http://www.youtube.com/watch?v=-YcMSy3VpPQ




1 comentario: