Haz una pregunta
  Foros de Electrónica » Temas de Interés » Dudas en general
Foros Registrarse ¿Olvidaste tu contraseña?
10/06/2011 #1

Avatar de vanenvr

Ascensor en c++ controlado por puerto paralelo PC
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
10/06/2011 #2

Avatar de Unikfriend

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 *
************************************************** *****************/
void receive_string_LPT(unsignedchar *a)
{
DWORD bytesRead;
UCHAR rxData = 1;
unsignedchar c;
c=0;
//inicializa variable
do{
ReadFile(hParallel, &rxData,
sizeof(rxData), &bytesRead, NULL); //lee dato del puerto
*(a+c) = rxData; //agrega dato a la cadena
c++; //incrementa el contador de c
}while(rxData != 0x0A && rxData != 0x0); //mientras no sea un Return o nulo
}
void send_byte_LPT(unsignedchar Data)
{
DWORD bytesSent;
UCHAR txData;
txData = Data;
//asigna valor a trasmitir
WriteFile(hParallel, &txData, sizeof(txData), &bytesSent, NULL); //envia byte por puerto
}
unsignedchar 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
}
10/06/2011 #3

Avatar de vanenvr

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 :$
10/06/2011 #4

Avatar de Unikfriend

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.

Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Dudas en general

Aquí se tratan todos los temas relacionados con la electrónica en general.

Cerrar
Foros de Electrónica » Temas de Interés » Dudas en general

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.