Documentos de Académico
Documentos de Profesional
Documentos de Cultura
L A B O R A T O R I O No. 03
I. OBJETIVOS:
- Identificar los motores Paso a Paso Unipolares y Bipolares
- Usar el transistor como driver del Motor Paso a Paso.
Motor Paso a
Paso Unipolar
Cada vez que se genera interrupcin debido a que un contador interno del Arduino ha finalizado
su cuenta, se envan una serie de seales digitales al driver del motor paso a paso. El intervalo
entre la generacin de dos interrupciones sucesivas determina de forma directa la velocidad de
giro del motor. El modo en que se generan las interrupciones se explica con mayor precisin en el
procedimiento de programacin de la secuencia binaria por medio del software de Arduino.
Las fases de un motor paso a paso Unipolar comparado con un motor paso a paso bipolar son:
de 6 hilos
C D
A. Simple o Wave drive: Es una secuencia donde se activa una bobina a la vez. Esto hace que el
motor tenga un paso ms suave pero por el contrario tenga menos torque y menos retencin.
Secuencia
Paso Bobina A Bobina B Bobina C Bobina D
Binaria
Paso 1 1 0 0 0 8
Paso 2 0 1 0 0 4
Paso 3 0 0 1 0 2
Paso 4 0 0 0 1 1
B. Normal: Es la secuencia ms usada y la que recomiendan los fabricantes. Con esta secuencia
el motor avanza un paso por vez y siempre hay dos bobinas activadas. Con esto se obtiene un
mayor torque y retencin.
Secuencia
Paso Bobina A Bobina B Bobina C Bobina D
Binaria
Paso 1 1 1 0 0
Paso 2 0 1 1 0
Paso 3 0 0 1 1
Paso 4 1 0 0 1
C. Medio paso: Se activan primero dos bobinas y despus solo una y as sucesivamente. Esto
provoca que el motor avance la mitad del paso real. Esto se traduce en un giro ms suave y
preciso.
Secuencia
Paso Bobina A Bobina B Bobina C Bobina D
Binaria
Paso 1 1 0 0 0
Paso 2 1 1 0 0
Paso 3 0 1 0 0
Paso 4 0 1 1 0
Paso 5 0 0 1 0
Paso 6 0 0 1 1
Paso 7 0 0 0 1
Paso 8 1 0 0 1
IV. PROCEDIMIENTO:
1. Identificar las fases A, B, C y D del Motor Paso a Paso Unipolar. Luego realice un dibujo del
mismo indicando las fases y el punto comn.
2. Implementar el circuito de control de motores paso a paso Unipolar a base de transistor como
muestra la figura 1. La simulacin y conexin en Proteus se muestra en la figura 2.
2 3 4 5
Arduino Uno R3
Comn
Fig 1.- Las fases estan indicadas por A, B, C y D con los pines del arduino 2, 3, 4 y
5 respectivamente.
El punto comn del motor PaP +Vs puede conectarlo a +5V del arduino o a una fuente externa en
el caso que el motor PaP sea demasiado grande y consuma mayor corriente que 0.5 A.
ARD1
VCC
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6 R4
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK 1k
PC2/ADC2 3
A3 ~ PD3/INT1 1k
PC3/ADC3 2
A4 PD2/INT0 1k
PC4/ADC4/SDA 1
A5 TX PD1/TXD 1k
PC5/ADC5/SCL 0
RX PD0/RXD
Q1 Q2 Q3 Q4
ARDUINO UNO R3 2N2222 2N2222 2N2222 2N2222
Fig 2.- La simulacin en Proteus de Arduino, etapa de potencia (4 transistores) y el motor PaP
3. Realice el programa de control del motor paso a paso Unipolar, se muestran 3 casos de
programacin. Pruebe las 3 opciones y vea cul de ellos trabaja mejor.
Opcin 1: Este cdigo que realiza una secuencia simple de 4 pasos, un patrn de secuencia A-B-C-D.
void setup(){
pinMode(A, OUTPUT); digitalWrite(A, LOW);
pinMode(B, OUTPUT); digitalWrite(B, LOW);
pinMode(C, OUTPUT); digitalWrite(C, LOW);
pinMode(D, OUTPUT); digitalWrite(D, LOW);
}
void loop(){
digitalWrite(A, HIGH); // Primer paso
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
delay(retardo);
digitalWrite(A, LOW); // Segundo paso
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
delay(retardo);
digitalWrite(A, LOW); // Tercer paso
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
delay(retardo);
digitalWrite(A, LOW); // Cuarto paso
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
delay(retardo);
}
void setup() {
myStepper.setSpeed(600); // fija la velocidad del motor a 60 rpm:
Serial.begin(9600); // Initialize the serial port:
}
void loop() {
Serial.println("clockwise"); // CW: step one revolution in one direction:
myStepper.step(stepsPerRevolution); // Girar una vuelta entera en un sentido
delay(500);
Serial.println("counterclockwise"); // CCW:step one revolution in the other direction:
myStepper.step(-stepsPerRevolution); //Girar una vuelta entera en sentido contrario
delay(500);
}
/* -------------------------------------------------------------------------------------
Programa de Motor Paso a Paso con Array
Moviendo un motor paso a paso Unipolar en medio Paso con Arduino
*/ ----------------------------------------------------------------------------------------
#define A 2
#define B 3
#define C 4
#define D 5
//int ledPins[] = { 2, 3, 4, 5 };
int Paso [ 8 ][ 4 ] =
{ {1, 0, 0, 0},
{1, 1, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 1, 0},
{0, 0, 1, 1},
{0, 0, 0, 1},
{1, 0, 0, 1}
};
void setup()
{
Serial.begin(9600);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
}
void loop()
{ while (steps_left > 0)
{
stepper() ; // Avanza un paso
steps_left-- ; // Un paso menos
delay (10) ; //Por defecto es 1 a 10
}
delay(20);
Direction = !Direction;
steps_left = 4063; //Define el nmero de pasos para 1 revolucin
}
SetDirection();
}
void SetDirection()
{
if (Direction)
Steps++;
else
Steps--;
Steps = ( Steps + 7 ) % 7 ;
}
6. Coloque al eje con una cinta oscura, marque una referencia 0, corra el programa y cuente el
nmero de pasos que realiza en una revolucin. Cunto es el ngulo de cada paso en paso
completo? Cunto es el ngulo de cada paso en Medio Paso?
7. Aumente la frecuencia de la seal de pulsos, mediante el programa con Arduino; vea el efecto
en el Motor. A que se debe dicho fenmeno? Qu frecuencia mxima soporta el motor paso
a paso en estudio?
__________________________________________________
__________________________________________________
INFORME FINAL:
Ref: 0
72 1.8
2