Objetivo
El objetivo de este proyecto es el de aplicar nuestros conocimientos en programación con Java en un campo practico que seria para nuestro caso el encendido y apagado de luces a escala ; con esto también probamos la utilidad del programa aprendido durante el transcurso de semestre.
Marco teórico
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 paquete de byte a la vez. Es decir, se implementa un cable o una vía física para cada bit de datos formando un bus. Mediante el puerto paralelo podemos controlar también periféricos como focos, motores entre otros dispositivos, adecuados para automatización.
El cable paralelo es el conector físico entre el puerto paralelo y el dispositivo 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.
Puerto paralelo Centronics
Conector de puerto paralelo tipo Centronics
El puerto paralelo más conocido es el puerto de impresora (que cumplen más o menos la norma IEEE 1284, también denominados tipo Centronics) que destaca por su sencillez y que transmite 98 bits. Esta interfaz es capaz de enviar caracteres a la impresora de forma paralelo. Cada carácter está codificado en un byte, del cual cada bit se transmite por un terminal diferente. Existen otros terminales que conectan ordenador e impresora, que sirven para intercambiar información de control y de estado, a fin de implementar un sencillo protocolo.
Para realizar esta interfaz, los PCs disponen de unos elementos hardware específicos, denominados puertos de impresora o también puertos paralelos.
En un PC pueden instalarse varios de estos puertos que se distinguen entre sí con los nombres LPT1, LPT2 y LPT3 (en algunos casos también LPT4). Todos ellos son idénticos, salvo que tienen asignadas diferentes direcciones en el mapa de entrada/salida.
Se ha utilizado principalmente para conectar impresoras, pero también ha sido usado para programadores EPROM, escáneres, interfaces de red Ethernet a 10 Mb, unidades ZIP, SuperDisk y para comunicación entre dos PC (MS-DOS trajo en las versiones 5.0 ROM a 6.22 un programa para soportar esas transferencias).
Las características eléctricas son:
Tensión de nivel alto: 3,3 o 5 V.
Tensión de nivel bajo: 0 V.
Intensidad de salida máxima: 2,6 mA.
Intensidad de entrada máxima: 24 Ma
Descripción del conector físico
La conexión del puerto paralelo al mundo exterior se realiza mediante un conector hembra DB25. Observando el conector de frente y con la parte que tiene mayor número de pines hacia arriba, se numera de derecha a izquierda y de arriba a abajo, del 1 al 13 (arriba) y del 14 al 25 (abajo).
Este conector: está formado por 17 líneas de señales y 8 líneas de tierra. Las líneas de señales están formadas por tres grupos: 4 Líneas de control,5 Líneas de estado, 8 Líneas de datos.
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 al pin 9 .
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 al menos significativo.
4 líneas son de control (bits de CONTROL), numerados del más significativo al menos: 17, 16, 14 y 1. Habitualmente son salidas, aunque se pueden utilizar también como entradas y, por tanto, se pueden modificar tanto por software como por hardware.
las líneas de la 18 a la 25 son la tierra
LED
Un diodo LED, acrónimo inglés de Light-Emitting Diode (diodo emisor de luz) es un dispositivo semiconductor que emite luz poli cromática, es decir, con diferentes longitudes de onda, cuando se polariza en directa y es atravesado por la corriente eléctrica. El color depende del material semiconductor empleado en la construcción del diodo, pudiendo variar desde el ultravioleta, pasando por el espectro de luz visible, hasta el infrarrojo, recibiendo éstos últimos la denominación de diodos IRED (Infra-Red Emitting Diode). |
El funcionamiento físico consiste en que, un electrón pasa de la banda de conducción a la de valencia, perdiendo energía. Esta energía se manifiesta en forma de un fotón desprendido, con una amplitud, una dirección y una fase aleatoria. El dispositivo semiconductor está comúnmente encapsulado en una cubierta de plástico de mayor resistencia que las de vidrio que usualmente se emplean en las lámparas incandescentes. Aunque el plástico puede estar coloreado, es sólo por razones estéticas, ya que ello no influye en el color de la luz emitida. Para obtener una buena intensidad luminosa debe escogerse bien la corriente que atraviesa el LED; el voltaje de operación va desde 1,5 hasta 2,2 voltios aproximadamente, y la gama de intensidades que debe circular por él va desde 10 hasta 20 mA en los diodos de color rojo, y de 20 a 40 mA para los otros LEDs. El primer diodo LED que emitía en el espectro visible fue desarrollado por el ingeniero de General Electric Nick Holonyak en 1962. |
Tecnología LED/OLED En corriente contínua (DC), todos los diodos emiten una cierta cantidad de radiación cuando los pares electrón-hueco se recombinan, es decir, cuando los electrones caen desde la banda de conducción (de mayor energía) a la banda de valencia (de menor energía). Indudablemente, la frecuencia de la radiación emitida y, por ende, su color, dependerá de la altura de la banda prohibida (diferencias de energía entre las bandas de conducción y valencia), es decir, de los materiales empleados. Los diodos convencionales, de silicio o germanio, emiten radiación infrarroja muy alejada del espectro visible. Sin embargo, con materiales especiales pueden conseguirse longitudes de onda visibles. Los diodos LED e IRED, además tienen geometrías especiales para evitar que la radiación emitida sea reabsorbida por el material circundante del propio diodo, lo que sucede en los convencionales. |
Conexión La diferencia de potencial varía de acuerdo a las especificaciones relacionadas con el color y la potencia soportada. En términos generales puede considerarse: • Rojo = 1,6 V • Rojo alta luminosidad = 1,9v • Amarillo = 1,7 V a 2V • Verde = 2,4 V • Naranja = 2,4 V • Blanco brillante= 3,4 V • Azul = 3,4 V • Azul 430nm= 4,6 V Luego mediante la ley de Ohm, puede calcularse el resistor adecuado para la tensión de la fuente que utilicemos. |
El término I en la fórmula se refiere al valor de corriente para la intensidad de luminosa que necesitamos. Lo común es de 10 a 20mA. un valor superior puede quemar el LED. Cabe recordar que también pueden conectarse varios en serie, sumándose las diferencias de potencial en cada uno. |
A | Ánodo | ||||||||||||
B | Cátodo | ||||||||||||
1 | Lente/encapsulado epóxido | ||||||||||||
2 | Contacto metálico | ||||||||||||
3 | Cavidad reflectora | ||||||||||||
4 | Terminación del semiconductor | ||||||||||||
5 | Yunque | ||||||||||||
6 | Plaqueta | ||||||||||||
7 | |||||||||||||
8 | Borde plano |
Protoboard
Una placa de pruebas, también conocida como protoboard o breadboard, es una placa de uso genérico reutilizable o semipermanente, usado para construir prototipos de circuitos electrónicos con o sin soldadura. Normalmente se utilizan para la realización de pruebas experimentales. Además de los protoboard plásticos, libres de soldadura, también existen en el mercado otros modelos de placas de prueba.
Patrón típico de disposición de las láminas de material conductor en un protoboard.
Protoboard o head of chala: Es en la actualidad una de las placas de prueba más usadas. Está compuesta por bloques de plástico perforados y numerosas láminas delgadas, de una aleación de cobre, estaño y fósforo, que unen dichas perforaciones, creando una serie de líneas de conducción paralelas. Las líneas se cortan en la parte central del bloque de plástico para garantizar que dispositivos en circuitos integrados tipo DIP (Dual Inline Packages) puedan ser insertados perpendicularmente a las líneas de conductores. En la cara opuesta se coloca un forro con pegamento, que sirve para sellar y mantener en su lugar las tiras metálicas.
Debido a las características de capacitancia (de 2 a 30 pF por punto de contacto) y resistencia que suelen tener los protoboard están confinados a trabajar a relativamente baja frecuencia (inferior a 10 ó 20 MHz, dependiendo del tipo y calidad de los componentes electrónicos utilizados).
Los demás componentes electrónicos pueden ser montados sobre perforaciones adyacentes que no compartan la tira o línea conductora e interconectados a otros dispositivos usando cables, usualmente unifilares. Uniendo dos o más protoboard es posible ensamblar complejos prototipos electrónicos que cuenten con decenas o cientos de componentes.
El nombre protoboard es una contracción de los vocablos ingleses prototype board y es el término que se ha difundido ampliamente en los países de habla hispana. Sin embargo, particularmente en Estados Unidos e Inglaterra, se conoce como breadboard.
Resistencias
Se denomina resistencia o resistor (en lenguaje técnico) al componente electrónico diseñado para introducir una resistencia eléctrica determinada entre dos puntos de un circuito. En otros casos, como en las planchas, calentadores, etc., las resistencias se emplean para producir calor aprovechando el Efecto Joule. Es frecuente utilizar la palabra resistor como sinónimo de resistencia. La corriente máxima de una resistencia viene condicionada por la máxima potencia que puede disipar su cuerpo. Esta potencia se puede identificar visualmente a partir del diámetro sin que sea necesaria otra indicación. Los valores más corrientes son 0.25 W, 0.5 W y 1 W.
1. MATERIALES
a) 4 leds de diferentes colores
b) 1 Protoboard
c) Puerto paralelo
d) 4 resistencias de 240 ohmios
e) Programa en Java
2. PROCEDIMIENTO
Lo primero que vamos a ver es el armado del circuito:
DIAGRAMA DEL 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 circuito, se puede controlar mediante la computadora un grupo 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 Java.
El circuito que se va armar será montado sobre una plaqueta, la cual conduce la corriente eléctrica, llamada "protoboard".
El objetivo es controlar los diodos LEDs con la computadora, esto es encenderlos y apagarlos según como queramos.
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 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 cuatro entradas y cuatro salidas, ya que son solo cuatro LEDs los que controlamos. Las cuatro salidas están conectadas por medio de una resistencia limitadora de corriente a un LED cada una. Estas resistencias son de un valor de 240 ohm .
El programa para controlar nuestros leds sera :
import parport.ParallelPort; import java.io.*; public class Led { //—————————————— public static class Aplicacion { private ParallelPort lpt1; public Aplicacion()throws IOException { int pin=0; BufferedReader w=new BufferedReader(new InputStreamReader(System.in)); lpt1 = new ParallelPort(888); // 0x378 normalmente es utilizado para impresora LPT1 int opcion=0; do { System.out.println("1) Prender PIN 1."); System.out.println("2) Prender PIN 2."); System.out.println("3) Prender PIN 3."); System.out.println("4) Apagar Todas."); System.out.println("5) Prender Todas."); System.out.println("6) Salir."); opcion = Integer.parseInt(w.readLine()); switch(opcion){ case 1 : pin = (int)Math.pow(2,2); try { Thread.sleep(500); } catch(InterruptedException e) { e.printStackTrace(); } //potencias desde 2 elevado a 0 break; case 2 : pin = (int)Math.pow(2,3); try { Thread.sleep(500); } catch(InterruptedException e) { e.printStackTrace(); } break; case 3 : pin = (int)Math.pow(2,4); try { Thread.sleep(500); } catch(InterruptedException e) { e.printStackTrace(); } break; case 4 : pin = 0;//apagar todo break; case 5 : pin = 255; //prender todo break; } lpt1.write(pin);//manda a la impresora }while(opcion!=8); } } //———————————- public static void main(String[] args)throws IOException { new Aplicacion(); } } |
El programa está hecho para tres leds pero el formato será el mismo por lo que no será dificultoso modificarlo para cuatro leds o mas (aunque debido al puerto paralelo que usaremos solo se puede tener un máximo de 8 leds ) como se verá en la práctica.
El funcionamiento de este programa y circuito necesita que se desbloquee el puerto de la impresora:
Paso 1.- Desbloquear el puerto de la impresora.
Para desbloquear el puerto de la impresora ingrese al panel de control y haga clic en SISTEMA Y SEGURIDAD
Luego clic en hardware y sonido
Clic en administrador de dispositivos:
Ahora seleccione puerto de impresora:
Clic al botón derecho del mouse y elegir propiedades:
En CONFIGURACIÓN DE PUERTO, seleccione USAR CUALQUIER TIPO DE INTERRUPCIÓN
ACEPTAR todo y terminar. Con lo que tenemos habilitado el puerto a nivel sistema operativo.
Paso 2.- Copiar archivos.- Descargue el archivo comprimido javacomm20-win32–ok.rar , descomprima este archivo e inicie las copia de la siguiente manera. De la carpeta FilecomAPI, copie el archivo parport.dll a la carpeta bin de READY TO PROGRAM.
Ahora copiar el archivo UserPort.sys a windows
Asegúrese de dejar el archivo en el directorio drivers :
Realice las siguiente copias de los archivos al disco duro:
win32com.dll: guardarlo en la carpeta de ..Javajdk1.5.0_02jrebin
javax.comm.properties: copiarlo en la carpeta ..Javajdk1.5.0_02jrelib
comm.jar: copiarlo en la carpeta ..Javajdk1.5.0_02jrelibext
Ejecute el programa User Port:
y clic en aceptar y clic en salir:
Paso 4.- El ejemplo que controla los led.
Descargue el archivo ejemplo_de_los_led.rar y obtendrá el código para encender los led, ejecute el programa Led.java utilizando Ready to program. No se olvide que la carpeta parport tiene que estar presente para que funcione el programa.
CIRCUITO ARMADO EN EL PROTOBOARD
Conclusiones
El proyecto resulto exitoso en todos los sentidos ya que pudimos aplicar nuestros conocimientos; hubo algunas dificultades en el proceso pero fueron superadas,
Autor:
Kheyla Giovana Valdivia Gutierrez
Vivian Gutierrez Flores
Celia Lima Ramos
Ximena Guachalla