Escolar Documentos
Profissional Documentos
Cultura Documentos
Los motores paso a paso son ideales para la construccin de mecanismos en donde
se requieren movimientos muy precisos.
La caracterstica principal de estos motores es el hecho de poder moverlos un paso
a la vez por cada pulso que se le aplique. Este paso puede variar desde 90 hasta
pequeos movimientos de tan solo 1.8, es decir, que se necesitarn 4 pasos en el
primer caso (90) y 200 pasos para el segundo caso (1.8), para completar un giro
completo de 360.
Estos motores poseen la habilidad de poder quedar enclavados en una posicin o
bien totalmente libres. Si una o ms de sus bobinas estn energizadas, el motor
estar enclavado en la posicin correspondiente y por el contrario quedar
completamente libre si no circula corriente por ninguna de sus bobinas.
A continuacin se muestra como realizar la conexin fsica de un motor a pasos en
conjunto con un microcontrolador Arduino Uno y un circuito integrado ULN2003A
para llevar a cabo el funcionamiento del motor en 4 posiciones distintas, cada una
de ellas de 90 grados.
Material:
Protoboard
Fuente de Alimentacin
Cdigo de control
Recuerden guardar el cdigo con la extensin .ino para que pueda funcionar
correctamente el Sketch en el IDE de Arduino.
/Control de MOTOR a Pasos en Secuencia Normal (2 bobinas activadas por cada
paso) para 4 estaciones
int motorPin1 = 8; // Pines del Motor
int motorPin2 = 9;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime = 3000; // DelayTime determina la espera entre uno y otro paso
int delayTime1 = 100; // DelayTime1 determina la velocidad de giro entre uno y otro
paso
int count = 0;
void setup()
{
pinMode(motorPin1, OUTPUT); // Configuracin de los Pines como salida digital
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}
//Control de MOTOR a Pasos en Secuencia Normal (2 bobinas activadas por cada
paso) para 4 estaciones
int motorPin1 = 8; // Pines del Motor
int motorPin2 = 9;
int motorPin3 = 10;
void loop()
{
for (count = 0; count < 3; count++) // Aqui en el for es donde se manipulan los
grados que se desean asignar al motor
{
// Los pines se activan en secuencia de las manecillas del reloj
// Punto A (Primero)
digitalWrite(motorPin1, HIGH); //cafe A
digitalWrite(motorPin2, LOW); //negro B
digitalWrite(motorPin3, LOW); //morado C
digitalWrite(motorPin4, HIGH); //naranja D
delay(delayTime1); // Un micro segundo de espera
// Punto B (Segundo)
digitalWrite(motorPin1,
digitalWrite(motorPin2,
digitalWrite(motorPin3,
digitalWrite(motorPin4,
delay(delayTime1);
// Punto C (Tercero)
digitalWrite(motorPin1,
digitalWrite(motorPin2,
digitalWrite(motorPin3,
digitalWrite(motorPin4,
delay(delayTime1);
// Punto D (Cuarto)
digitalWrite(motorPin1,
digitalWrite(motorPin2,
digitalWrite(motorPin3,
digitalWrite(motorPin4,
delay(delayTime1);
HIGH);
HIGH);
LOW);
LOW);
LOW);
HIGH);
HIGH);
LOW);
LOW);
LOW);
HIGH);
HIGH);
} //End For
delay(delayTime); // Se espera 3 segundos despues de cada paso y al iniciar la
secuencia
}//End Loop