How do I close the port Arduino is connected to?

31 visualizaciones (últimos 30 días)
Mathews John
Mathews John el 15 de Jul. de 2015
Editada: Walter Roberson el 8 de Feb. de 2021
I have developed a GUI which uses the Arduino support package. Every time I close and rerun the program an error pops up saying the port is already being used by MATLAB. I clear all the variables and can rerun the program without any issues. I wanted to know if there was a way to close the connection with the arduino when the figure is closed.
I already tried to delete the arduino object but that did not work. I also tried to clear the object which also oddly did not work. Can someone help?
  2 comentarios
Adithya Vivek
Adithya Vivek el 24 de Jul. de 2017
Editada: Walter Roberson el 8 de Feb. de 2021
Dear Mathews, I apologize for not being able to answer your question, but could you please help with a similar problem I have? I am trying to create a way to autodetect the com port the arduino is connected to such that I can create an application usable on any Windows computer. I created a link for this question here: https://www.mathworks.com/matlabcentral/answers/349958-auto-detection-of-the-com-port-that-arduino-is-connected-to-then-defined-as-an-argument-that-can-be
I would be infinitely grateful!
PAUL ANGARITA
PAUL ANGARITA el 8 de Feb. de 2021
Editada: PAUL ANGARITA el 8 de Feb. de 2021
I will give my contribution. Sorry for late reply. I recommend using the Command
.... clear... .
Remember it cleans all Variables in WORKSPACE. If you need to delete only the object ...a = arduino().. so only delete ...a
Remember to close or delete all objects regarding arduino stuff, firstly.

Iniciar sesión para comentar.

Respuestas (3)

Mathews John
Mathews John el 17 de Jul. de 2015
I think I figured it out.
a = arduino(); %Creates an arduino object and connects to the hardware.
% Do stuff while open
fclose( serial(a.Port) ); %Create a serial object with the port Arduino is connected to it and close it
clear a; %Remove the variable
Don't know if there's a better way
  2 comentarios
Image Analyst
Image Analyst el 18 de Jul. de 2015
Not that I know of. It's only a line of code so I don't know how it could be simpler or better. glad my suggestion of fclose() worked for you.
Bill Silk
Bill Silk el 27 de Dic. de 2016
Worked for me -thank you.

Iniciar sesión para comentar.


Azrg
Azrg el 23 de Oct. de 2019
Whenever I get the message that a Arduino is already used when it is not, I use these two functions:
fclose(instrfindall);
delete(instrfindall);
Works for me :) hope it helps someone else who has this issue

Image Analyst
Image Analyst el 15 de Jul. de 2015
Perhaps call fclose():
s = serial('COM1');
fopen(s)
fprintf(s, '*IDN?')
idn = fscanf(s);
fclose(s)
  1 comentario
Mathews John
Mathews John el 17 de Jul. de 2015
Sorry for the late reply. I just tried this and it did not work.

Iniciar sesión para comentar.

Categorías

Más información sobre Arduino Hardware en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by