Pc`s Software Tecnologia
  control de motor CC(matlab)
 


DISEÑO DE LA VENTANA DE CONTROL DE VELOCIDAD Y SENTIDO DE GIRO

 El diseño fue realizado en GUI (Matlab)

 

IMPLEMENTACION DEL PROGRAMA EN MATLAB

 

 

ACTIVACION O ENCENDIDO.-

 

function Encender_Callback(hObject, eventdata, handles)

% hObject    handle to Encender (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

 

set(handles.anti,'enable','on')

set(handles.hor,'enable','on')

set(handles.Parar,'enable','on')

set(handles.Apagar,'enable','on')

 

 

dio = digitalio('parallel','LPT1');

hwlines = addline(dio,0:7,'out');

putvalue(dio,62);

set(handles.Encender,'enable','off')

 

ELECCION DEL SENTIDO DE GIRO.-

 

SENTIDO HORARIO.-

 

function hor_Callback(hObject, eventdata, handles)

% hObject    handle to hor (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(handles.velocidad,'enable','on')

 

dio = digitalio('parallel','LPT1');

hwlines = addline(dio,0:7,'out');

giro2=62

putvalue(dio,giro2);

set(handles.acum1,'string',giro2);

 

SENTIDO ANTIHORARIO.-

 

function anti_Callback(hObject, eventdata, handles)

% hObject    handle to anti (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(handles.velocidad,'enable','on')

 

dio = digitalio('parallel','LPT1');

hwlines = addline(dio,0:7,'out');

 

giro1=61

putvalue(dio,giro1);

set(handles.acum1,'string',giro1);

 

 

 

CONTROL DE LA VELOCIDAD

 

 

function velocidad_Callback(hObject, eventdata, handles)

% hObject    handle to velocidad (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(handles.Encender,'enable','off');

dio = digitalio('parallel','LPT1');

hwlines = addline(dio,0:7,'out');

 

 

 vel=get(handles.velocidad,'value');

 

cont1=str2double(get(handles.acum1,'string'));

 

if cont1==61

   

set(handles.acum,'string',vel(1));

cont=str2double(get(handles.acum,'string'));

if cont==0

    putvalue(dio,1);

    g1=1;

end

if cont>0 & cont <=1

    putvalue(dio,5);

    g1=5;

end

if cont>1 & cont <=2

    putvalue(dio,13);

    g1=13;

end

if cont>2 & cont <=3

    putvalue(dio,29);

    g1=29;

end

if cont>3 & cont <=4

    putvalue(dio,61);

    g1=61;

   

end

set(handles.acum2,'string',g1);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

else

    set(handles.acum,'string',vel(1));

cont=str2double(get(handles.acum,'string'));

if cont==0

    putvalue(dio,2);

    g2=2;

end

if cont>0 & cont <=1

    putvalue(dio,6);

    g2=6;

end

if cont>1 & cont <=2

    putvalue(dio,14);

    g2=14;

end

if cont>2 & cont <=3

    putvalue(dio,30);

    g2=30;

end

if cont>3 & cont <=4

    putvalue(dio,62);

    g2=62;

end

set(handles.acum3,'string',g2);

end

   

 

% Hints: get(hObject,'Value') returns position of slider

%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider

 

 

% --- Executes on button press in Parar.

 

Opcion ideal pwm(proximamente codificacion completa en zip o en .m y .fig o escribanme para enviarlo)

(se necesita realizar la codificacion para los botones de giro antihorario y horario y encender )

"codificacion de la barra deslizante"

"Error de control en el lazo "for" se demora en responder en la velocidad si algien puede modificarlo y mejorarlo avisenme

 (se puede realizar en vez del primer for un While pero se vuelve  aun mas lento)"

function velocidad_Callback(hObject, eventdata, handles)

% hObject    handle to velocidad (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(handles.Encender,'enable','off')

dio = digitalio('parallel','LPT1');

hwlines = addline(dio,0:7,'out');

vel=get(handles.velocidad,'value');

 

   

set(handles.acum,'string',vel(1));

cont=str2double(get(handles.acum,'string'))

 

for j=1:30

    for i=0:1:4

        if i>cont

            dio = digitalio('parallel','LPT1');

            hwlines = addline(dio,0:7,'out');

            putvalue(dio,65);

        else

            dio = digitalio('parallel','LPT1');

            hwlines = addline(dio,0:7,'out');

            putvalue(dio,0);

        end

    end

end

 

DESACTIVACION O APAGADO.-

 

function Apagar_Callback(hObject, eventdata, handles)

% hObject    handle to Apagar (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(handles.Encender,'enable','on')

set(handles.anti,'enable','off')

set(handles.velocidad,'enable','off')

set(handles.hor,'enable','off')

set(handles.Parar,'enable','off')

set(handles.Apagar,'enable','off')

dio = digitalio('parallel','LPT1');

hwlines = addline(dio,0:7,'out');

putvalue(dio,0);

 

DISTRIBUCION DE LOS PINES DEL PUERTO PARALELO.-

 
 



 

Diagrama Circuital Sin Pwm (Regulacion de velocidad Por amplitud)


 

Para ver la imagen hacer guardar imagen como.
 

Para mas informacion escribeme a mi (E-mail) en contactos
ivancuricho@gmail.com
 
  Visitas 9256 visitantes (19027 clics a subpáginas) ¡Aqui en esta página!  
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis