I keep getting this error...
显示 更早的评论
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');
采纳的回答
更多回答(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 个评论
Chris
2023-5-1
@哲史 伊藤 This works fine as a standalone function for me. However, if I create a connection with the arduino in the base workspace, and then call the function, I get the error.
Normally, a variable created inside a particular workspace or function is scoped to that workspace--not accessible from another function unless passed into the function as an argument. However, since only one connection to the arduino is allowed, it would appear these connections--when made from the base workspace--are sort of global in scope.
If you type clear in the command window before calling the function, does that fix your problem?
哲史 伊藤
2023-5-1
Thanks Chris,
I always type
clear
before calling the function, but still get the error.
Tetsufumi
类别
在 帮助中心 和 File Exchange 中查找有关 MATLAB Support Package for Arduino Hardware 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!