Plotting force sensor data from Arduino in matlab
6 次查看(过去 30 天)
显示 更早的评论
Hi,
I'm trying to plot live data from a force sensor resistor in matlab using an arduino. I'm using the code I found on mathworks, but I cannot figure out how to adapt it correctly for it to read voltage data.
I need the command a=arduino; b = readVoltage(a,'A0');
But than I'm struggling with the fread function, since the fread function should than read the voltage, but this gives me the error 'In an assignment A(:) = B, the number of elements in A and B must be the same'
when I put data(i) = fread(b);
s = serial('COM3');
s.InputBufferSize = 1; % read only one byte every time
try
fopen(s);
catch err
fclose(instrfind);
error('Make sure you select the correct COM Port where the Arduino is connected.');
end
%% Create a figure window to monitor the live data
Tmax = 1000; % Total time for data collection (s) figure,
grid on,
xlabel ('Time (s)'), ylabel('Voltage'),
axis([0 Tmax+1 0 200]),
%% Read and plot the data from Arduino
Ts = 1; % Sampling time (s)
i = 0;
data = 0;
t = 0;
tic % Start timer
while toc <= Tmax
i = i + 1;
%%Read buffer data
data(i) = fread(s);
%%Read time stamp
% If reading faster than sampling rate, force sampling time.
% If reading slower than sampling rate, nothing can be done. Consider decreasing the set sampling time Ts
t(i) = toc;
if i > 1
T = toc - t(i-1);
while T < Ts
T = toc - t(i-1);
end
end
t(i) = toc;
%%Plot live data
if i > 1
line([t(i-1) t(i)],[data(i-1) data(i)])
drawnow
end
end
fclose(s);
I hope my question is clear. Thanks in advance
0 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Arduino Hardware 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!