problem with arduino serial communication in LINUX.

Tengo un problema que no me conecta Arduino con una aplicación en JAVA a través de comunicación serial. (en windows funciona correctamente)

El código es el siguiente:


public class SerialTest implements SerialPortEventListener {

Integer entraConexion = 0;
SerialPort serialPort;

//Crea instancia de clase, para acceder a todos sus variables y metodos
BD bd_conexion_mysql = new BD();

//Crea instancia de la clase consultas bd
clase_consultas_bd ccb = new clase_consultas_bd();
claseFunciones cf = new claseFunciones();

Integer id_piso_fk_registro_solicitud = 6;

/** The port we’re normally going to use. */
private static final String PORT_NAMES = {"/dev/tty.usbserial-A9007UX1", // Mac OS X
“/dev/ttyUSB0”, // Linux
“COM2”, // Windows
};
//private InputStream input = null;
private BufferedReader input;
private OutputStream output;
private static final int TIME_OUT = 2000;
private static final int DATA_RATE = 9600;

public void initialize() {
CommPortIdentifier portId = null;
Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();

//First, Find an instance of serial port as set in PORT_NAMES.
while (portEnum.hasMoreElements()) {
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
for (String portName : PORT_NAMES) {
if (currPortId.getName().equals(portName)) {
portId = currPortId;
break;
}
}
}
if (portId == null) {
System.out.println(“Could not find COM port.”);
return;
}

try {
serialPort = (SerialPort) portId.open(this.getClass().getName(),
TIME_OUT);
serialPort.setSerialPortParams(DATA_RATE,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);

// open the streams
input = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
output = serialPort.getOutputStream();

serialPort.addEventListener(this);
serialPort.notifyOnDataAvailable(true);
} catch (Exception e) {
System.err.println(e.toString());
}
}

El resultado al ejecutar, es que no se puede comunicar con el puerto.

—> Could not find COM port.

I’m not sure if you intended to post your query in the English language section. I’m not sure what language you have posted in so I am guessing at the problem.

I think your code only checks for serial port /dev/ttyUSB0 on Linux. On my system that is not where the Arduino appears - it is usually /dev/ttyS80. Look it up in the Arduino IDE.

If you are using the JSSC serial library it has a function to list the serial ports. I can’t remember if RxTx has - but JSSC is the new kid on the block.

…R

en ocasiones traen mas puertos serial escondidos, sobretodo laptops, prueba buscar en el IDE de arduino cual es, o cambia "/dev/ttyUSB0", por "/dev/ttyUSB1" y así.