MATLAB-Arduino Serial Communication Available Feedback

2 次查看(过去 30 天)
Hello, I am connecting to Arduino on MATLAB App Designer. ( port=arduino('COM7','Uno','Libraries','Servo'); ) I want to get feedback when it is connected to Arduino so when the connection is complete. For example, when the connection is complete, the Lamp should turn from red to green. How can I do it ?
Thanks...

采纳的回答

Shivam Ahuja
Shivam Ahuja 2021-8-12
It is my understanding that you want to establish a connection and you want to get the feedback whether the connection is successful or not. The following solution will help you to achieve this:
1. Create a private property or member variable for App class to denote a connection flag and set it once Arduino object creation is complete.
properties (Access = private)
IsConnected = false % Initially set to false to denote no connection
end
2. Create the Arduino object in try/catch block and perform digital operation in try/catch itself. If something is wrong with the connection, the Arduino object creation itself will error out and will go to the catch statement and the digital operation will double check the Arduino object connection.
function ConnectButtonPushed(app, event)
try
a = arduino;
app.IsConnected = true;
%digital operation
catch
app.IsConnected = false;
%digital operation
end
end
Refer to the MATLAB App Designer documentation for more information on how to use properties in app class.

更多回答(1 个)

Eren GÜVEN
Eren GÜVEN 2021-8-14
编辑:Eren GÜVEN 2021-8-14
Thank you so much my friend. The project is running. Here is the project :
function startupFcn(app)
clear all;
delete(instrfindall);
end
function ConnectButtonButtonPushed(app, event)
global port;
global s;
port=arduino('COM7','Uno','Libraries','Servo');
s=servo(port,'D3');
try
app.IsConnected = true;
app.ActivityLamp.Color='green';
%digital operation
catch
app.IsConnected = false;
app.ActivityLamp.Color='red';
%digital operation
end
end
function DegreeKnobValueChanging(app, event)
global port;
global s;
changingValue = event.Value;
degree=changingValue/180;
writePosition(s,degree);
end
properties (Access = private)
IsConnected = false
end
function CloseButtonPushed(app, event)
global port;
clear port;
app.delete;
clear all;
delete(instrfindall);
end

类别

Help CenterFile 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!

Translated by