Reading a Voltage in Arduino using Matlab.
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi,
I am trying to read a voltage in Arduino with help from a Potentiometer or a piezo. Until now I'am having some trouble to make the Program run into Matlab. I already used the software from Arduino so the Controller is not the problem since the Serial monitor is reading the values. But I can't actually bring these values to a Graph.
Can somebody help me?
Thank you.
The Code:
clear all
clc
%clear the screen
delete(instrfind({'Port'},{'/dev/tty.usbmodem641'}));
%create the object(serie)
s = serial('/dev/tty.usbmodem641','BaudRate',9600,'Terminator','CR/LF');
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
%abrir puerto
fopen(s);
% parameters.
tmax = 10; % tiempo de captura en s
rate = 33; % resultado experimental (comprobar)
% figure
f = figure('Name','Captura');
a = axes('XLim',[0 tmax],'YLim',[0 5.1]);
l1 = line(nan,nan,'Color','r','LineWidth',2);
l2 = line(nan,nan,'Color','b','LineWidth',2);
xlabel('Tiempo (s)')
ylabel('Voltaje (V)')
title('Captura de voltaje en tiempo real con Arduino')
grid on
hold on
% initialize
v1 = zeros(1,tmax*rate);
v2 = zeros(1,tmax*rate);
i = 1;
t = 0;
tic
while t<tmax
t = toc;
% read the port
a = fscanf(s,'%f,%f');
v1(i)=a(1)*5/1024;
v2(i)=a(2)*5/1024;
% dibujar en la figura
x = linspace(0,i/rate,i);
set(l1,'YData',v1(1:i),'XData',x);
set(l2,'YData',v2(1:i),'XData',x);
drawnow
% seguir
i = i+1;
end
% results
clc;
fprintf('%g s de captura a %g cap/s \n',t,i/t);
%%clean the screen.
fclose(s);
delete(s);
clear s;
2 Commenti
Risposte (0)
Vedere anche
Categorie
Scopri di più su 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!