En este tema vamos a ver cómo prender y apagar leds mediante el puerto paralelo del computador.

Para lo cual vamos a necesitar las siguientes herramientas: ○ ○ ○ ○ ○ ○ 3 leds de diferentes colores 1 Protoboard Cable UTP (1 metro o metro y medio) 3 resistencias de 1 kilo ohmio Visual Basic 6.0 Unos cuantos pedazos de alambre (puede ser del mismo UTP)

Es recomendable tener unos cuantos leds más y unas cuantas resistencias más, por si acaso. Antes de ver el desarrollo del programa vamos a ver cómo armar el circuito. De hecho es muy sencillo, y se basa en el siguiente diagrama:

Diagrama del circuito Para poder entender mejor el circuito. Vamos a dar ciertos detalles sobre el puerto paralelo: Un puerto paralelo es una interfaz entre una computadora y un periférico cuya principal característica es que los bits de datos viajan juntos enviando un byte completo o más a la vez. Es decir, se implementa un cable o una vía física para cada bit de datos formando un bus. El cable paralelo es el conector físico entre el puerto paralelo y el periférico. En un puerto paralelo habrá una serie de bits de control en vías aparte que irán en ambos sentidos por caminos distintos.

En contraposición al puerto paralelo está el Puerto serie, que envía los datos bit a bit por el mismo hilo. El sistema operativo gestiona las interfaces de puerto paralelo con los nombres LPT1, LPT2 y así sucesivamente, las direcciones base de los dos primeros puertos es: LPT1 = 0×378. LPT2 = 0×278 La estructura consta de tres registros: de control, de estado y de datos. El registro de control es un bidireccional de 4 bits, con un bit de configuración que no tiene conexión al exterior, su dirección en el LPT1 es 0x37A. El registro de estado, se trata de un registro de entrada de información de 5 bits, su dirección en el LPT1 es 0×379. El registro de datos, se compone de 8 bits, es bidireccional. Su dirección en el LPT1 es 0×378. Conector DB25:

Conector DB25

la cual conduce la corriente eléctrica. El circuito que se va armar será montado sobre una plaqueta. Para limitar la corriente que pasa por los LEDs se usan las resistencias que se oponen al paso de ella.0. Cuando se active el pin el led se encenderá. Nuestro objetivo es controlar los diodos LEDs con la computadora. se puede controlar mediante la computadora una fila de LEDs los que se van a encender en una secuencia que nosotros vamos a controlar con un pequeño programa escrito en el lenguaje de programación Visual Basic 6. la resistencia se usa para limitar la intensidad y no pedir más de la que el puerto paralelo es capaz de dar (5 mA). Esta corriente debe ser del orden de los 10 mA (miliampers). para conectar el puerto con el circuito se necesitará el cable paralelo o conector . llamada “protoboard”. En este proyecto lo que se quiere mostrar es como. esto es encenderlos y apagarlos según como queramos.El Dataport se usa como salida El Statusport se usa como entrada El Controlport se usa de las dos formas anteriores Con esos antecedentes ahora vamos a explicar los detalles del circuito: El Circuito Donde dice "Pin puerto paralelo" puede ser cualquier Pin del 2 al 9. No olvidar hacer una conexión al pin 25 que es tierra El circuito consiste en un led con una resistencia. Para controlar un circuito externo con la computadora se usará el puerto paralelo de ella. Los LEDs son diodos que tienen la capacidad de emitir luz cuando circula una corriente por ellos. con un simple circuito.

Solo se deben usar tres entradas y tres salidas. Circuito armado en el protoboard . Como los pines están numerados del número 1 al 25. Las siguientes imágenes pueden ayudar a apreciar mejor la conexión del circuito: Grafíco 1.DB-25. Una vez construido el cable se lo puede conectar al protoboard. solo usaremos los pines numerados del 2 al 9. ya que son solo tres LEDs los que controlamos. Las tres salidas están conectadas por medio de una resistencia limitadora de corriente a una LED cada una. para nuestro circuito y la computadora. Estas resistencias son de un valor de 330 ohm y permite que circule una corriente de 10 mA (miliampere) por cada diodo. El paso siguiente es soldar cable fino UTP a los pines internos del conector. también se tiene que soldar un cable al pin 25 (que es el pin de masa o tierra eléctrica) para tener una descarga a tierra común.

Circuito armado en el protoboard .Grafíco 2. Circuito armado en el protoboard Grafíco 3.

Grafíco 4. Circuito armado en el protoboard . Circuito armado en el protoboard Grafíco 5.

Circuito armado en el protoboard . Circuito armado en el protoboard Grafíco 7.Grafíco 6.

Grafíco 8.dll. ○ El programa Para el programa de Visual Basic 6. El programa que hice lo puedes descargar desde el siguiente enlace: .dll. Circuito armado en el protoboard Grafíco 9. Para el presente proyecto se usará la librería io.0 se puede usar la librería inpout32. IO.dll o io. Circuito armado en el protoboard Las imágenes muestran cómo está hecha la conexión en el protoboard.DLL proporciona un conjunto de comandos útiles para leer y escribir en los puertos de E/S.

Es decir. esta forma de representar al mundo es la más natural. ¿Cómo es esto? Supongamos que estamos mirando el pronóstico meteorológico y nos enteramos que: Es un día soleado Hace calor El aire es húmedo La Temperatura es de 25. un peso. A una entrada digital se le puede adaptar un elemento de mando del estilo del interruptor de la figura 1 para establecer su valor.net/codigos/vb/varios/prender_y_apagar_leds_mediante_el_puert o_paralelo_usando_visual_basic_6_dot_0. frío o calor. Muchas señales analógicas se pueden tratar como digitales con circuitos muy sencillos.http://www. pero perfectamente posible.dll Sensores Por medio de sensores la computadora es capaz de conocer la situación del mundo exterior.2909 El archivo comprimido contiene el archivo io. Las señales digitales se interpretan en el PC utilizando voltajes cercanos a 0 V o a +5 V. dos valores posibles.mygnet. dado que todo su funcionamiento se basa en este esquema de “0” y “1”. El “percibir” los infinitos valores que puede tomar una temperatura. “si” o “no”. Cualquier dispositivo que se comporte de forma similar a éste es útil para el control de entradas digitales. 12ºc o 38.5ºc. Las primeras 3 respuestas se refieren a valores del tipo digital: sol o nubes.25ºc. la humedad puede tener cualquier valor entre 0% y 100%. una presión es algo mas complicado. Los primeros se interpretan como un “0” y los segundos como un “1” (ver apendice “Lógica TTL”). teniendo en cuenta el cambio que experimenta el sensor utilizado.3ºc La humedad relativa ambiente es del 45%. en el circuito de la figura 2 la LDR . Por ejemplo. seco o húmedo. Las dos ultimas son de tipo analógico: la temperatura puede ser de -10. Dada la naturaleza de la propia computadora.

(un tipo especial de resistencia que varía su valor de acuerdo a la luz que recibe) puede variar entre 10 MΩ en oscuridad hasta 600 MΩ a plena luz. Puesto que la mayoría de los puertos del PC son digitales. . Mediante un interruptor podemos conocer un dato tipo “si/no” del exterior. las señales analógicas entregadas por este tipo de sensores requerirán la utilización de circuitos de conversión analógico-digital.

subir una persiana o apagar la luz (digitales). Las salidas digitales no proporcionan mucha potencia.LDR: Un sensor analógico que no podemos leer sin digitalizarlo previamente. Ahora empecemos a conocer a fondo los puertos de la PC. Para encender un LED desde el puerto paralelo es necesario limitar la corriente mediante una resistencia. > Actuadores Cuando queremos cambiar el entorno podemos hacerlo también de dos maneras: digital o analógicamente. Los puertos digitales del PC nos permiten dar órdenes digitales de forma directa o podemos codificar estas señales digitales mediante un conversor digital/analógico para obtener una salida analógica. como mucho permiten iluminar un LED. > El puerto paralelo En 1981 IBM diseñó el puerto paralelo para manejar impresoras desde su gama . Con un circuito un poco mas elaborado es posible encender o apagar cualquier aparato que funcione con 220v. No se preocupen si todavía no comprenden estos esquemas. Podemos encender la calefacción. cuando llegue el momento los explicaremos paso a paso. o bien podemos aumentar el volumen de un televisor un 10% o regular el termostato de una estufa (analógicas). Pero se pueden utilizar para excitar un relé o un transistor que controlen el actuador.

0278h (LPT2) y 03BCh (LPT3). usando las señales restantes como control de la impresora. de tres registros de 8 bits localizados en direcciones adyacentes del espacio de E/S del PC. En cualquier PC actual podemos encontrar también este puerto. Esto simplifica la programación y la construcción de nuestros circuitos. Cada puerto requiere tres direcciones de memoria consecutivas del espacio de E/S (entrada-salida) del procesador para seleccionar todas sus posibilidades. sin que debamos mantener nosotros de alguna manera estos valores ahí. que ocupan tres direcciones de E/S. como se mencionó antes. El puerto paralelo estándar (SPP) consta. El sistema operativo DOS utilizado en esa época soportaba hasta tres puertos paralelos asignados como LPT1. LPT2 y LPT3. ya que hoy día las impresoras con conexión USB han reemplazado a las de interfaz paralela. la función normal del puerto consiste en transferir datos a una impresora mediante 8 líneas de salida de datos. Los registros se definen relativos a la dirección de E/S base (LPT_BASE) y son: LPT_BASE + 0: registro de DATOS LPT_BASE + 1: registro de ESTADO LPT_BASE + 2: registro de CONTROL REGISTROS Nombre DATOS ESTADO CONTROL habitual DIRECCIÓN Puerto 378h 379h 37Ah LPT1 Puerto 278h 279h 27Ah LPT2 E/S Puerto 3BCh 3BDh 3BEh LPT3 Como dijimos antes. el puerto consiste en un conector hembra de 25 pines (DB25) con doce salidas latch y cinco entradas. Las direcciones base estándar para los puertos paralelos son 0378h (LPT1). puede ser usado como . el puerto paralelo consta de tres registros (datos. Estos latches funcionan de la siguiente manera: cuando escribimos un valor en la dirección del puerto. este permanece presente en los pines del conector hasta que escribamos otro. y casi siempre desocupado. Un conector estándar macho de 25 pines aparecía en la parte trasera de la PC con el solo propósito de servir de comunicación (interfaz) con la impresora. Sin embrago.de microcomputadores PC/XT/AT. generalmente incluido directamente en el motherboard. Desde el punto de vista del hardware. Desde el punto de vista del software. estado y control) de 8 bits cada uno. con ocho líneas de “masa” (o “tierra”).

Las señales activas a nivel bajo aparecen con la barra de negación (por ejemplo. para luego ver como podemos aprovechar esto para construir una sencilla interfase: . Aprendamos que función cumplen cada uno de estos pines. Las etiquetas indican la función de cada pin cuando tiene conectada una impresora. Cuando se indica alto o bajo se refiere a la tensión en el pin del conector. Alto equivale a +5 V y bajo a 0 V en TTL. Función que cumple cada pin del conector del puerto paralelo. La figura anterior nos muestra la función de cada “patita” (pin de ahora en adelante) del puerto paralelo.un puerto E/S de propósito general por cualquier dispositivo o aplicación que se ajuste a sus posibilidades de entrada/salida. Strobe).

14 y 1. y casi siempre deberemos utilizar un circuito que amplifique esta señal para poder hacer algo útil con ella. por tanto. Las 8 líneas de datos en un puerto paralelo moderno son bidireccionales.8 líneas (pines) son para salida de datos (bits de DATOS).5 líneas son de entrada de datos (bits de ESTADO). 12. únicamente modificables a través del hardware externo. aunque se pueden utilizar también como entradas y. Sus valores son únicamente modificables a través de software. 13 y 15. Habitualmente son salidas. . 16. > Monitor del puerto paralelo Este sencillo circuito nos permitirá conocer el estado de cada uno de los pines de datos del puerto paralelo. del más al menos significativo. Este será nuestro primer circuito practico. D0) al pin 9 (dato 7.. . 10. . y los que están en “0” con un led apagado. . numerados del más significativo al menos: 17. indicando los que están en “1” con un led encendido. ver apéndice al final) que nos sirva como “piloto” para conocer el estado de cada pin.4 líneas son de control (bits de CONTROL). la corriente entregada es suficiente como para por ejemplo encender un led (diodo emisor de luz. es decir que tanto podemos escribir un dato en el y leerlo desde nuestra interfaz (usarlo como salida de información) como leer en el los datos que la interfaz escriba en el puerto. Estos pines son: 11. Debemos tener presente que la capacidad del puerto de entregar corriente por estos pines es muy limitada. Sin embargo. y van del pin 2 (dato 0. se pueden modificar tanto por software como por hardware.Las líneas de la 18 a la 25 son la tierra. D7).

y esta al ánodo del led.Circuito de nuestro monitor de puerto paralelo. La función que cumplen las resistencias es limitar la corriente que circule por cada led. Como se trata de un circuito muy simple. El cátodo de cada led se conecta a masa (cualquiera de los pines del 18 al 25). En el esquema vemos que cada uno de los pines de datos del puerto se encuentra conectado a una resistencia de 330 ohms. . lo construiremos soldando directamente las resistencias y los leds a una ficha DB25. así nos evitamos el construir una plaqueta de circuito impreso. ya que si los conectamos directamente al puerto circularía por ellos una corriente excesiva y los podríamos quemar.

En este ultimo caso. y luego el ánodo de cada led al otro extremo de las resistencias. podemos comprar un cable de extensión para el puerto paralelo. También necesitaremos un soldador de unos 20 o 30 Watts y algo de alambre de estaño con núcleo de resina. o bien a un cable de impresora sacarle la ficha del lado de esta y soldar ahí los LEDs y resistencias. . En caso que debido a la posición del CPU sea imposible ver los LEDs conectados de esta manera. y tener cuidado de aislar bien todos los terminales para evitar que un cortocircuito termine con el puerto. Es una buena idea tener a mano un alicate para cortar los terminales de los leds y las resistencias. y su costo total difícilmente supere los 3 o 4 u$s.Los componentes necesarios para este circuito los conseguimos en cualquier casa de electrónica. hay que usar un teste para identificar a que pin corresponde cada cable. Etapas en la construcción de nuestro monitor. También uniremos entre si todos los terminales correspondientes a los cátodos de los leds y el pin 18 del puerto. Primero soldamos uno de los terminales de las resistencias a cada uno de los pines 2 al 9 del conector.

BAS con el siguiente contenido: Declare Sub Out Lib "inpout16. Puerto. y creamos un modulo que llamaremos MODULE1. También necesitaremos un ComboBox llamado PUERTO que nos permitirá elegir en que LPT tenemos conectado el monitor. El listado del código de este formulario es el siguiente: Sub Form_Load () 'Genera el contenido del combo Puertos. Luego.> El software Para controlar los LEDs del monitor podemos bajar de internet un programa ya hecho (hay muchísimos) o bien crear uno.DLL deberemos cambiar todos los “16” por “32” en el código anterior. El primero llamado ENC(n) y el segundo APA(n).FRM deberemos crear dos arrays de botones. En Visual Basic comenzamos un nuevo proyecto.DLL si usamos un Windows de 16 bits). Index) . en el FORM1.Dll" Alias "Out16" (ByVal PortAddress As Integer. Puerto. Dato = BCF(X. con 8 elementos cada uno. Para ello usaremos Visual Basic (en este caso la versión 3. Estos botones permitirán el encendido y apagado de los LEDS en forma individual. ByVal Value As Integer) Declare Function Inp Lib "inpout16. X = Inp(Val(Puerto)) 'Ejecuta la rutina que pone en 0 el bit correspondiente. ya que corre sin problemas en casi cualquier computadora y versión de Windows).AddItem "&h378" Puerto.ListIndex = 0 End Sub Sub Apa_Click (Index As Integer) Dim X As Integer 'Obtiene el valor presente en el puerto.AddItem "&h3BC" 'Selecciona el LPT1 por default.DLL (o INPOUT16.AddItem "&h278" Puerto. Necesitaremos una DLL llamada INPOUT32.Dll" Alias "Inp16" (ByVal PortAddress As Integer) As Integer Importante: si usamos la DLL INPOUT32.

X = Inp(Val(Puerto)) 'Ejecuta la rutina que pone en 1 el bit correspondiente. y un Label explicando que hace cada control. .FRM con todos los controles colocados. Dato = BSF(X. Esta lógica considera un “0” lógico a los valores de tensión entre 0 y 2.'Envía el dato al puerto.5 y menor a 5 voltios. Index) 'Envía el dato al puerto. Dato End Sub Sub Enc_Click (Index As Integer) Dim X As Integer 'Obtiene el valor presente en el puerto. > APENDICE: Lógica TTL Recibe este nombre de “Transistor to Transistor Logic”. Out Val(Puerto).5 voltios. Out Val(Puerto). y es uno de los procedimientos que existen para construir circuitos integrados. Dato End Sub Aspecto del FORM1. y un “1” lógico a cualquier voltaje mayor que 3.

lo que lo hace muy practico para nuestros proyectos. 1/8 watt 8 Leds . Su consumo de corriente es muy bajo. Esquema y símbolo de un diodo LED. > APENDICE: Componentes a utilizar 1 conector DB25 macho 8 Resistencias de 330 ohm. del que se aprovecha el fotón que se emite al recombinarse un hueco con un electrón en su unión PN. El encapsulado transparente y el pequeño espejo situado bajo la juntura permiten aprovechar esta luz emitida como un indicador luminoso. > APENDICE: LED Un LED no es mas que un diodo.En este gráfico se puede ver con mayor claridad cada estado lógico y su nivel de tensión.

.. si se utilizaran leds de alto brillo conviene aumentar el valor de las resistencias a 560 ohm o mas. el circuito es por demas de simple. a continuacion la descripcion de como construirlo. se puede reciclar un cable de la interfaz de una disquetera.Circuito y software para encender leds con el puerto paralelo Este es un software y el hardware que hice para encender leds usando el puerto paralelo de la computadora.. solo el conector unas resistencias y cuatro leds. un conector DB25. cuatro resistencias de 470 ohm y cuatro diodos leds de bajo consumo. El hard: Se resume en un cable de 5 conductores.

com/files/144377794/Controlador. para usarlo simplemente hay que hacer click en los circulos para encender o apagar los leds. en este caso hay que hacer un circuito por cada salida que se quiera utilizar: Actualizacion 2: .El software: El software lo realize en visual basic.html Actualizacion: Si se desea encender y apagar artefactos electricos de mayor consumo se puede utilizar una interfaz con reles como la siguiente. El circuito tambien se puede ampliar para usar los pines del 2 al 9. hay que descomprimirlo en la misma carpeta el la dll. Descargart: http://rapidshare.rar.

en este caso utilizando optocopladores y triacs. .Este es otro circuito para encender artefactos de mayor consumo.

Sign up to vote on this title
UsefulNot useful