I keep getting this error...

81 ビュー (過去 30 日間)
Abrahim
Abrahim 2022 年 9 月 17 日
コメント済み: Chris 2023 年 5 月 2 日
I am new to Matlab, and I am trying to create a blinking LED program using an arduino. After I have finished setting up my arduino and my program. I kept encountering the same error and I don't know how to fix it. The error saids, "MATLAB connection to Uno at COM3 exists in your workspace. To create a new connection, clear the existing object".
The following is my program:
a=arduino;
for i=1:10
writeDigitalPin(a,'D13',1);
pause(0.5);
writeDigitalPin(a,'D13',0);
pause(0.5);
end
disp('Done');

採用された回答

Chris
Chris 2022 年 9 月 17 日
編集済み: Chris 2022 年 9 月 17 日
In your workspace, does a already exist, or some other arduino object?
if so, type clear a (or the other relevant object) in the command window. You could put that at the end of your program to try and avoid these errors in the future.
Or, as many do, simply put clear; close all at the beginning of your programs to clean the slate at the start.
  2 件のコメント
Abrahim
Abrahim 2022 年 9 月 17 日
Thanks a lot, the clear; workout. Apparently i did have a in my workspace.
Chris
Chris 2022 年 9 月 17 日
You're welcome.

サインインしてコメントする。

その他の回答 (1 件)

哲史 伊藤
哲史 伊藤 2023 年 5 月 1 日
I also have the same problem in R2021b and in my case the program still reporting the error even I delete using
clear
delete(instrfindall)
fclose( serial(a.Port) );
delete( serial(a.Port) );
clear a
clearvars -global DIN a
my code is following. It works fine for the first time but secondly the error occurs.
error: arduino_cycle_DIN (line 9)
MATLAB connection to Uno at COM3 exists in your workspace. To create a new connection, clear the existing object.
function arduino_cycle_DIN
delete(instrfindall)
clear
global DIN
DIN=nan(100,1);
a=arduino("COM3","Uno");
t=timer;
t.Period=0.01;
t.TimerFcn={@readDIN,a};
t.TasksToExecute=100;
t.ExecutionMode="fixedRate";
start(t)
while t.TasksExecuted<100
DIN(100)
end
delete(t)
fclose( serial(a.Port) );
delete( serial(a.Port) );
clear a
clearvars -global DIN a
function readDIN(obj,event,a)
global DIN
dat=readDigitalPin(a,"D2");
% 1
DIN(2:100)=DIN(1:99);
DIN(100)=dat;
  3 件のコメント
哲史 伊藤
哲史 伊藤 2023 年 5 月 1 日
Thanks Chris,
I always type
clear
before calling the function, but still get the error.
Tetsufumi
Chris
Chris 2023 年 5 月 2 日
Hi Tetsufumi,
I am stumped--but I don't use the arduino very much.
You may want to create a new question so more people will see it. If that doesn't work, you can submit a support request with Mathworks.
Best of luck.
Chris

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMATLAB Support Package for Arduino Hardware についてさらに検索

タグ

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by