Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more ➡
Download
Standard view
Full view
of .
Add note
Save to My Library
Sync to mobile
Look up keyword
Like this
41Activity
×
0 of .
Results for:
No results containing your search query
P. 1
Control de Motor Paso a Paso Usando Matlab

Control de Motor Paso a Paso Usando Matlab

Ratings: (0)|Views: 4,183|Likes:
Published by servtelpro
CONTROL DE MOTOR PASO A PASO USANDO MATLAB
CONTROL DE MOTOR PASO A PASO USANDO MATLAB

More info:

Published by: servtelpro on Apr 16, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, DOC, TXT or read online from Scribd
See More
See less

07/22/2013

pdf

text

original

 
APLICATIVOS ELECTRONICOS II -2009PROYECTO FINAL DEL CURSOTITULO CONTROL DE MOTOR PASO A PASO USANDO MATLAB
OBJETIVOEl presente LABORATORIO contiene una breve introducción sobre los motores paso apaso así como el código de un programa desarrollado en Matlab 7.1 para controlar su velocidad ydirección de giro. El programa es una función y una GUI, donde se puede controlar los pasos delmotor, velocidad y dirección de giro.1.- INTRODUCCIÓNLos motores paso a paso son ideales para la construcción de mecanismos en donde se requierenmovimientos muy precisos. La característica de estos motores es poder moverlos un paso a la vezpor cada pulso que se le aplique.2.- DESARROLLO DEL PROGRAMA2.1 Matlab posee comandos sencillos para el control del puerto paralelo. Basta con crear laentrada digital del puerto y asignar que pines son de entrada y cuales de salida.
ent= digitalio('parallel','LPT1');  dato= addline(ent,0:4,'out');  putvalue(dato,2); 
El código anterior crea la entrada digital del puerto paralelo, asigna los pines 2 a 5 como salidas yescribe el valor decimal 2 (Matlab realiza automáticamente la conversión a binario) en el puerto.Las condiciones iniciales del programa colocan a cero los pines de puerto paralelo:
diego= digitalio('parallel','LPT1');  dato= addline(diego,0:3,'out');  putvalue(dato,0); 
2.2 Desarrollo de la interfaz gráfica con el usuarioComo se puede ver en la figura 1, lo único que se debe programar en la interfaz gráfica es lacaptura del retardo, la dirección de giro y el encendido-apagado del motor.
Fig. 1. Entorno del programa motor.
La mayor parte del código se programa en el toggle button ON-OFF, cuyo campo Tag esstate. Sin embargo, es necesario un código adicional para el texto del botón-interruptor de la dirección:
f=get(handles.direction,'Value');  iff==1 set(handles.direction,'String','DIRECTION ''L'''); else set(handles.direction,'String','DIRECTION ''R'''); end 
1
 
2.3 La secuencia que se envía al motor es:La programación del botón de encendido es:
d=get(hObject,'Value');  ifd==1 set(handles.state,'String','ON');  diego=digitalio('parallel','LPT1');  dato=addline(diego,0:3,'out');  g=1; whileg e=get(handles.direction,'Value');  ife==0 mov=[3 6 12 9]; else mov=[9 12 6 3]; end delay=str2double(get(handles.speed,'String'))*1e-3;  ifdelay<0 ||isnan(delay) errordlg('Time out of range','ERROR');  delay=500; set(handles.speed,'String',500);  set(handles.state,'String','OFF');  set(handles.state,'Value',0);  break; end ifget(hObject,'Value')==0  break end putvalue(dato,mov(1)); pause(delay); ifget(hObject,'Value')==0  break end putvalue(dato,mov(2)); pause(delay); ifget(hObject,'Value')==0  break end putvalue(dato,mov(3)); pause(delay); ifget(hObject,'Value')==0  break end putvalue(dato,mov(4)); pause(delay); end else set(handles.state,'String','OFF');  end 
3.- EsquemaPara la conexión del motor se puede usar el siguiente esquema:
2
 
Fig. 2. Esquema para conexión del motor 
.
La siguiente figura muestra el modelo ensayado y funcionando:
Fig.3. Circuito final.
4.- rutina de control del motor la siguiente función controla el número de pasos del motor, velocidad y dirección degiro:
functionmotor(step,delay,direction) %Controlling a stepper motor %step must be integer. %delay is in seconds. %direction: 1 or 2. %Author: Diego Orlando Barragán Guerrero %diegokillemall@yahoo.com warningoff ifnargin==1 delay=1;direction=1; elseifnargin==2 direction=1; end ifisnan(step)||step<0 error('Step value must be positive integer');  elseifdirection~=1 && direction~=2 error('Direction options: 1 or 2')  elseifisnan(delay)||delay<0 error('Delay value must be positive integer')  end step=ceil(step); 
3

Activity (41)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Roger Alvarado liked this
Esc11 liked this
Leger Black liked this
Joan Hernandez liked this
Beto Mendoza liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->