**A partir de su versión 2.6.0, la librería Arduino para Java ha sido renombrada a PanamaHitek_Arduino. La misma se puede encontrar en nuestro repositorio de GitHub.
Hola a todos. Como recientemente me han escrito muchas personas contándome que no han podido utilizar la librería que he preparado para Java, la cual pueden encontrar en mi post: Librería PanamaHitek_Arduino para Java.
En este post les presentaré los posibles errores y las soluciones dichos problemas.
- El error más común
Este error se produce cuando se intenta iniciar una aplicación en Java que se va a comunicar con Arduino.
La causa de esto es que no se ha instalado correctamente la librería RXTX la cual necesita 2 drivers para trabajar: rxtxSerial.dll y rxtxParallel.dll
De hecho, el driver Parallel no nos hará falta ya que estamos usando comunicación serial, no por puerto paralelo, así que podrían omitirla.
La guía de como instalar correctamente estos se encuentra aquí:
Requisitos para utilizar Arduino y Java
Un video completo sobre la instalación de la librería:
Dependiendo de la arquitectura de sus sistema operativo, puede descargar la versión que le corresponda. Esto instalará los drivers necesarios y permitirá que Arduino se comunique con Java sin problemas.
- Los errores que arroja la librería
Se produce cuando se trata de iniciar un programa sin tener conectado Arduino a la computadora. También suele pasar que lo tenemos conectado y la computadora no lo reconoce. Yo lo que hago es desconectarlo y conectarlo nuevamente. Si tenemos el monitor serial de Arduino IDE conectado tampoco podremos iniciar nuestras aplicaciones en Java.
Este error se produce cuando tenemos nuestro Arduino conectado pero el puerto COM es el equivocado.
Arduino IDE nos está indicando que la placa que estamos usando está conectada en el COM6 pero en Java hemos indicado que usaremos el COM5. Debido a esto no es posible iniciar la aplicación. El COM que aparece en Arduino IDE debe ser igual al que colocamos en Java.
Este error se produce cuando tratamos de enviar datos luego de haber utilizado como conexión el método ArduinoRX que solamente permite recibir datos. Si desea transmitir y recibir datos a la vez debe usar el método ArduinoRXTX.
Este error se produce cuando se trata de recibir datos y se ha iniciado la conexión con Arduino utilizando el método ArduinoTX que solamente permite transmitir datos. Si desea transmitir y recibir datos a la vez debe usar el método ArduinoRXTX.
Este error se produce cuando se inicializa una conexión con Arduino en 2 partes diferentes del código. Esta librería solamente permite iniciar la conxión una sola vez, ya sea utilizando el método ArduinoRX, ArduinoTX o ArduinoRXTX.
Solución a algunos errores de compatibilidad (aporte de Jonathan Josué López Guevara)
Problema: muestra el error que se obtiene al ejecutar el programa.
Solución
Paso 1: Entrar a propiedades.
Paso 2: Seleccionar «Run». La casilla VM generalmente está en blanco.
Paso 3: escribir -Djava.library.path= «xxxx» donde xxxx es la dirección donde instalamos java.
Resultado: Al ejecutar nuevamente se puede accesar a la librería.
***
Necesito que si alguno de ustedes encuentra algún otro problema que yo no halla documentado aquí me lo haga llegar a través de los comentarios y les aseguro que atenderé sus inquietudes lo más pronto posible.
Muchas gracias a todos. Saludos.
***Un agradecimiento especial a Jonathan Josué López Guevara por sus aportes a este post y a este blog.
Amigo, primero que nada quisiera felicitarte por tu trabajo que es espectacular. Felicidades
También quiero pedirte apoyo, soy principiante en Arduino, me gustaría saber como puedo enviar varios datos desde arduino a java y recibirlos por separado, no se si me explico.
Muchas Gracias.
Hola amigo. Te recomiendo descargarte la librería Arduino para Java.
Hay 3 métodos, el ArduinoRX, ArduinoTX y ArduinoRXTX. Sirven para transmitir y recibir datos. Es extremadamente sencillo
Buen día, antes que nada dejame decirte que tienes un muy buen sitio aquí. Esta librería es fantástica, reúne todo lo que necesito, sin embargo tengo un problema. Cuando quiero conectar mi arduino lo hago en el puerto COM10 de mi computadora si es por USB y si es por Bluetooth lo hago en el puerto COM40, sin embargo, al ejecutar la aplicación me dice que no se detecta algún arduino conectado. Descargué el código fuente de tu librería y añadí un System.out.println() con el motivo de verificar qué puertos está detectando el programa y solamente aparece el puerto COM3. No sé si es problema de mi computadora directamente o si puedo hacer algo para solucionarlo. De antemano te agradezco y nuevamente felicidades por tremendo trabajo.
Verifica en Arduino IDE el puerto donde se ha conectado el Arduino. Ese es el que es
Ya lo hice varias veces, incluso tengo comunicación desde el monitor serial de Arduino conectado por USB en el COM10 y a través de bluetooth en el COM40, incluso lo conecté por medio de USB al puerto COM3 cambiando el puerto en una configuración y no me dio resultado. No logro entender qué es lo que pasa realmente.
Que COM estás usando en el código Java?
He probado todos, COM10, COM40 y COM3. Con el puerto COM3 no me salió el mensaje diciendo que no tenía un arduino conectado en ese puerto, sin embargo no puedo comunicarme con mi arduino.
Comunícate con migo a mi correo [email protected]
Hola Antony, gracias por el aporte.
tengo el mismo problema de Jonathan ejecuto la aplicación y no detecta a mi Arduino UNO que usa el puerto COM19 (el puerto esta habilitado, cambie el nombre de puerto en el código Java a COM19) y nada no lo detecta.
Quisiera saber si lograron solucionar ese problema con Jonathan. Gracias.
Si en efecto lo pudimos solucionar. Lo que hicimos fue des instalar todos los puertos COM (seriales) y luego conectar Arduino para que se instalara nuevamente.
Ve al administrador de dispositivos y elimina todos los COM. Luego conectas Arduino y el se instala de nuevo. Vas al Arduino IDE, revisas el COM que se le ha asignado al Arduino y trabajas con ese.
Me marca este error en mi código java.lang.ClassCastException: Ventana$1 cannot be cast to jssc.SerialPortEventListener
at Ventana.(Ventana.java:23)
Ayudaaa 🙁
Comparte tu código en el foro
Hola, ya instale varias veces las librerías pero me marca el mismo error, mi PC es de 64 bits y me aparecen dos carpetas que se llaman Archivos de programa y Archivos de programa(x86) la segunda, en las dos aparece la carpeta de java pero no se en cual de las dos debo instalar las librerías.
Has tratado de usar los autoinstaladores de 64 bits que he publicado?
Sí ya lo hice pero no me funciono aunque ya solucione el problema jeje, lo que hice fue investigar y descubrí que la carpeta que dice Archivos de programa es para los programas de 64 bits y la que dice Archivos de programa(x86) es donde se instalan los programas para 32 bits también investigue como instalar la librería para la comunicación serial y lo que hice fue bajar la librería y los drivers de 64 bits, copie en la siguiente dirección el archivo RXTXcomm: Archivos de programa/java/jdk.7.0_13/jre/lib/ext y los drivers en la siguiente dirección Archivos de programa/java/jdk.7.0_13/jre/bin y ya me funciono, dejo esta información para quienes tengan el mismo problema que yo y a mi ya no me apareció el error.
Muchas gracias por el aporte que haces en tu blog, a muchos nos ha ayudado bastante.
Es un problema que tienen muchas personas. Por eso subí un par de autoinstaladores que colocan los archivos en las carpetas que tienen que estar de manera automática
Pues como te comento si los utilice solo que en mi caso me lo instalaron en una carpeta llamada jdk1.7.0_15 y debería de ser en la jdk1.7.0_13 pero solo los cambie de lugar y listo =)
Eso se debe a la diferencia en los JDK. Yo uso el último que salió y en base a eso construí el autoinstalador. Al parecer tienes una versión un poco más antigua
Con razón tanto alboroto jeje ya voy a actualizarme
Buenas noches, he visto que muchos tienen problemas con instalar la librería principalmente por el primer error que muestra nuestro gran compañero Antony. En mi caso, me ha dado pereza desinstalar las versiones de Netbeans, tengo instalado el 6.8, 7.0 y 7.2, pensando desde ya en bajar el 7.3 hahaha. También tuve el mismo error, para no cansarlos, copié todos los archivos en todos los directorios (definitivamente no es la mejor solución, solo ocupas más espacio en tu disco duro) y aún así no se arregló el error, por lo tanto, pensé que google podría solucionar esto. Como es un problema con el path, busqué algo relacionado con eso precisamente.
Logré resolver el primer problema cambiando unas propiedades del proyecto en Netbeans. Esto fue lo que hice:
– Clic derecho en el proyecto
– Propiedades (properties)
– Ejecución (Run)
– Escribir en Opciones VM (VM Options): -Djava.library.path=»C:Program Files (x86)Javajre7lib»
En mi caso esa es la dirección donde tengo instalado Java y la versión del JDK que estoy utilizando. El «Program Files (x86)» significa que mi computadora tiene procesador de 64 bits y se instaló en la carpeta de programas que funcionan con 32 bits. (Recuerden la familia x8086 de 32 bits que tanto dominó la computación en otras épocas).
Les pondría imágenes pero realmente no sé cómo se hace eso en este blog, por lo tanto traté de ser lo más descriptivo posible. Espero se resuelvan sus problemas de este tipo.
Hola Jonathan, no se si ya leíste mi problema (Cuando mando a ejecutar me sale «No se ha encontrado ningun Arduino conectado en el puerto COM19. Verifique el puerto en el que esta conectado Arduino») mi Arduino esta en el puerto COM19 y en el código Java también cambie a COM19, así que descarte esos problemas) Antony me dijo que ustedes eliminaron todo los puertos COM y solo volvieron a conectar el arduino y se les soluciono el problema, Yo hice eso y aun no tengo solución, noc que otra alternativa tomar, si pudieras ayudarme te lo agradecería.
Te invito a que me coordinemos una sesión con Team Viewer como ya he hecho con algunos aquí para yo ver el problema de primera mano y hallar una solución.
Puedes escribirme a mi correo electrónico y enviarme tus datos.
Holas Antony, Gracias por querer ayudar pero en hora buena encontré la solución (aunque aun no se porque no reconoce a otros puertos, debe ser algún error del SO).
Lo que hice es comprobar con todos los puertos libres que tenia mi PC (Cambie el código Java desde COM1 hasta COM20)y al probar SOLO reconocía al puerto COM1, osea ya me salia el cuadro jFrame en blanco y no el mensaje que no reconocía el puerto, entonces Cambie al Arduino de puerto COM19 a COM1, le di ejecutar y en la consola del Netbeans se podía visualizar el mensaje programado en el Arduino «Hola Mundo».
Para cambiar de puerto al Arduino:
-Conectar al PC
-Click derecho en «equipo» y propiedades.
-Click en «Administrador de dispositivos».
-Seleccionas «Puertos(COM y LPT1)»
-Click derecho en «Arduino(COMxx)» y propiedades.
-Seleccionas la pestaña de «Configuración de puerto» y luego Click en «Opciones avanzadas…»
-Donde dice Numero de puerto COM, seleccionas el puerto que si reconoce el Codigo Java y Aceptar.
Saludos.
Gracias por publicar la solución.
Todo esto es un proyecto y agradezco mucho a todos los que colaboran con sus experiencias a esto.
Saludos
Compañero te invito a que me envíes las imágenes de este proceso para añadirlas a este post como un aporte de tu parte a este blog. Muchas gracias por la colaboración.
Hola que tal AMIGO, primeramente deja darte las gracias por las explicaciones tan claras que das y tomarte el tiempo para que los demás podamos aprender mas de este mundo de java e interconexion con Arduino, estuve haciendo muchas pruebas con la conexión y se me presentaba el inconveniente de que el puerto no lo reconocía y me salia como que Arduino no estaba conectado, luego de tratar de buscar las soluciones en este apartado, me di cuenta que el problema es cuando en el PC existen mas de un puerto COM instalado, al eliminar uno y dejar solo el de Arduino se solucionaba, bueno me tome la tarea de revisar el código fuente de la librería que hiciste, y me di cuenta que existe un error lógico en la validación del puerto :
while (portEnum.hasMoreElements()) {
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
if (PORT_NAME.equals(currPortId.getName())) {
portId = currPortId;
break;
} else {
throw new Exception(«No se ha encontrado ningún Arduino conectado en el puerto » + PORT_NAME + «. Verifique el puerto que esté usando su Arduino»);
}
}
debido a como esta el if, simplemente si el COM de arduino se encuentra en «segundo» lugar sera descartado, en mi caso tengo el COM1 y COM5(Arduino), en el recorrido del While al verificar en primer lugar al COM1 y no coincidir con el COM5 de mi arduino se va por el caso contrario y se interrumpe el bucle y no pregunta por el siguiente puerto, por tanto e puesto la siguiente solucion:
boolean flag = false;
while (portEnum.hasMoreElements()) {
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
System.out.println(currPortId.getName()) ;
if (PORT_NAME.equals(currPortId.getName())) {
portId = currPortId;
flag=true;
break;
}
}
if(flag==false) {
throw new Exception(«No se ha encontrado ningún Arduino conectado en el puerto » + PORT_NAME + «. Verifique el puerto en el que está conectado Arduino»);
}
Simplemente puse una variable tipo boolean y verificar esta variable al terminar el bucle del while, de esta manera se puede buscar los demas puertos y me ha funcionado, de esta manera todos los que tengan problemas con los puertos no es necesario cambiarles el COM en configuraciones avanzadas.
Espero sea de ayuda para los que tengan este problema, nuevamente gracias Antony por tus grandes aportes
Hola amigo. Ya he resubido la librería en su versión 1.1.0 en la cual he agregado el pedazo de código que has sugerido. Me gustaría reconocerte el esfuerzo. Podrías enviarme tu nombre completo, correo electrónico, donde vives y si es posible una foto? Si es posible, envíame esta información a [email protected]
Te quiero agradecer por tu contribución a la nueva versió de la librería. Saludos.
hola amigo.queria hacerte una consulta ya logre establecer el control de un servo con arduino pero mi pregunta es como hago para recibir el angulo que tiene mi servo, yo hice que sea una variable la que de el valor al servo y quiero que ese valor retorne a java pero me retorna -1 al igual estoy utilizando tu libreria ARDUINO, gracias por tu atencion
Es un problema con el envío de datos. Asegúrate de usar Serial.println en Arduino e implementar el MessageAvailable en Java. Con eso cada vez que haya un salto de línea, es decir, cuando se termine de enviar un dato Java lo podrá recibir correctamente
si hago eso pero me mando valores ilógicos como -1 y repetidamente 45 en si no me manda un valor que se aproxime a un angulo
En el monitor serial te refleja algo?
siii ya mando la informacion con el MessageAvailable tal y como esta en el video y lopongo en JFrame pero me sale valores de -1 y repetidamente 45 sera un error logico ??
Enviame el codigo que estas usando a [email protected]
muchas gracias pero ya pude resolver el problema gracias y felicitaciones por tu trabajo tu librería me ayudo mucho para el trabajo
Estoy buscando algun codigo para entender como puedo detectar el puerto com de forma automatica, estoy usando netbeans como interfaz con arduino, le agradesco de antemano la ayuda que puedan dar.
ola buenos tardes:
he estado intentado prender y apagar un led pero lo que me a la hora de ejecutar la programación en el netbeans ide 7.3 es:
run:
WARNING: RXTX Version mismatch
Jar version = RXTX-2.2-20081207 Cloudhopper Build rxtx.cloudhopper.net
native lib Version = RXTX-2.1-7pre16
Java Result: 64
BUILD SUCCESSFUL (total time: 0 seconds)
alguna sugerencia [ara solucionar este problema
saludos
Es un problema con la librería RXTX. La que tienes en la raíz de Java debe ser igual a la que se agrega a los proyectos
Encontre la forma de usarla de manera local http://embeddedfreak.wordpress.com/2008/08/08/using-rxtx-without-installing-it-to-java_home/
Gracias por aportar
Existe alguna forma de hacerlo correr el UBUNTU
Si la hay pero no la conozco. No trabajo en UBUNTU
Hola Amigo me gustaria que me ayudaras con un problema que tengo te envié la información a este correo ([email protected]) ayudame porfavor.
que tal estoy intentando de todas formas pero siempre me aparece este problema de la libreria RXTX, ya probe poniendo el path instalando los drivers que copian en la ruta C:Program FilesJavajdk1.7.0_15bin alguien me puede ayudar porfavor
Hola Amigo me gustaría ayudarte con tu problema yo también tenia un problema parecido pero lo que ice fue pegar los dll del RXTX en todas las carpetas que encontré con el nombre bin y lib en especial creo que fue la que pege en esta direccion C:Program FilesJavajdk1.7.0_17bin creo que esa fue la que me la soluciono ya que yo tenia dos JDK este jdk1.7.0_15 y este jdk1.7.0_17 y solo los avía copiado los archivos al primer JDK (jdk1.7.0_15 ) y no en el segundo intenta copiar los archivos en todas las carpetas que tengan el nombre bin y lib espero te funcione y me avisas o sino intenta buscar otros tutoriales sobre como instalar la librería RXTX a mi me ayudo cambien eso suerte.
Hola. Gracias por los comentarios. Por supuesto que estoy dispuesto a colaborar con usted. Actualmente el proyecto Panama Hitek lo formo yo solo, un estudiante de la UTP Azuero. Espero poder contar con la ayuda de alguien más para seguir con esto adelante. Saludos.
Muchas gracias d verdad! muy buen video 😀
hey viejo que mas pones para declarar la variable serial port no se que es porque en el video no se ve bien porque esta todo borroso y no distingo nada
Esta disponible en HD (resolución 720p). Entra a Youtube y cámbiale la resolución en la parte de abajo
hey gracias por tu pronta respuesta lo voy a buscar
Hola. No consigo instalar bien las librerías. No consigue que funcione. Aparte mi arduino no toma lecturas continuas. ¿Habría alguna forma de que lo hiciera desde el programa de Java? Gracias.
Que versión de la librería está utilizando
Hooola. Ya he conseguido que funcione. Ajhora el problema es que me manda ceros y unos sólamente, y necesito enviar la letra h desde el pc, para que tome medidas el arduino. ¿Cómo podría hacerlo? Gracias.
Hola
Muchas gracias por la librería, es demasiado útil, la utilizo para mi tésis de grado ;D
Pero
tengo un problema, dice «Imposible conectar, el puerto COM3 está siendo
usado por otra aplicación», pero en el COM3 está mi arduino UNO, estoy
desde Windows 8, pero en Windows 7 también me envió el mismo problema,
qué debo hacer 🙁
Gracias de antemano
Qué versión utilizas?
Debe haber algo que esté utilizando el puerto cuando tratas de hacer la conexión desde Java
disculpa me sale este error, pero ni idea por que , me puedes ayudar?
Exception in thread «AWT-EventQueue-0» java.lang.UnsupportedClassVersionError: com/panamahitek/PanamaHitek_Arduino : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at panel_1.(panel_1.java:8)
at panel_1$5.run(panel_1.java:152)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:715)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
BUILD SUCCESSFUL (total time: 2 seconds)
a que se debe que me salga este error
java.lang.UnsupportedClassVersionError: gnu/io/SerialPortEventListener : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
Exception in thread «main» Java Result: 1
BUILD SUCCESSFUL (total time: 6 seconds)
Buen dia. Yo lo solucione actializando el jdk.
Debe actualizar el jdk en la pagina de netsbean esta la ultima version de la maquina virtual. Me cuenta.
Quizás un SDK desactualizado
De donde sacaste ese error?
Hola, presento este tipo de error y no se como corregirlo… y soy novato en java y no se como corregirlo… agradezco su colaboración.
Exception in thread «EventThread COM4» java.lang.NumberFormatException: multiple points
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1914)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.lang.Float.parseFloat(Float.java:451)
at proyecto.java_arduino$1.serialEvent(java_arduino.java:30)
at jssc.SerialPort$EventThread.run(SerialPort.java:1115)
Comparte tu código
Hola.!
Bueno me aparece éste error:
ene 12, 2017 7:18:15 PM Window
GRAVE: null
java.lang.ClassCastException: Window$1 cannot be cast to jssc.SerialPortEventListener
at Window.(Window.java:23)
at Window$4.run(Window.java:129)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Al principio si corre el programa pero poco después aparece este error, ¿A qué se debe?
Espero una respuesta inmediata jeje ya que necesito el programa para un trabajo.
Que versión estas usando?
Trata de usar MAVEN
mi buen, como podria solucionar estas interrupciones que mes salen:
1.- com.panamahitek.ArduinoException: Nomrbe del puerto – COM6; Nombre del método – killArduinoConnection(); Tipo de excepción – Error al finalizar la conexión con Ardino.
2.- com.panamahitek.ArduinoException: Nomrbe del puerto – COM6; Nombre del método – arduinoRXTX(); Tipo de excepción – No se puede iniciar la conexión con Arduino 2 veces.
La interrucion n° 1 me sale cuando desconecto el cable USB con el que me comunico con arduino(MEGA).
y si vulevo a conectar el USB ya no me permite conectarme nuevamente hasta que cierro el programa y lo vuelvo abrir…
la n°2 me sale despues que hago esta desconexion, segun veo es por que ya hay una conexion con arduino, pero como ya se desconecto el cable ya no me permite terminar la conexion con arduino osea «Arduino.killArduinoConnection();»
acepto todo tipo de sugerencias seran bien aceptadas… saludos
utilizo java con Netbeans.
Amigo, hice lo mismo que dijiste para solucionar el primer problema, pero me sigue saliendo el mismo error, qué puedo hacer, ayudame, por favor
ME APARECE ESTO, QUE HAGO?
PanamaHitek_Arduino Library, version 2.7.0
===============================
Library created by Antony Garcia Gonzalez
Student of Panama’s Tecnological University and the creator of panamahitek.com
You can find all the information about this library at https://panamahitek.com
Verificando archivos DLL… OK
abr 03, 2019 6:00:48 PM GUI.FORMULARIO
GRAVE: null
java.lang.Exception: No se ha encontrado ningún Arduino conectado en el puerto COM6. Verifique el puerto en el que está conectado Arduino
at panamahitek.Arduino.PanamaHitek_Arduino.arduinoTX(PanamaHitek_Arduino.java:277)
at GUI.FORMULARIO.(FORMULARIO.java:26)
at GUI.FORMULARIO$11.run(FORMULARIO.java:585)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
abr 03, 2019 6:00:53 PM GUI.FORMULARIO APAGARROJOActionPerformed
GRAVE: null
java.lang.Exception: No se ha iniciado conexión con Arduino. Por favor utilice alguno de los métodos ArduinoRX(), ArduinoTX() o ArduinoRXTX()
at panamahitek.Arduino.PanamaHitek_Arduino.sendData(PanamaHitek_Arduino.java:466)
at GUI.FORMULARIO.APAGARROJOActionPerformed(FORMULARIO.java:194)
at GUI.FORMULARIO.access$100(FORMULARIO.java:17)
at GUI.FORMULARIO$2.actionPerformed(FORMULARIO.java:65)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
BUILD SUCCESSFUL (total time: 10 seconds)
(MI ARDUINO SI ESTA CONECTADO)
Esa es la versión vieja de la librería. Usa la 3.0.0
hola que tal
Quiero conectar java arduino pero usando eclipse, hay algun tutorial de como hacer la instalacion e implementacion de la librería?
gracias
Con Maven no debe ser difícil
Hola en mi programa no hay problemas para la ventana principal, pero cuando entro a otra ventana me sale este error:
Nomrbe del puerto – COM3; Nombre del método – arduinoTX(); Tipo de excepción – Puerto no abierto.
¿Pudiste arreglar el error?, ¿Estas usando Maven?
Actualmente trabajo con dicha librería y todo funciona muy bien, sin embargo tengo un detalle, el tiempo de transferencia de Java a Arduino es algo tardado, es decir tengo unos botones que me encienden unos led por separado y si presiono dos o mas de ellos rápidamente no me detecta todos los comandos de encendido.
Estoy usando ArduinoRXTX, alguna sugerencia o algún detalle que pueda revisar para solucionar dicho inconveniente?
Hola saludos tengo el siguiente problemas la librería funciona perfectamente, pero cuando uso el método sendData en otra clase o en una clase que implementa sale la siguiente excepción:
com.panamahitek.ArduinoException: Nomrbe del puerto – ; Nombre del método – sendData(); Tipo de excepción – No es posible utilizar este método si se ha iniciado la conexión a Arduino con el método arduinoRX(), el cual es sólo para recibir datos.
le ha pasado a alguien mas ? que puede ser ?
la version de la libreria es 3.0.0 y rxtxcomm 2.2 con NetBeans 8.2 windows 7
Tienes que usar un único objeto. No puedes crear dos instancias de la librería de manera simultánea
Saludos antonygarciagonzalez tengo una aplicacion java que funciona con arduino
y la libreria suya, pero por algun motivo tengo un boton reconectar y si se desconecta el cable usb del arduino cuando doy reconectar me dice que el puerto COM esta cerrado y no se conecta para lograro debo cerrar y volver abrir la aplicacion.
Sera que cambia de puerto COM arduino? al volverse a conectar al USB, o como vuelvo a abrir ese puerto desde java sin reiniciar la aplicacion.
El puerto COM a veces cambia. La librería no está hecha para que el micro se desconecte mientras se ha iniciado la conexión