Ascensor en c++ controlado por puerto paralelo PC

#1
Buenas tardes,

Alguien puede compartirme un programa en Visual c++ para controlar un ascensor de 4 pisos por medio de un paralelo...?? Por favor.
Es algo urgente y no he podido!!

Muchas Gracias
 
#2
Hi Vanenvr,
enviar datos por el puerto paralelo es sencillo pero para controlar el Ascensor,
se necesita el protocolo que lo controla, para saber que dato enviar.
Supongo que dependiendo el dato que se trasmite es el piso en que se ubicaria el
ascensor.
:)


/*******************************************************************
* FUNCIONES DE PUERTO PARALELO *
*******************************************************************/
[/SIZE]void receive_string_LPT(unsigned char *a)
{
DWORD bytesRead;
UCHAR r:LOL:ata = 1;
unsigned char c;
c=0; //inicializa variable
do{
ReadFile(hParallel, &r:LOL:ata, sizeof(r:LOL:ata), &bytesRead, NULL); //lee dato del puerto
*(a+c) = r:LOL:ata; //agrega dato a la cadena
c++; //incrementa el contador de c
}while(r:LOL:ata != 0x0A && r:LOL:ata != 0x0); //mientras no sea un Return o nulo
}
void send_byte_LPT(unsigned char Data)
{
DWORD bytesSent;
UCHAR t:LOL:ata;
t:LOL:ata = Data; //asigna valor a trasmitir
WriteFile(hParallel, &t:LOL:ata, sizeof(t:LOL:ata), &bytesSent, NULL); //envia byte por puerto
}
unsigned char init_LPT(void)
{
COMMTIMEOUTS parallelTimeouts; //estatus de puerto
LPCWSTR gszPort;
gszPort = LPT;
SetLastError(0); //cancela ultimo error
hParallel = CreateFile( gszPort, //crea connection a comm
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0, //FILE_FLAG_OVERLAPPED,
0);
if(hParallel == INVALID_HANDLE_VALUE)return(0); //envia error
parallelTimeouts.ReadIntervalTimeout = MAXDWORD;
parallelTimeouts.ReadTotalTimeoutMultiplier = 0;
parallelTimeouts.ReadTotalTimeoutConstant = 0;
parallelTimeouts.WriteTotalTimeoutMultiplier = 0;
parallelTimeouts.WriteTotalTimeoutConstant = 0;
SetCommTimeouts(hParallel, &parallelTimeouts);
return(1); //envia OK
}
 
#3
Gracias Unikfriend. Mira, ya se cómo hacer para que el paralelo me tome los datos.
Lo que me tiene dando vueltas es cómo hago para que los sensores me detecten en cual piso estoy.
y que bajen y suban :$
 
#4
Hi amiga,
necesitas poner un poquito mas información.
Es un trabajo escolar o es un proyecto propio?
que tipo de sensores son?
Fotosensores, switches, pushbuttons?
que tipo de motor vas a utilizar para mover el ascensor?
que tan elaborado va hacer tu modelo? para saber que sugerirte.

El puerto paralelo maneja entradas y salidas de 5 volts.
Si se trata de un trabajo escolar yo utilizaria un fotosensor de
Fairchild H21A1 o H21LO. Estos sensores te producen una salida
de 5 volts cuando no hay ningun objeto interrumpiendo el haz de luz
y 0 volts cuando lo obstruyes.

Si necesitas ayuda con el diseño del circuito, te puedo pasar algunos
esquematicos.

:)
 
Arriba