Encendiendo Leds - Parte II
En la primera parte se vio como encender algunos leds con el puerto paralelo de manera muy fácil mandando una simple y sencilla instrucción desde el DEBUG. Esto estuvo muy bien como demostración pero cuando se requiere hacer más que encender unos simples Leds necesitamos hacer uso de algún lenguaje de programación como Visual C#, C/C++, Ensamblador, Java, etc.
En esta entrega seguiremos encendiendo leds pero comenzaremos a usar JAVA. Usaremos el IDE NetBeans.
El ejercicio consiste sencillamente en hacer que los Leds prendan secuencialmente, es decir, de izquierda-derecha e inmediatamente derecha-izquierda y repetir el ciclo indefinidamente.
Para poder trabajar con el puerto paralelo como ya comenté en post anteriores, es necesario una libreria, en nuestro caso usaremos parport.dll , pero como Java es un lenguaje multiplataforma esta claro que no puede hacer uso directo de una dll. La solución es hacerlo mediante JNI (Java Native Interface). Así que bien, para hacerlo todo más fácil, adjunto la clase en un archivo .jar de tal forma que desde NetBeans en el inspector de proyectos–Libaries deberas agregarla dando click derecho y seleccionando Add JAR/Folder.
Finalmente ya que tienes tu proyecto creado y agregaste la libreria JAR, descarga esta carpeta, ahi encontrarás dos carpetas más, en una viene el archivo JAR que les mencionó y en otra el código fuente, descomprimen las dos, agregar la libreria JAR al contexto de NetBeans tal como lo explique y copiamos la otra carpeta del código fuente a la carpeta src de su proyecto que es en donde NetBeans coloca los ficheros .java y .form
Ahora si, desde NetBeans podrás ver el código fuente y la vista de diseño. Una vez que revises el código fuente tranquilo, no te espantes!
El código lo hicieron unos compañeros que no tienen la mínima idea de programación, durante toda la carrera nunca programarón (¿como llegarón tan lejos?… ni idea) pero en la materia de Arquitectura de Computadoras el catedrático se dio cuenta de su nula idea de programación y los sentencio a que si no programaban una sola práctica sencilla los reprobaba en el curso. Así que bueno, me di a la tarea de instruirlos pero tampoco hago milagros de un día para otro y ese código que descargarón es precisamente programado por ellos (es lo mejor que pudieron hacer).
Desde luego que no erá necesario usar tantos CASE. Con dos ciclos y algún acumulador se conseguia esto, pero decidi poner ese código para que sean ustedes quienes practiquen este ejercicio sencillicimo y mejoren esas líneas de código.
El circuito creo yo que no vale la pena explicar, es el mismo de aqui: http://mundobyte.wordpress.com/2007/12/22/encendiendo-leds/
Solo hay que poner los 8 leds en los pines 2,3,4,5,6,7,8,9 alimentar a tierra el PIN 25 y ya!
Poco a poco iré poniendo ejercicios si bien son de juguete, se acercan algo a proyectos reales pero a escala! Por ejemplo, más adelante pondré esta práctica:
Una consola selecciona una melodía por dos pesos o bien tres melodías por 5 pesos. La consola puede seleccionar un máximo de 15 melodías diferentes con duración cada una de 10s: tiene dos detectores, uno para monedas de $2 y otro de $5. Se dispone de un teclado de 5 teclas, 4 de ellas para seleccionar la(s) melodía(s) a tocar (el teclado envía los datos en binario) y la otra para indicar melodía seleccionada. La consola tocara las piezas en el orden que fueron seleccionadas.
Como ven, es una práctica de juguete, pero se acerca mucho a una práctica real, de hecho podría ser la base para hacer alguna pequeña consola , rockola, etc.
Hasta la próxima Saludos!!
Archivado bajo: Electrónica, General, Puerto Paralelo | Etiquetado: Java, Leds, ParallelPort, Puerto Paralelo
Hola Ascari, pues muy interesante tu guia para trabajar con puertos paralelos, justo tengo que hacer algo parecido, en realidad es mandar una orden de apagado o encedido de leds, pero mediante una computadora que este conectada mediante LAN a otra que si tenga el protoboard, bueno la comunicacion entre ellas es sencillo, pero eh tenido ciertos problemas para mandar la orden para que estos leds se enciendan o apaguen, estaba probando con el parport. dll, pero como que eh tenido algunos problemas, eh intentado ver tu ejemplo y descargarme el .jar, pero es imposible, crees que podrias arreglar esos links por favor…. nos leemos
Salu2 desde Perú…
HOla!
Primeramente gracias por visitar el blog de reciente creación, es bueno leer que este tipo de información puede ser útil para algún estudiante o persona interesada en el tema afin.
Respecto al problema con los enlaces de descarga, ya esta solucionado!!
SIn embargo, debo aclararte que el archivo .jar que deseas descargar, no contiene otra cosa que la clase JNI que hace uso de la libreria parport.dll
¿Qué tipo de problemas has tenido?… Recuerda que en windows xp debes abrir primero los puertos con la herramienta UsePort y posteriormente deberas colocar parport.dll en el System32, pues el archivo jar que contiene la clase JNI llamada ParallelPort, carga tal libreria y los lugares en los que intenta buscar es precisamente en el system32 o en la carpeta actual desde donde ejecutas tu programa.
Por otro lado, si los errores que te dan al trabajar con tal libreria son que al momento de enviar un dato al LPT te cierra el programa o algo parecido, podria ser causado por el MODO en el que esta configurado el PUerto. Debes revisar que en el SETUP del BIOS se encuentre en modo ECP… Por ejemplo en una BIOS Phoenix tal opción esta en Integrated Peripherals– Super IO Device— Parallel Port Mode
El encender leds es algo muy sencillo, posiblemente si es la primera vez que trabajes con el PUerto Paralelo te confunda un poco, pero realmente es en extremo sencillo que no dudo puedan lograrlo.
Recibe un cordial saludo!!
EN este documento puede encontrar más información sobre como trabajar con el PUerto Paralelo desde Java, C++, Visual Basic y ENsamblador, así como una introducción con PICS.
http://www.geocities.com/windoctorxp/serviciogeneral.zip
Saludos!!
hola….. me parece muy bueno tu sitio……pero tengo un problema no puedo descargar las carpetas……. podrías por favor enviarla a mi mail………… desde ya gracias……
Hola!!!
esta muy interesante esta informacion …ademas es justo lo que estoy necesitando urgente para mi proyecto …ya que tengo hecha la protoboard y funciona por el debug pero no la he logrado hacer funcionar bajo java estoy usando la API comm pero no funciona ……me gustaria si me pudieras ayudar con los links que tienes para descargar ya que no funcionan ….puertoparalelo.zip y pruba.zip
cordial saludo ….!!!
si me deja su correo electrónico se lo mando
Hola windoctor, me podria decir donde puedo conseguir un libro sobre la JNI porque quisiera hacer un programa hibrido con ensamblador, o algun ejemplo.
Gracias y hasta luego.
mi buen amigo esta genial tu blong pero los enlaces no funcan no se si podrias corregir ese problema es que estoy en un proyecto donde necesito esos
datos ademas como seria para puerto serial???
si poses un codigo para practicar serial genial gracias
NECESITO AYUDA
NECESITO COMUNICAR 2 PCS MEDIANTE EL PUERTO USB
NO SE SI SE PUEDA
PERO NECESITO SABER K VOY A USAR
Y ME PIDIERON QUE USE UNA INTERFAZ PARA EN UN EQUIPO ENVIAR
Y EN EL OTRO RECIBIR EL ARCHIVO
Gracias por compatir un poco de tu conocimiento, tengo q realizar un proyecto para una materia llamada interfaces, lo que deceo realizar es el control de un motor a pasos.
Bueno quisiera saber si me podrias enviar el codigo de java para el control de los leds, es q no se pueden descargar de los links, mi correo es rgm65_5@hotmail.com.
Gracias…
Hola!
He corregido el enlace para descargar los archivos y los he puesto en una sola carpeta, así que ya pueden descargarlos.
Respecto a lo del motor a pasos es realmente muy sencillo, también hice el control de uno de ellos, si el tiempo me lo permite espero poder escribir algo sencillo en el blog y desde luego dejar el código fuente.
Saludos!!
Muchas gracias windoctor por corregir el link, y les dire q tal me fue con el control del motor a pasos, estamos en contacto cuidence byee…
He estado un poco desconectado del proyecto, he tenido algunas otras tareas, apenas pude checar los archivos del link, mmm, tuve un error al ejecutarlo, podrias darme solución ??? gracias.. espero puedas ayudarme
esto es lo q me aparece
Exception in thread “AWT-EventQueue-0″ java.lang.UnsatisfiedLinkError: no PARPORT in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:993)
at parport.ParallelPort.(ParallelPort.java:93)
at prueba.prueba.(prueba.java:27)
at prueba.prueba$3.run(prueba.java:162)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Sorry….ya solucione el problema, tengo una duda si quiero leer del puerto como es…bueno nos vemos…y gracias (Y)
hola muy interesante pero me gustaria saber como lo hago en linux, necesito hacer un proyecto en el cual manejo el puerto pero debo hacerlo en linux
oye…marca error en la libreria de parallelport, habra que importar alguna libreria ? urgente…
oye…marca error en la libreria de parallelport, habra que importar alguna libreria ? urgente…ademas muestra un error, que dice que el package parport no existe, porfa
oye ricardo gallardo…tengo el mismo problema que tu…como lo solucionaste….aparecen eexactamente los mismos errores por fa contesta pronto….
me podrias ayudar con los archivos que necesito bajar i que version se debe de utilizar con respectoa la yava
dejo mi correo para que me ayudes es urgente
grimaldo_80@hotmail.com