Encendido de Leds por programa de computadora (casa de 8 leds)
Enviado por Gina Tamara Nieto Navarro Soraide
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:WINDOWSsystem32drivers
4. 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 Program
3. 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