MATLAB-Arduino Serial Communication Available Feedback

2 vues (au cours des 30 derniers jours)
Eren GÜVEN
Eren GÜVEN le 8 Août 2021
Modifié(e) : Eren GÜVEN le 14 Août 2021
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...

Réponse acceptée

Shivam Ahuja
Shivam Ahuja le 12 Août 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.

Plus de réponses (1)

Eren GÜVEN
Eren GÜVEN le 14 Août 2021
Modifié(e) : Eren GÜVEN le 14 Août 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

Catégories

En savoir plus sur MATLAB Support Package for Arduino Hardware dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by