Matlab only receives 1 arduino data
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Erwin Avendaño
le 2 Déc 2019
Commenté : Walter Roberson
le 4 Fév 2025 à 22:20
I want to graph some data that comes from arduino to matlab but, I only graph 1 data from the series of data that I have, why? thank you very much for reading me
<<<<<<<<<<<<<<<<<<CODE>>>>>>>>>>>>>>>>>>>>>>>>>><<
function Matlab_Arduino
close all;
clc;
y=zeros(1,1000); %Vector donde se guardaran los datos
%Inicializo el puerto serial que utilizare
delete(instrfind({'Port'},{'COM13'}));
puerto_serial=serial('COM13');
puerto_serial.BaudRate=9600;
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
%Abro el puerto serial
fopen(puerto_serial);
figure('Name','Serial communication: Matlab + Arduino')
title('SERIAL COMMUNICATION MATLAB+ARDUINO');
xlabel('time');
ylabel('aceleration');
grid on;
hold on;
%graph
ylim([0 100]);
xlim([0 100]);
aceleracion=fscanf(puerto_serial,'%d');
plot(aceleration,'X-r');
fclose(puerto_serial);
delete(puerto_serial);
clear all;
end
0 commentaires
Réponse acceptée
Walter Roberson
le 2 Déc 2019
By default, fscanf() only reads until the first terminator. When data is sent from arduino serial port, it is most common to send only one data point per packet.
You will need to loop reading data and adding it to the graph. I recommend that you look at animatedline()
Plus de réponses (1)
Oscar
le 4 Fév 2025 à 15:24
Modifié(e) : Oscar
le 4 Fév 2025 à 15:26
Use readline instead of fscanf command
3 commentaires
Walter Roberson
le 4 Fév 2025 à 22:20
If you construct a serial() object, then readline() applied to the serial() object is simply not defined.
serial() objects are not recommended, having been functionally replaced by serialport() objects. readline() is defined for serialport() objects.
Voir également
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!