- Objetivos
- Materiales
- Armado de circuito.
- Programa para el controlador de leds e Java
- Presentación del proyecto
Objetivos
Es aplicar uno de los programas java en circuitos como ser encendido y apagado de leds.
Nuestro objetivo es controlar los diodos LEDs con la computadora, esto es encenderlos y apagarlos según como queramos. Los LEDs son diodos que tienen la capacidad de emitir luz cuando circula una corriente por ellos. Esta corriente debe ser del orden de los 10 mA (miliampers). Para limitar la corriente que pasa por los LEDs se usan las resistencias que se oponen al paso de ella.
Materiales
8 leds de diferentes colores
1 Protoboard
Cable UTP (1 metro o metro y medio)
8 resistencias de 1 kilo ohmio
Unos cuantos pedazos de alambre (puede ser del mismo UTP)
Armado de circuito.
Antes de ver el desarrollo del programa vamos a ver cómo armar el circuito. De hecho es muy sencillo, y se basa en el siguiente diagrama:
Como se puede apreciar en las fotografías es un armado de circuito simple ya que todas las conexiones van linealmente
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 unir 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 unir 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 ocho entradas y ocho salidas, ya que son solo ocho LEDs los que controlamos. Las ocho salidas están conectadas por medio de una resistencia limitadora de corriente a una LED cada una. Estas resistencias son de un valor de 1 K ohm y permite que circule una corriente de 10 mA (miliampere) por cada diodo.
Las siguientes imágenes pueden ayudar a apreciar mejor la conexión del circuito:
Programa para el controlador de leds e Java
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); // 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) 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.");
System.out.println ("10) Prender Todas.");
System.out.println ("11) Salir.");
opcion = Integer.parseInt (w.readLine ());
switch (opcion)
{
case 1:
pin = (int) Math.pow (2, 0);
//potencias desde 2 elevado a 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; //apagar todo
break;
case 10:
pin = 255; //prender todo
break;
}
lpt1.write (pin); //manda a la impresora
}
while (opcion != 11);
}
}
//———————————-
public static void main (String[] args) throws IOException
{
new Aplicacion ();
}
}
Programa con ventana
importparport.ParallelPort;
importjava.lang.*;
import java.io.*;
importjavax.swing.JOptionPane;
importjava.awt.*;
importjava.awt.event.*;
public class puebloleds
{
//——————————————
static Frame ventana = new Frame ();
public static class Aplicacion
{
privateParallelPort lpt1;
publicAplicacion () throws IOException
{
int pin = 0;
BufferedReader w = new BufferedReader (new InputStreamReader (System.in));
lpt1 = new ParallelPort (888); // 0x378 normalmente es utilizado para impresora LPT1
intopcion = 0;
String a = "Pueblo de luces Ledsn" + "1. Prender Casa Amarilla Habitacion 1n";
a = a + "2. Prender Almacen n" + "3. Casa Amarilla Habitacion 2n";
a = a + "4. Prender Iglesia Salonn" + "5. Prender Letrero del Almacenn";
a = a + "6. Prender Iglesia Campanario n" + "7. Prender Atico de la Cabañan";
a = a + "8. Prender La Cabañan" + "9. Apagar Todas las luces n";
a = a + "10. Prender Todas las luces n" + "11. SALIR n ";
do
{
opcion = Integer.parseInt (JOptionPane.showInputDialog (a));
switch (opcion)
{
case 1:
pin = (int) Math.pow (2, 0);
//potencias desde 2 elevado a 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; //apagar todo
break;
case 10:
pin = 255; //prender todo
break;
}
lpt1.write (pin); //manda a la impresora
}
while (opcion != 11);
}
}
//———————————-
public static void main (String[] args) throws IOException
{
newAplicacion ();
}
}
Presentación del proyecto
AQUÍ SE PUEDE APRECIAR EL TRABAJO EN SU ACAVADO TOTAL
PARTES DE LA MAQUETA CON EL ENSENDIDO DE LEDS
VISTA INTERIOR DEL ENSENDIDO Y CABLEADO
VISTA DE LA MAQUETA DE NOCHE
Autor:
Univ. Victor BenignoMachicado Mamani
Univ. Juan Marcelo Quispe Callisaya
Univ. Edgar Gonzalo Murillo Tinini
Universidad Mayor de San Andrés
Facultad de Ingeniería
IngenieríaMetalúrgica y de Materiales