Led

22
5/13/2018 Led-slidepdf.com http://slidepdf.com/reader/full/led5571ff4349795991699cee05 1/22 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.

Transcript of Led

Page 1: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 1/22

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 datosformando 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.

Page 2: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 2/22

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

Page 3: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 3/22

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, 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). Cuando

se active el pin el led se encenderá.

En este proyecto lo que se quiere mostrar es como, con un simple circuito, 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.0.

El circuito que se va armar será montado sobre una plaqueta, la cual conduce la

corriente eléctrica, llamada “protoboard”.

Nuestro objetivo es controlar los diodos LEDs con la computadora, esto es encenderlos y

apagarlos según como queramos. Los LEDs son diodos que tienen la capacidad de emitirluz cuando circula una corriente por ellos. Esta corriente debe ser del orden de los 10

mA (miliampers). Para limitar la corriente que pasa por los LEDs se usan las resistencias

que se oponen al paso de ella.

Para controlar un circuito externo con la computadora se usará el puerto paralelo de

ella, para conectar el puerto con el circuito se necesitará el cable paralelo o conector

Page 4: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 4/22

DB-25. El paso siguiente es soldar cable fino UTP a los pines internos del conector.

Como los pines están numerados del número 1 al 25, solo usaremos los pines

numerados del 2 al 9, 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, para nuestro

circuito y la computadora. Una vez construido el cable se lo puede conectar al

protoboard.

Solo se deben usar tres entradas y tres salidas, 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. Estas resistencias son de un valor de 330 ohm y

permite que circule una corriente de 10 mA (miliampere) por cada diodo.

Las siguientes imágenes pueden ayudar a apreciar mejor la conexión del circuito:

Grafíco 1. Circuito armado en el protoboard

Page 5: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 5/22

Grafíco 2. Circuito armado en el protoboard

Grafíco 3. Circuito armado en el protoboard

Page 6: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 6/22

Grafíco 4. Circuito armado en el protoboard

Grafíco 5. Circuito armado en el protoboard

Page 7: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 7/22

Grafíco 6. Circuito armado en el protoboard

Grafíco 7. Circuito armado en el protoboard

Page 8: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 8/22

Grafíco 8. Circuito armado en el protoboard

Grafíco 9. Circuito armado en el protoboard

Las imágenes muestran cómo está hecha la conexión en el protoboard.

○ El programa 

Para el programa de Visual Basic 6.0 se puede usar la librería inpout32.dll o io.dll. Para

el presente proyecto se usará la librería io.dll. IO.DLL proporciona un conjunto de

comandos útiles para leer y escribir en los puertos de E/S.

El programa que hice lo puedes descargar desde el siguiente enlace:

Page 9: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 9/22

http://www.mygnet.net/codigos/vb/varios/prender_y_apagar_leds_mediante_el_puert

o_paralelo_usando_visual_basic_6_dot_0.2909

El archivo comprimido contiene el archivo io.dll

Sensores

Por medio de sensores la computadora es capaz de conocer la situación del

mundo exterior. ¿Cómo es esto? Supongamos que estamos mirando elpronóstico meteorológico y nos enteramos que:

- Es un día soleado- Hace calor- El aire es húmedo- La Temperatura es de 25.3ºc- La humedad relativa ambiente es del 45%.

Las primeras 3 respuestas se refieren a valores del tipo digital: sol o nubes, fríoo calor, seco o húmedo. Es decir, “si” o “no”, dos valores posibles. Las dos

ultimas son de tipo analógico: la temperatura puede ser de -10.25ºc, 12ºc o38.5ºc, la humedad puede tener cualquier valor entre 0% y 100%.

Las señales digitales se interpretan en el PC utilizando voltajes cercanos a 0 Vo a +5 V. Los primeros se interpretan como un “0” y los segundos como un“1” (ver apendice “Lógica TTL”). A una entrada digital se le puede adaptar unelemento de mando del estilo del interruptor de la figura 1 para establecer suvalor. Cualquier dispositivo que se comporte de forma similar a éste es útilpara el control de entradas digitales.

Dada la naturaleza de la propia computadora, esta forma de representar almundo es la más natural, dado que todo su funcionamiento se basa en esteesquema de “0” y “1”. El “percibir” los infinitos valores que puede tomar unatemperatura, un peso, una presión es algo mas complicado, peroperfectamente posible. Muchas señales analógicas se pueden tratar comodigitales con circuitos muy sencillos, teniendo en cuenta el cambio queexperimenta el sensor utilizado. Por ejemplo, en el circuito de la figura 2 la LDR 

Page 10: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 10/22

(un tipo especial de resistencia que varía su valor de acuerdo a la luz querecibe) 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, las señalesanalógicas entregadas por este tipo de sensores requerirán la utilización de

circuitos de conversión analógico-digital.

 Mediante un interruptor podemos conocer un dato tipo “si/no” del exterior.

Page 11: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 11/22

LDR: Un sensor analógico que no podemosleer sin digitalizarlo previamente.

  > Actuadores

Cuando queremos cambiar el entorno podemos hacerlo también de dos

maneras: digital o analógicamente. Podemos encender la calefacción, subiruna persiana o apagar la luz (digitales), o bien podemos aumentar el volumende un televisor un 10% o regular el termostato de una estufa (analógicas).

Los puertos digitales del PC nos permiten dar órdenes digitales de formadirecta o podemos codificar estas señales digitales mediante un conversordigital/analógico para obtener una salida analógica. Las salidas digitales noproporcionan mucha potencia; como mucho permiten iluminar un LED. Pero sepueden utilizar para excitar un relé o un transistor que controlen el actuador.

Para encender un LED desde el puerto paraleloes necesario limitar lacorriente mediante unaresistencia.

Con un circuito un poco mas elaborado es posibleencender o apagar cualquier aparato que funcione con220v.

No se preocupen si todavía no comprenden estos esquemas, cuando llegue elmomento los explicaremos paso a paso. Ahora empecemos a conocer a fondolos puertos de la PC.

 

> El puerto paralelo

En 1981 IBM diseñó el puerto paralelo para manejar impresoras desde su gama

Page 12: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 12/22

de microcomputadores PC/XT/AT. Un conector estándar macho de 25 pinesaparecía en la parte trasera de la PC con el solo propósito de servir decomunicación (interfaz) con la impresora. El sistema operativo DOS utilizado enesa época soportaba hasta tres puertos paralelos asignados como LPT1, LPT2y LPT3.

En cualquier PC actual podemos encontrar también este puerto, generalmenteincluido directamente en el motherboard, y casi siempre desocupado, ya quehoy día las impresoras con conexión USB han reemplazado a las de interfazparalela.

Desde el punto de vista del hardware, el puerto consiste en un conectorhembra de 25 pines (DB25) con doce salidas latch y cinco entradas, con ocholíneas de “masa” (o “tierra”). Estos latches funcionan de la siguiente manera:cuando escribimos un valor en la dirección del puerto, este permanecepresente en los pines del conector hasta que escribamos otro, sin que debamos

mantener nosotros de alguna manera estos valores ahí. Esto simplifica laprogramación y la construcción de nuestros circuitos.

Desde el punto de vista del software, el puerto paralelo consta de tres registros(datos, estado y control) de 8 bits cada uno, que ocupan tres direcciones deE/S. Cada puerto requiere tres direcciones de memoria consecutivas delespacio de E/S (entrada-salida) del procesador para seleccionar todas susposibilidades.

Las direcciones base estándar para los puertos paralelos son 0378h (LPT1),0278h (LPT2) y 03BCh (LPT3). El puerto paralelo estándar (SPP) consta, como

se mencionó antes, de tres registros de 8 bits localizados en direccionesadyacentes del espacio de E/S del PC. Los registros se definen relativos a ladirecció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 NombrehabitualDATOS ESTADO CONTROL

DIRECCIÓNE/S

Puerto 378h 379h 37Ah LPT1Puerto 278h 279h 27Ah LPT2Puerto 3BCh 3BDh 3BEh LPT3

Como dijimos antes, la función normal del puerto consiste en transferir datos auna impresora mediante 8 líneas de salida de datos, usando las señalesrestantes como control de la impresora. Sin embrago, puede ser usado como

Page 13: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 13/22

un puerto E/S de propósito general por cualquier dispositivo o aplicación que seajuste a sus posibilidades de entrada/salida.

 

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 enadelante) del puerto paralelo. Las etiquetas indican la función de cada pincuando tiene conectada una impresora. Las señales activas a nivel bajoaparecen con la barra de negación (por ejemplo, Strobe). Cuando se indica altoo bajo se refiere a la tensión en el pin del conector. Alto equivale a +5 V y bajoa 0 V en TTL. Aprendamos que función cumplen cada uno de estos pines, paraluego ver como podemos aprovechar esto para construir una sencilla interfase:

Page 14: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 14/22

- 8 líneas (pines) son para salida de datos (bits de DATOS). Sus valores sonúnicamente modificables a través de software, y van del pin 2 (dato 0, D0) alpin 9 (dato 7, D7).

- 5 líneas son de entrada de datos (bits de ESTADO), únicamente modificables

a través del hardware externo. Estos pines son: 11, 10, 12, 13 y 15, del más almenos significativo.

- 4 líneas son de control (bits de CONTROL), numerados del más significativo almenos: 17, 16, 14 y 1. Habitualmente son salidas, aunque se pueden utilizartambién como entradas y, por tanto, se pueden modificar tanto por softwarecomo por hardware.

- Las líneas de la 18 a la 25 son la tierra.

Las 8 líneas de datos en un puerto paralelo moderno son bidireccionales, esdecir 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 interfazescriba en el puerto.

Debemos tener presente que la capacidad del puerto de entregar corriente porestos pines es muy limitada, y casi siempre deberemos utilizar un circuito queamplifique esta señal para poder hacer algo útil con ella. Sin embargo, lacorriente entregada es suficiente como para por ejemplo encender un led(diodo emisor de luz, ver apéndice al final) que nos sirva como “piloto” paraconocer el estado de cada pin. Este será nuestro primer circuito practico.

 

> Monitor del puerto paralelo

Este sencillo circuito nos permitirá conocer el estado de cada uno de los pinesde datos del puerto paralelo, indicando los que están en “1” con un ledencendido, y los que están en “0” con un led apagado.

Page 15: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 15/22

 

Circuito de nuestro monitor de puerto paralelo.

 

En el esquema vemos que cada uno de los pines de datos del puerto seencuentra conectado a una resistencia de 330 ohms, y esta al ánodo del led. El

cátodo de cada led se conecta a masa (cualquiera de los pines del 18 al 25). Lafunción que cumplen las resistencias es limitar la corriente que circule por cadaled, ya que si los conectamos directamente al puerto circularía por ellos unacorriente excesiva y los podríamos quemar.

Como se trata de un circuito muy simple, lo construiremos soldandodirectamente las resistencias y los leds a una ficha DB25, así nos evitamos elconstruir una plaqueta de circuito impreso.

Page 16: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 16/22

Los componentes necesarios para este circuito los conseguimos en cualquiercasa de electrónica, y su costo total difícilmente supere los 3 o 4 u$s. Tambiénnecesitaremos un soldador de unos 20 o 30 Watts y algo de alambre de estañocon núcleo de resina. Es una buena idea tener a mano un alicate para cortarlos terminales de los leds y las resistencias.

Primero soldamos uno de los terminales de las resistencias a cada uno de lospines 2 al 9 del conector, y luego el ánodo de cada led al otro extremo de lasresistencias. También uniremos entre si todos los terminales correspondientesa los cátodos de los leds y el pin 18 del puerto.

 

Etapas en la construcción de nuestro monitor.

En caso que debido a la posición del CPU sea imposible ver los LEDsconectados de esta manera, podemos comprar un cable de extensión para elpuerto paralelo, o bien a un cable de impresora sacarle la ficha del lado de estay soldar ahí los LEDs y resistencias. En este ultimo caso, hay que usar un testepara identificar a que pin corresponde cada cable, y tener cuidado de aislarbien todos los terminales para evitar que un cortocircuito termine con elpuerto.

Page 17: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 17/22

 

> El software

Para controlar los LEDs del monitor podemos bajar de internet un programa yahecho (hay muchísimos) o bien crear uno. Para ello usaremos Visual Basic (en

este caso la versión 3, ya que corre sin problemas en casi cualquiercomputadora y versión de Windows). Necesitaremos una DLL llamadaINPOUT32.DLL (o INPOUT16.DLL si usamos un Windows de 16 bits).

En Visual Basic comenzamos un nuevo proyecto, y creamos un modulo quellamaremos MODULE1.BAS con el siguiente contenido:

Declare Sub Out Lib "inpout16.Dll" Alias "Out16" (ByVal PortAddress As Integer,ByVal Value As Integer)Declare Function Inp Lib "inpout16.Dll" Alias "Inp16" (ByVal PortAddress AsInteger) As Integer

Importante: si usamos la DLL INPOUT32.DLL deberemos cambiar todos los “16”por “32” en el código anterior.

Luego, en el FORM1.FRM deberemos crear dos arrays de botones, con 8elementos cada uno. El primero llamado ENC(n) y el segundo APA(n). Estosbotones permitirán el encendido y apagado de los LEDS en forma individual.

 También necesitaremos un ComboBox llamado PUERTO que nos permitiráelegir en que LPT tenemos conectado el monitor. El listado del código de esteformulario es el siguiente:

 

Sub Form_Load ()'Genera el contenido del combo Puertos.Puerto.AddItem "&h378"Puerto.AddItem "&h278"Puerto.AddItem "&h3BC"

'Selecciona el LPT1 por default.Puerto.ListIndex = 0End Sub

Sub Apa_Click (Index As Integer)Dim X As Integer

'Obtiene el valor presente en el puerto.X = Inp(Val(Puerto))

'Ejecuta la rutina que pone en 0 el bit correspondiente.Dato = BCF(X, Index)

Page 18: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 18/22

'Envía el dato al puerto.Out Val(Puerto), DatoEnd Sub

Sub Enc_Click (Index As Integer)

Dim X As Integer'Obtiene el valor presente en el puerto.X = Inp(Val(Puerto))

'Ejecuta la rutina que pone en 1 el bit correspondiente.Dato = BSF(X, Index)

'Envía el dato al puerto.Out Val(Puerto), DatoEnd Sub

 

Aspecto del FORM1.FRM con todos los controles colocados, y un Labelexplicando que hace cada control.

 

> APENDICE: Lógica TTL

Recibe este nombre de “Transistor to Transistor Logic”, y es uno de losprocedimientos que existen para construir circuitos integrados. Esta lógicaconsidera un “0” lógico a los valores de tensión entre 0 y 2.5 voltios, y un “1”lógico a cualquier voltaje mayor que 3.5 y menor a 5 voltios.

Page 19: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 19/22

En este gráfico se puede ver con mayor claridad cada estado lógico y su nivelde tensión.

 

> APENDICE: LED

Un LED no es mas que un diodo, del que se aprovecha el fotón que se emite alrecombinarse un hueco con un electrón en su unión PN. El encapsuladotransparente y el pequeño espejo situado bajo la juntura permiten aprovechar

esta luz emitida como un indicador luminoso. Su consumo de corriente es muybajo, lo que lo hace muy practico para nuestros proyectos.

 Esquema y símbolo de un diodo LED.

 

> APENDICE: Componentes a utilizar1 conector DB25 macho8 Resistencias de 330 ohm, 1/8 watt8 Leds

Page 20: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 20/22

Circuito y software para encender leds con el puerto paralelo

-

Este es un software y el hardware que hice para encender leds usando elpuerto paralelo de la computadora, el circuito es por demas de simple, solo elconector unas resistencias y cuatro leds, a continuacion la descripcion de comoconstruirlo...

El hard: Se resume en un cable de 5 conductores, se puede reciclar un cablede la interfaz de una disquetera, un conector DB25, cuatro resistencias de 470

ohm y cuatro diodos leds de bajo consumo, si se utilizaran leds de alto brilloconviene aumentar el valor de las resistencias a 560 ohm o mas.

Page 21: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 21/22

El software: El software lo realize en visual basic, hay que descomprimirlo enla misma carpeta el la dll, para usarlo simplemente hay que hacer click en loscirculos para encender o apagar los leds. El circuito tambien se puede ampliarpara usar los pines del 2 al 9.Descargart: http://rapidshare.com/files/144377794/Controlador.rar.html

Actualizacion: Si se desea encender y apagar artefactos electricos de mayor consumo sepuede utilizar una interfaz con reles como la siguiente, en este caso hay quehacer un circuito por cada salida que se quiera utilizar:

Actualizacion 2: 

Page 22: Led

5/13/2018 Led - slidepdf.com

http://slidepdf.com/reader/full/led5571ff4349795991699cee05 22/22

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