Go Down

Topic: Detectar automáticamente el puerto COM que usa Arduino (Read 3324 times) previous topic - next topic

curro92

Hola,
estoy intentando comunicarme entre el Arduino y un PC con un programa escrito en C: desde el PC se le envía una cadena de caracteres, y el Arduino contesta con otra cadena.  La comunicación se establece sin problema si paso al programa el nombre del puerto (ttyUSB0 en Ubuntu, COM4 en XP). En Ubuntu no tengo problema para que el programa C detecte automáticamente el puerto, con una rutina que va intentando abrir ttyUSB0, ttyUSB1, ttyUSB2... Pero en XP tengo dos puertos: COM1 ("Puerto de comunicaciones") y COM4 ("USB Serial Port", es el de Arduino). La rutina me abre COM1
¿Conocéis algún modo de que desde el programa pueda distinguir un puerto del otro? Estoy utilizando funciones del WIN32 API (CreateFile, WriteFile, ReadFile)

chiva

#1
Mar 12, 2011, 09:53 pm Last Edit: Mar 12, 2011, 10:04 pm by chiva Reason: 1
Puedes probar a leer el nombre de cada puerto, el "USB Serial Port" o el VID y PID, pero no podrías distinguir entre un Arduino y cualquier otro adaptador de USB a serie de FTDI, a no ser que crees algún protocolo y mandes por ejemplo una 'B' y el Arduino te tenga que responder 'A' o alguna cosa similar.
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

curro92

Gracias chiva
Eso voy a hacer, ir probando a abrir sucesivamente COM0, COM1, COM2..., y verificar en cuál responde un determinado Arduino a un código preestablecido para él.


Go Up