Encendido de Leds por programa de computadora (casa de 8 leds)
Introducción
La finalidad de este proyecto es de crear un programa en
Java que permita el encendido de led´s de una casa. Para
ello son necesarios los conocimientos respecto a
programación y circuitos.
Se necesita un Protoboard, un Cable UTP, ocho
resistencias de 1 kilo ohmio, unos cuantos pedazos de alambre de
cobre para haber las conexiones.
Para empezar se debe habilitar el puerto paralelo de la
impresora:
OBJETIVO:
Aplicar los conocimientos obtenidos en el curso de
PROGRAMACIÓN I y relacionarlos con los conceptos
básicos de circuitos.
Procedimiento
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 se habilitara el
puerto a nivel sistema operativo.
1. Descargamos el archivo javacom20-win
32-ok.rar de la plataforma virtual y lo
descomprimimos.2. De la carpeta descomprimida abrimos la
carpeta llamada FilesCommAPI, de esta carpeta copiamos
el archivo parport.dll a la capeta bin del
READY TO PROGRAM, luego copiamos el archivo win32.dll
al directorio C:Archivos de programaJavajrebin,
luego copiamos el archivo javax.comm.properties al
directorio C:Archivos de programaJavajrelib y por
último copiamos el archivo comm.jar al
directorio C:Archivos de
programaJavajrelibext.3. De la carpeta descomprimida abrimos la
carpeta llamada Driver y copiamos el archivo
UserPort.sys al directorio
C:WINDOWSsystem32drivers4. De la carpeta descomprimida abrimos la
carpeta llamada Driver y ejecutamos el programa
llamado UserPort:
Como segundo paso, procedemos a crear un
paquete:
1. Creamos una carpeta con el nombre de
parport en el directorio C:Archivos de
programaReady to Program
2. Creamos un nuevo programa con READY TO
PROGRAM y copiamos lo siguiente :
package 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 read ()
{
return ParallelPort.readOneByte
(this.portBase+1);
}
/** 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 write (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");
}
}
Luego de haberlo copiado lo guardamos y lo compilamos en
la carpeta creada parport, este programa no correrá
ya que es un paquete que estamos creando para el programa
principal, por eso es que solamente lo compilamos. Así
concluimos con la creación del paquete.
Ahora creamos el programa principal:
1. Creamos un nuevo programa con READY TO
PROGRAM y copiamos lo siguiente :
import parport.ParallelPort;
import java.io.*;
public class Led8
{
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);
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) Prender PIN 4.");
System.out.println ("5) Prender PIN 5.");
System.out.println ("6) Prender PIN 6.");
System.out.println ("7) Prender PIN 7.");
System.out.println ("8) Prender PIN 8.");
System.out.println ("9) Apagar todas las
habitaciones.");
System.out.println ("10) Prender todas las
habitaciones.");
System.out.println ("11) Salir.");
opcion = Integer.parseInt (w.readLine ());
switch (opcion)
{
case 1:
pin = (int) Math.pow (2, 0);
break;
case 2:
pin = (int) Math.pow (2, 1);
break;
case 3:
pin = (int) Math.pow (2, 2);
break;
case 4:
pin = (int) Math.pow (2, 3);
break;
case 5:
pin = (int) Math.pow (2, 4);
break;
case 6:
pin = (int) Math.pow (2, 5);
break;
case 7:
pin = (int) Math.pow (2, 6);
break;
case 8:
pin = (int) Math.pow (2, 7);
break;
case 9:
pin = 0;
break;
case 10:
pin = 255;
break;
}
lpt1.write (pin);
}
while (opcion != 11);
}
}
public static void main (String[] args) throws
IOException
{
new Aplicacion ();
}
}
2. Luego de haber copiado el programa lo
guardamos y también lo compilamos en el directorio
C:Archivos de programaReady to Program3. Ejecutamos el programa y ya está
listo para usarse.
Ahora es el turno de llevar todo al protoboard para que
el circuito funcione.
Debemos tener claro algunos conceptos:
Protoboard: 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.
Diodo led: se refiere a un componente opto
electrónico pasivo, más concretamente,
un diodo que emite luz. Este posee dos patitas,
siendo la más larga la positiva y la pequeña la
negativa. No resiste más de 0.7 voltios es por eso que es
indispensable el uso de las resistencias.
Resistencia: Es un material formado por carbón y
otros elementos resistivos para disminuir la corriente que pasa.
Se opone al paso de la corriente. La corriente máxima en
un resistor viene condicionada por la máxima potencia que
pueda 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 comunes son 0,25
W, 0,5 W y 1 W.
El diodo led debe estar en serie con la
resistencia:
Las conexiones van de manera lineal.
Con el cable paralelo o conector DB-25, se unirán
los cables del que saldrán del protoboard. Como los pines
están numerados del número 1 al 25, solo se usan
los pines numerados del 2 al 9, también se tiene que unir
un cable al pin 25 (que es el pin de masa
o tierra eléctrica) para tener una descarga
a tierra común.
Cuando se tiene el circuito incluido en la maqueta de la
casa, se procede a ejecutar el programa para ver su
funcionalidad.
Los típicos problemas que se presentan
son:
Encendido de led´s: que se debe generalmente
porque no se distinguió bien la parte positiva y negativa.
Es necesario que cada patita se envuelva en cinta aislante para
evitar que se produzca un corte y se queme el led.
La conexión de la parte positiva va al protoboard
y de ahí. En serie, sale la resistencia la otra parte se
debe aterrar para que después, se coloque un nuevo cable
que salga directo al cable del puerto.
Otro problema por el que no suelen encenderse los
led´s es porque están sueltas las conexiones del
conector DB-25. Es una buena opción asegurarlas con cinta
aislante.
Trabajo
finalizado
Autor:
Arandia Fuentes Iver
Miranda Lara David
Nieto Navarro Soraide
Tamara
Pinell Velarde Gonzalo
Sardinas Zuna Jorge
Vega Chuquimia Karen
UNIVERSIDAD CATOLÍCA BOLIVIANA "SAN
PABLO"
PROGRAMACIÓN I
DOCENTE: Msc. IRMA PRADO
VILLARROEL
ESTUDIANTES:
SEMESTRE:
2-2013
LA PAZ- BOLIVIA