Arriba

Tmendoza@miajas.com      

PrincipalSemáforo
Simulación



Diseño de una placa semáforo, para controlarla desde el puerto paralelo del PC
(control de dispositivos)

Materiales:
3 resistencias de 1Kohmio
3 leds
conector DB-25 
placa de fibra de vidrio
taladro y broca 1 mm.
soldador y estaño

Este proyecto utiliza un programa de interfaz que activa 3 bits del puerto de impresora de un PC. 
Puede ser controlado desde  programas escritos en  QBasic: control directo, temporizadores, secuenciadores, etc.



   


MÓDULO SEMÁFORO-PC

 




 
 



El esquema puede realizarse con WorkBench o Proteus. Ver simulación


 




  Esquema y placa obtenida con Proteus
   
 

Como el diseño es muy simple, también puede dibujarse directamente sobre la placa de cobre con un rotulador indeleble (de los usados para CD). 

   

            
Los leds se conectan a través de una resistencia de 1K a los bits D0,D1 y D2 del byte de salida del puerto paralelo (pin 2, 3 y 4) y la masa a los pines 18..25.

   

Este es el mismo circuito simulado con el programa WorkBench. Puedes descargarlo haciendo click en el enlace y probarlo. Los leds se activan con las teclas A, S y D

Simulación con WorkBench


   



   

CONTROL DESDE EL PC. 
Pruebas de funcionamiento: 

 - Desde la carpeta semaforoPC, abre el programa de control Prsemaforo.exe que controla el dispositivo conectado al puerto paralelo y selecciona la opción Leer de QBasic.

 - Desde la misma carpeta semaforoPC, ejecuta QBasic y abre el archivo  WPRUEBA.BAS que contiene el código que envía al interfaz los números que pulses por teclado ( 1, 2 o 3) y que activan las luces tanto en el semáforo virtual  como en el real.

Este es el código del programa QBasic:

DECLARE SUB portLPT (T AS STRING)
REM ejecutar desde la misma carpeta que la aplicación Delphi!

TYPE TestRecord
dato AS STRING * 18
END TYPE
DIM SHARED MyDato AS TestRecord

CLS
PRINT
PRINT
PRINT " CONTROL DEL SEMAFORO CONECTADO AL PUERTO "
PRINT
PRINT " Abre el programa del semáforo y"
PRINT " selecciona el led que quieres encender"
PRINT " (1= verde, 2=naranja o 3=rojo) 0=parar "
COLOR 14

R$ = "1"
WHILE R$ <> "0"

LOCATE 10, 3
PRINT "escribe el Nº de led que quieres encender: ";
R$ = INKEY$
IF R$ <> "" THEN PRINT R$
IF R$ = "1" OR R$ = "2" OR R$ = "3" THEN portLPT (R$)
FOR Z = 1 TO 3000: NEXT Z

WEND

SUB portLPT (T AS STRING)
OPEN "prueba.txt" FOR RANDOM AS #1 LEN = LEN(MyDato)
MyDato.dato = T
PUT #1, 1, MyDato
CLOSE #1
END SUB

   
   
   

  (c) miajas.com

   
El programa interfaz Prsemaforo está diseñado en Delphi y necesita la librería InpOut32.dll para poder acceder al puerto de impresora. Puedes descargar todos los archivos desde aquí: 

Ver simulación    

descargar archivos 

 

   

 

   

23/11/2004