Está en la página 1de 6

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERA

ESCUELA ACADMICO PROFESIONAL DE INGENIERA MECNICA


CURSO : CONTROL AUTOMTICO
AO DE ESTUDIOS : X SEMESTRE : II

L A B O R A T O R I O No. 03

CONTROL NUMERICO DE MOTOR PASO A PASO

I. OBJETIVOS:
- Identificar los motores Paso a Paso Unipolares y Bipolares
- Usar el transistor como driver del Motor Paso a Paso.

II. MATERIALES Y EQUIPO


1 Computador con programa Arduino ver 1.6.7 para Windows 7 (para
win8 usar versin 8.2 o actual)
1 Tarjeta Arduino Uno o Arduino Mega + 1 cable de conexin USB
1 Motor paso a Paso Unipolar de 5 o 6 cables + driver ULN2003
4 Transistores 2N2222 o su equivalente BD135 (no es necesario si
tiene el driver ULN2003)
4 resistencias de 1K (no es necesario si tiene el driver ULN2003)
1 Protoboard + cables de conexionado + un alicate pequeo o
cortacables (de ser necesario)
1 Multmetro (opcional)

III. FUNDAMENTO TEORICO :

Cmo controlar un motor paso a paso Unipolar con Arduino?


El sistema completo para el control de un motor mediante Arduino se muestra en el siguiente
diagrama:
Driver o interface
de potencia
Arduino Uno R3

Motor Paso a
Paso Unipolar

Cada fase (A, B, C y D) se encuentra conectada a la salida de un convertidor en puente de cuatro


transistores 2N222 (o BD135) en modo de corte y saturacin controlados. El control de corriente
por lo devanados del motor PaP se realiza por medio de la secuencia que realizan los transistores
de las ramas inferiores a travs de un circuito lgico.

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:

MSc. Alberto E. Cohaila Barrios. 1/6 Fecha: 27-09-17


Acadmico
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA MECNICA
CURSO : CONTROL AUTOMTICO
AO DE ESTUDIOS : X SEMESTRE : II

de 6 hilos

C D

Secuencia de control de los Motores Paso a Paso Unipolar


Hay tres secuencias para controlar los motores paso a paso unipolares

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.

MSc. Alberto E. Cohaila Barrios. 2/6 Fecha: 27-09-17


Acadmico
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA MECNICA
CURSO : CONTROL AUTOMTICO
AO DE ESTUDIOS : X SEMESTRE : II

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

Comn del Motor


(conectara +5V)
Motor PaP Unipolar Color rojo
AREF
A B
13
PB5/SCK
12 Caracteristicas:
PB4/MISO
RESET 11 - 1.8 grados/paso
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
10 D C
9 +88.8
~ PB1/OC1A Grados (0-360)
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121

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.

//Programa de control de Motor Paso a Paso Unipolar


//Declaramos los cables o pines del motor Unipolar: A, B, C y D
int A = 2; //Pin conectado a un extremo de la bobina 1
int B = 3; //Pin conectado al otro extremo de la bobina 1

MSc. Alberto E. Cohaila Barrios. 3/6 Fecha: 27-09-17


Acadmico
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA MECNICA
CURSO : CONTROL AUTOMTICO
AO DE ESTUDIOS : X SEMESTRE : II

int C = 4; //Pin conectado a un extremo de la bobina 2


int D = 5; //Pin conectado al otro extremo de la bobina 2
int retardo = 25; //Tiempo que determina la velocidad de giro

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);
}

Opcin 2: Uso de librera Stteper. En la ventana de arduino: Archivo>> Ejemplos>> Stteper>>


Stteper_oneRevolution
Cambie la secuencia a: Stepper myStepper(stepsPerRevolution, 2, 4, 3, 5);
#include <Stepper.h>
const int stepsPerRevolution = 4063; //cambie este por el nmero de pasos por
//revolucin para su motor
// Inicializa la librera de stepper desde el pin 2 al 5:
Stepper myStepper(stepsPerRevolution, 2, 4, 3, 5);

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);
}

MSc. Alberto E. Cohaila Barrios. 4/6 Fecha: 27-09-17


Acadmico
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA MECNICA
CURSO : CONTROL AUTOMTICO
AO DE ESTUDIOS : X SEMESTRE : II

Opcin 3: Modo de paso Completo mediante el uso de Array. Mtodo ms complicado

/* -------------------------------------------------------------------------------------
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 steps_left = 4063; //Define el nmero de pasos para 1 revolucin


boolean Direction = true;
int Steps = 0;

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
}

void stepper() //Avanza un paso


{
digitalWrite( A, Paso[Steps][ 0] );
digitalWrite( B, Paso[Steps][ 1] );
digitalWrite( C, Paso[Steps][ 2] );
digitalWrite( D, Paso[Steps][ 3] );

SetDirection();
}

void SetDirection()

MSc. Alberto E. Cohaila Barrios. 5/6 Fecha: 27-09-17


Acadmico
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA MECNICA
CURSO : CONTROL AUTOMTICO
AO DE ESTUDIOS : X SEMESTRE : II

{
if (Direction)
Steps++;
else
Steps--;

Steps = ( Steps + 7 ) % 7 ;
}

4. Cul de las tres opciones mostradas es la mejor? Justifique su respuesta.


___________________________________________________________
___________________________________________________________
5. Ahora mediante la opcin elegida del paso 4. Realice las 3 secuencias de control, es decir:
Simple, Normal y Medio Paso.

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?

Nro Pasos/rev = _____________


Angulo de cada Paso PASO_COMPLETO = __________
Angulo de cada Paso 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:

1. Realizar todos los pasos del presente laboratorio.


2. Qu utilidad puede rescatar de los motores paso a paso en su carrera de Ingeniera.
3. Proponga un graficador X-Y mediante el uso de los motores paso a paso. As mismo el programa
respectivo en Arduino.
4. Realizar un programa y simulacin mediante Arduino que indique el Angulo de posicin del motor
paso a paso y lo visualice en el Monitor serial. Puede ser til tambin el uso de un potencimetro
como control de Angulo del motor paso a paso.
5. Considere un grado de libertad de un eslabn. Tambin considere que tiene un motor paso a paso
de 200 pasos/rev (es decir 1.8 grados por paso). Tomando como referencia 0 grados, Ud desea
desplazarse angularmente 72 grados a la derecha, luego retroceder 1.8 grados (es decir a la
izquierda. Despus de 10 segundos debe regresar a su posicin de referencia (es decir 0).
a) Realice un diagrama de bloques del sistema propuesto
b) Realice un diagrama de flujo del algoritmo propuesto.
c) Realice el programa en arduino y la simulacin respectiva en Proteus que modele dicha
trayectoria angular.

Ref: 0

72 1.8
2

6. De 3 observaciones importantes del presente laboratorio


7. De 3 conclusiones relevantes.

MSc. Alberto E. Cohaila Barrios. 6/6 Fecha: 27-09-17


Acadmico

También podría gustarte