Usando el Puerto Paralelo
para controlar un Motor PAP
Aquí vamos a ver como usar, el puerto paralelo, para controlar un Motor PAP, para simular este tutorial, voy a usar Proteus Lite, con la Librería LPT02.lib y el Modelo Port.dll, que ya los he usado antes, en el anterior tutorial de cómo usar el Puerto Paralelo.
Este los puedes bajar de Aquí
Los Motores PAP funcionan secuencialmente, es decir hay que darles una secuencia de Bits para se muevan.
Ahora los pasos, dependen del Motor. Si fueran de 90°, Para darles :
Vuelta 360° a la Derecha : 0011, 0110, 1100, 1001
Vuelta 360° a la Izquierda : 1100, 0110, 0011, 1001
Paso a la Derecha : Roto a la Derecha.
Paso a la Izquierda : Roto a la Izquierda.
Ahora para simular el Esquema anterior hecho en Proteus – Isis, debemos tener un programa. En este caso, lo voy hacer en Visual C++, pero en modo consola.
El código del programa es el siguiente
//Prueba1.cpp
//Encabezados
#include<conio.h>
#include<windows.h>
#include<iostream.h>
/* ----Prototipo de Inp y Outp--- */
short _stdcall Inp32(short PortAddress);
void _stdcall Out32(short PortAddress,short data);
/*--------------------------------*/
/*------Prototipo de mis Funciones------*/
void PrintMenu (void);
/*--------------------------------*/
void main(void){
//declaro mis variables
short port,dato;
int i;
char opcion;
port=0x378;
//como dato es Word, declaro los bits
//de tal manera q al rotar no cambien
//y no tenga problemas en dar el Paso
_asm mov dato,0011001100110011b
PrintMenu();//Imprimo Mensaje en Pantalla
//Creo un Bucle
Out32(port,0x00);
for(;;){
opcion=_getch();//Elijo Opción
switch(opcion){
case '4'://Derecha Vuelta
//Como paso de 90° son 4 rol
for(i =0;i<4;i++) {
_asm rol dato,1;
Out32(port,dato);
Sleep(500); }
break;
case '6'://Izquierda Vuelta
//Como paso de 90° son 4 Ror
for(i =0;i<4;i++) {
_asm ror dato,1;
Out32(port,dato);
Sleep(500); }
break;
case '8'://Paso Derecha
_asm rol dato,1
Out32(port,dato);
Sleep(500);
break;
case '2'://Paso Izquierda
_asm ror dato,1
Out32(port,dato);
Sleep(500);
break;
case 0x1B :return;
}
//opcion= 0x00;
Out32(port,0x00);
}
return;
}
void PrintMenu(void){
cout<<endl<<endl<<endl<<endl;
cout<<" Vamos ha usar el Teclado Numerico"<<endl<<endl;
cout<<" Escoge Opcion :"<<endl;
cout<<" ============="<<endl<<endl;
cout<<" [8] "<<endl;
cout<<" [4] [6]"<<endl;
cout<<" [2] "<<endl<<endl;
cout<<" 8: Izquierda un Paso"<<endl;
cout<<" 2: Derecha un Paso"<<endl;
cout<<" 4: Izquierda una vuelta"<<endl;
cout<<" 6: Derecha una vuelta"<<endl;
return;
}
Ahora Simulamos este Programa y Obtenemos:
Yoel Ocmin |
||
yoelocmin@hotmail.com | http://proyectosfie.tk | http://yoelocmin.tk |
UNMSM - LIMA - PERÚ |
Martes, 26 de Julio de 2005 11:49:47