MATLAB-Arduino Serial Communication Available Feedback

2 visualizzazioni (ultimi 30 giorni)
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...

Risposta accettata

Shivam Ahuja
Shivam Ahuja il 12 Ago 2021
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.

Più risposte (1)

Eren GÜVEN
Eren GÜVEN il 14 Ago 2021
Modificato: Eren GÜVEN il 14 Ago 2021
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

Categorie

Scopri di più su MATLAB Support Package for Arduino Hardware in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by