Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Encendido de LEDS mediante puerto paralelo (JAVA)



  1. Materiales
  2. Información
  3. Armado
  4. Programación

Monografias.com

Materiales

6 luces leds

1 maqueta

Varios palitos de chupete

1 protoboard

Cautin, soldadura

Cinta aislante

Cable

Información

Se debe conocer previamente algunos datos
para hacer el encendido de focos con el puerto paralelo.
Primeramente se debe saber que el puerto paralelo libera 5
voltios de voltaje, y los leds solo soportan 1.5 Voltios. Existe
una formula que sirve para sacar los ohmnios que necesita la
resistencia dependiendo el voltaje que llega para el led,
también el voltaje que necesita y la corriente que pasa
por el led.

Lo que se quiere lograr hacer, o el
objetivo de todo esto es lograr encender los leds con un circuito
simple siendo programados en java.

A continuación daremos algunas
definiciones de algunos materiales que se utilizan para este
proyecto:

RESISTENCIA:

Se le llama resistencia
eléctrica 
a la igualdad de oposición que
tienen los electrones para desplazarse a través de un
conductor. La unidad de resistencia en el Sistema Internacional
es el ohmio, que se representa con la letra griega omega (O), en
honor al físico alemán George Ohm, quien
descubrió el principio que ahora lleva su nombre. La
resistencia está dada por la siguiente
fórmula:

Monografias.com

En donde es el
coeficiente de proporcionalidad o la resistividad del
material.

La resistencia de un material depende
directamente de dicho coeficiente, además es directamente
proporcional a su longitud (aumenta conforme es mayor su
longitud) y es inversamente proporcional a su sección
transversal (disminuye conforme aumenta su grosor o
sección transversal)

Descubierta por Georg Ohm en
1827, la resistencia eléctrica tiene un parecido
conceptual a la fricción en la física
mecánica. La unidad de la resistencia en el Sistema
Internacional de Unidades es el ohmio (O). Para su
medición, en la práctica existen diversos
métodos, entre los que se encuentra el uso de
un ohmnímetro. Además, su cantidad
recíproca es la conductancia, medida
en Siemens.

Además, de acuerdo con la ley
de Ohm la resistencia de un material puede definirse como la
razón entre la diferencia de potencial eléctrico y
la corriente en que atraviesa dicha resistencia,
así:1

Monografias.com

Donde es la resistencia
en ohmios, es la diferencia de
potencial en voltios e es
la intensidad de corriente en amperios.

También puede decirse que "la
intensidad de la corriente que pasa por un conductor es
directamente proporcional a la longitud e inversamente
proporcional a su resistencia"

Según sea la magnitud de esta
medida, los materiales se pueden clasificar
en conductores, aislantes y semiconductor.
Existen además ciertos materiales en los que, en
determinadas condiciones de temperatura, aparece un
fenómeno denominado superconductividad, en el que el
valor de la resistencia es prácticamente nulo.

LED:

Los ledes se usan como indicadores en
muchos dispositivos y en iluminación. Los primeros
ledes emitían luz roja de baja intensidad, pero los
dispositivos actuales emiten luz de alto brillo en
el espectro infrarrojo, visible y ultravioleta.

Debido a sus altas frecuencias de
operación son también útiles en
tecnologías avanzadas de comunicaciones. Los ledes
infrarrojos también se usan en unidades de control remoto
de muchos productos comerciales incluyendo televisores e
infinidad de aplicaciones de hogar y consumo
doméstico.

PROTOBOARD:

El "protoboard","breadboard" (en
inglés)o "placa board" es un tablero con orificios
conectados eléctricamente entre sí, habitualmente
siguiendo patrones de líneas, en el cual se pueden
insertar componentes electrónicos y cables para
el armado y prototipado de circuitos electrónicos y
sistemas similares. Está hecho de dos materiales, un
aislante, generalmente un plástico, y un conductor que
conecta los diversos orificios entre sí. Uno de sus usos
principales es la creación y comprobación de
prototipos de circuitos electrónicos antes de llegar a la
impresión mecánica del circuito en sistemas de
producción comercial.

El puerto LPT1 o puerto paralelo tiene 25
pines que están distribuidos de la siguiente
manera:

Monografias.com

8 Pines de Salida desde
el D7 al D0

5 Pines de
Status S3 al S7

4 Pines
de Control C0 al C3

8 Pines de Tierra o
Neutro 18 al 25

Lo que debemos hacer es
enviar datos a través de los
Pines D7 al D0 y conectar cada led a uno de
estos pines Como Nuestro el siguiente diagrama:

Ahora tenemos que enviar
la información al determinado pin, en la
siguiente tabla muestra de mejor manera como enviarle
la información a un pin especifico:

Monografias.com

Por ejemplo, si se desea enviar datos al
Pin D7 se debe escribir 2^7. Si se desea enviar datos al Pin D5
se debe escribir 2^5

Armado

Primero se debe conectar los cables en el
puerto paralelo que posteriormente se conectaran a los leds
según un diagrama preestablecido.

Luego alistamos las conexiones de los leds
en la maqueta. Monografias.com

Despues soldamos los cables a los leds en
la maqueta y hacemos correr el programa.

Programación

La programación de este proyecto es
sencilla, sin embargo hay que hacer algunas modificaciones
previas a la computadora para activar el puerto
paralelo:

Primero para la
activación:

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

Monografias.com

Luego clic en hardware y sonido

Monografias.com

Clic en administrador de
dispositivos:

Monografias.com

Ahora seleccione puerto de
impresora:

Monografias.com

Clic al botón derecho del mouse y
elegir propiedades:

Monografias.com

Monografias.com

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 del aula virtual,
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.

Monografias.com

Ahora copiar el archivo UserPort.sys a
windows

Monografias.com

Asegúrese de dejar el archivo en el
directorio drivers :

Monografias.com

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

Monografias.com

Ejecute el programa User Port:

y clic en aceptar y clic en
salir:

Monografias.com

Estos pasos se pueden realizar tanto en
Windows 7 como en Windows xp.

El siguiente paso es el programa en Java,
consta de dos pasos el primero es el de crear la clase
ParalellPort:

package parport; // <— el archivo
ParallelPort.class se guarda

// autom·ticamente en la carpeta
parport

public class ParallelPort {

/** The port base address (e.g. 0x378 is
base address for LPT1) */

private int portBase;

/** To cunstruct a ParallelPort
object,

* you need the port base address

*/

public ParallelPort (int
portBase)

{

this.portBase = portBase;

}

/** Reads one byte from the STATUS pins of
the parallel port.

*

* The byte read contains 5 valid bits,
corresponing to 5 pins of input

* from the STATUS pins of the parallel port
(the STATUS is located

* at "portBase + 1", e.g. the STATUS
address for LPT1 is 0x379).

*

* This diagram shows the content of the
byte:

*

* Bit | Pin # | Printer Status |
Inverted

*
—–+——-+—————–+———–

* 7 | ~11 | Busy | Yes

* 6 | 10 | Acknowledge |

* 5 | 12 | Out of paper |

* 4 | 13 | Selected |

* 3 | 15 | I/O error |

*

* Note that Pin 11 is inverted, this means
that "Hi" input on pin

* means 0 on bit 7, "Low" input on pin
means 1 on bit 7.

*/

public int readStatus ()

{

return ParallelPort.readOneByte
(this.portBase+1);

}

/*Read a data byte from parallel port
*/

public int readData ()

{

return ParallelPort.readOneByte
(this.portBase);

}

/** Writes one byte to the DATA pins of
parallel port.

* The byte is written to the DATA pins of
the port. The DATA pins are

* located at the base address of the port
(e.g. DATA address for LPT1

* is 0x378).

*

* This diagram shows how the byte is
written:

*

* Bit | Pin # | Printer DATA

* —–+——-+————–

* 7 | 9 | DATA 7

* 6 | 8 | DATA 6

* 5 | 7 | DATA 5

* 4 | 6 | DATA 4

* 3 | 5 | DATA 3

* 2 | 4 | DATA 2

* 1 | 3 | DATA 1

* 0 | 2 | DATA 0

*/

public void writeData (int
oneByte)

{

ParallelPort.writeOneByte (this.portBase,
oneByte);

}

/** Reads one byte from the specified
address.

* (normally the address is the STATUS pins
of the port)

*/

public static native int readOneByte (int
address);

/** Writes one byte to the specified
address

* (normally the address is the DATA pins of
the port)

*/

public static native void writeOneByte (int
address, int oneByte);

static

{

System.loadLibrary("parport");

}

}

En el programa Ready to Program, se debe
compilar el anterior programa, y se lo debe guardar en la carpeta
de este programa.

Luego viene el programa principal que es el
siguiente:

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();

}

}

este programa puede prender 3 leds, pero se
pueden agregar hasta ocho modificando el programa.

Este programa debe estar guardado en la
misma carpeta que el anterior programa, si no, no
correrá.

Antes de terminar, es importante copiar el
archivo parport.dll en la carpeta del ready to program, todos
estos archivos están disponibles en el archivo javacomm20,
que se puede descargar de aquí:
http://www.4shared.com/rar/7MrbbEKF/javacomm20-win32.htm

Ahora solamente es necesaria la creatividad
para hacer diferentes cosas con los leds, como maquetas con
habitaciones que se encienden, entre otras.

 

 

Autor:

Bazan Heredia Pablo

Cantuta Cabas Melvin

Carpio Mendoza Ivan

Llanos Sangüesa
Iván

Ramirez Gamarra Fabian

Valdes Rejas Benjamin

Materia: Programación I

Fecha: 02/12/13

Monografias.com

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter