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