Objetivo
El objetivo de este proyecto es aplicar nuestros conocimientos en programación, Java en un campo practico que sería el encendido y apagado de luces led con esto también probamos la utilidad de la programación aprendido durante el transcurso del curso de programación.
Marco teórico
PUERTO PARALELO
La transmisión de datos paralela consiste en enviar datos en forma simultánea por varios canales (hilos). Los puertos paralelos en los PC pueden utilizarse para enviar 8 bits (un octeto) simultáneamente por 8 hilos.
Los primeros puertos paralelos bidireccionales permitían una velocidad de 2,4 Mb/s. Sin embargo, los puertos paralelos mejorados han logrado alcanzar velocidades mayores:
El EPP (puerto paralelo mejorado) alcanza velocidades de 8 a 16 Mbps
El ECP (puerto de capacidad mejorada), desarrollado por Hewlett Packard y Microsoft. Posee las mismas características del EPP con el agregado de un dispositivo Plug and Play que permite que el equipo reconozca los periféricos conectados.
Los puertos paralelos, al igual que los seriales, se encuentran integrados a la placa madre. Los conectores DB25 permiten la conexión con un elemento exterior (por ejemplo, una impresora).
Puerto paralelo Centronics
Conector de puerto paralelo tipo Centronics
LED
El LED (Light-Emitting Diode: Diodo Emisor de Luz), es un dispositivo semiconductor que emite luz incoherente de espectro reducido cuando se polariza de forma directa la unión PN en la cual circula por él una corriente eléctrica . Este fenómeno es una forma de electroluminiscencia, el LED es un tipo especial de diodo que trabaja como un diodo común, pero que al ser atravesado por la corriente eléctrica, emite luz . Este 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. Usualmente un LED es una fuente de luz compuesta con diferentes partes, razón por la cual el patrón de intensidad de la luz emitida puede ser bastante complejo.
Para obtener una buena intensidad luminosa debe escogerse bien la corriente que atraviesa el LED y evitar que este se pueda dañar; para ello, hay que tener en cuenta que el voltaje de operación va desde 1,8 hasta 3,8 voltios aproximadamente (lo que está relacionado con el material de fabricación y el color de la luz que emite) y la gama de intensidades que debe circular por él varía según su aplicación. Los Valores típicos de corriente directa de polarización de un LED están comprendidos entre los 10 y 20 miliamperios (mA) en los diodos de color rojo y de entre los 20 y 40 miliamperios (mA) para los otros LED. Los diodos LED tienen enormes ventajas sobre las lámparas indicadoras comunes, como su bajo consumo de energía, su mantenimiento casi nulo y con una vida aproximada de 100,000 horas. Para la protección del LED en caso haya picos inesperados que puedan dañarlo. Se coloca en paralelo y en sentido opuesto un diodo de silicio común
En general, los LED suelen tener mejor eficiencia cuanto menor es la corriente que circula por ellos, con lo cual, en su operación de forma optimizada, se suele buscar un compromiso entre la intensidad luminosa que producen (mayor cuanto más grande es la intensidad que circula por ellos) y la eficiencia (mayor cuanto menor es la intensidad que circula por ellos).
Símbolo del LED
ESTRUCTURA DEL LED
COMPOSICION DEL LED
Protoboard
La protoboard es un dispositivo muy utilizado para probar circuitos electrónicos. Tiene la ventaja de que permite armar con facilidad un circuito, sin la necesidad de realizar soldaduras.
Si el circuito bajo prueba no funciona de manera satisfactoria, se puede modificar sin afectar los elementos que lo conforman. La protoboard tiene una gran cantidad de orificios en donde se pueden insertar con facilidad los terminales de los elementos que conforman el circuito.
Se puede conectar casi cualquier tipo de componente electrónico, incluyendo diferentes tamaños de circuitos integrados. Los únicos elementos que no se pueden conectar a la protoboard son elementos que tienen terminales muy gruesos. Estos elementos se conectan normalmente sin problemas en forma externa con ayuda de cables o "lagartos".
El primer diagrama muestra una protoboard típica. Algunos de estos orificios están unidos de manera estandarizada que permiten una fácil conexión de los elementos del circuito que se desea armar.
En el segundo diagrama se pueden ver que hay unas "pistas" conectoras (Las "pistas" están ubicadas debajo de la placa blanca). Estas "pistas" son horizontales en la parte superior e inferior de la protoboard y son verticales en la parte central de la misma.
Para un uso eficiente de esta herramienta, se recomienda:- Trabajar en orden.- Utilizar las "pistas" horizontales superiores e inferiores para conectar la fuente de poder para el circuito en prueba.- Usar cable rojo para el positivo de la fuente y el negro para el negativo de la misma.- La alimentación del circuito se hace desde las pistas horizontales, no directamente desde la fuente.- Ordenar los elementos del circuito de manera que su revisión posterior por el diseñador u otra persona sea lo más fácil posible.- Es recomendable evitar, en lo posible, que los cables de conexión que se utilicen entre dos partes del circuito sea muy larga y sobresalga del mismo.
RESISTENCIAS
La resistencia es uno de los componentes imprescindibles en la construcción de cualquier equipo electrónico, ya que permite distribuir adecuadamente la corriente y voltaje a todos los puntos necesarios.
El valor de la resistencia se expresa en ohmio, al cual representamos con el símbolo ((
Si sometemos los extremos de una resistencia al paso de una corriente continua se producirá en la misma una caída de tensión proporcional a su valor. La intensidad que la atraviese será también proporcional a la tensión aplicada y al valor en ohmios de la resistencia. Para calcular dicha relación no hay más que aplicar la Ley de Ohm:
Hay dos formas de asociar resistencias en un circuito: asociación serie y asociación paralelo:
La resistencia equivalente de un circuito serie es:
RT = R1 + R2 + R3 + … + Rn
lo cual nos indica que una sola resistencia de valor RT se comportará de la misma forma que las n resistencias R1, R2, R3 … Rn conectadas en serie.
Si el circuito es en paralelo entonces la resistencia equivalente es:
RT = 1/(1/R1 + 1/R2 + 1/R3 + … + 1/Rn)
Cuando se trata de dos resistencias en paralelo se tiene:
Materiales
a) 3 leds de diferentes colores
b) 1 Protoboard
c) Puerto paralelo
d) 3 resistencias de 240 ohmios
e) Programa en Java
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 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.
PASOS A SEGUIR
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:
CIRCUITO ARMADO EN EL PROTOBOARD
LUCES LED DENTRO DE LA LAMPARA
LAMPARA CON RELOJ
El programa para controlar nuestros leds sera :
SOFTWARE
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 LED azul.");
System.out.println("2) Prender LED rojo.");
System.out.println("3) Prender LED amarillo.");
System.out.println("4) Apagar Todos los LEDs.");
System.out.println("5) Prender Todos los LEDs.");
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();
}
}
Conclusión
El proyecto resulto con éxitos en todos los sentidos ya que pudimos aplicar nuestros conocimientos hubo algún déficit en el armado y procedimiento pero las supimos superar y terminar de la mejor manera.
Autor:
Gustavo Antezana