Trocadero
15.06.2016, 10:00
Hallo zusammen,
ich übertrage Spannungswerte vom Arduino Mega Board an Matlab. Das funktioniert auch soweit. Über die Spannungswerte möchte ich dann integrieren, um den Strom zu berechnen und anschließend die Ladung.
Da ich die Ladung über die Integration des Stroms nach der Zeit bestimmen kann, würde ich nun dem ganzen gernen einen Zeitstempel verpassen. Bisher lese ich einfach nur die Daten in matlab ein, so schnell wie sie vom Arduino gesendet werden.
delete(instrfind({'Port'},{'COM5'}));
s = serial('COM5', 'BaudRate', 9600);
fopen(s);
voltage_history=zeros(1,1000);
time=zeros(1,1000);
current=zeros(1,1000);
for j=1:2
a=fscanf(s,'%s');
if a==':'
for i=1:1000
voltage_history(i)=fscanf(s,'%f');
time(i)=i;
current(i)=voltage_history(i)/150573;
end
end
end
fclose(s);
delete(s);
Dazu stellen sich mir jetzt ein paar Fragen und hoffe ihr könnt sie mir beantworten:
Wie schnell sendet das Arduino eigentlich die Spannungswerte?
Liest Matlab alle Werte ein, oder gehen auch manche Werte verloren, weil es diese vielleicht nicht so schnell verarbeiten kann?
Bisher kann ich nur ein Diagram erstellen mit y-Achse = Spannung und x-Achse = Anzahl an Werten. Die x-Achse würde ich gerne durch Zeit ersetzen. Habe natürlich schon im Internet gesucht, war mit den Ergebnissen aber nicht wirklich zufrieden. Mache ich das am Besten mit tic toc, oder kann man irgendwie die Milisekunden mitzählen?
Viele Grüße
ich übertrage Spannungswerte vom Arduino Mega Board an Matlab. Das funktioniert auch soweit. Über die Spannungswerte möchte ich dann integrieren, um den Strom zu berechnen und anschließend die Ladung.
Da ich die Ladung über die Integration des Stroms nach der Zeit bestimmen kann, würde ich nun dem ganzen gernen einen Zeitstempel verpassen. Bisher lese ich einfach nur die Daten in matlab ein, so schnell wie sie vom Arduino gesendet werden.
delete(instrfind({'Port'},{'COM5'}));
s = serial('COM5', 'BaudRate', 9600);
fopen(s);
voltage_history=zeros(1,1000);
time=zeros(1,1000);
current=zeros(1,1000);
for j=1:2
a=fscanf(s,'%s');
if a==':'
for i=1:1000
voltage_history(i)=fscanf(s,'%f');
time(i)=i;
current(i)=voltage_history(i)/150573;
end
end
end
fclose(s);
delete(s);
Dazu stellen sich mir jetzt ein paar Fragen und hoffe ihr könnt sie mir beantworten:
Wie schnell sendet das Arduino eigentlich die Spannungswerte?
Liest Matlab alle Werte ein, oder gehen auch manche Werte verloren, weil es diese vielleicht nicht so schnell verarbeiten kann?
Bisher kann ich nur ein Diagram erstellen mit y-Achse = Spannung und x-Achse = Anzahl an Werten. Die x-Achse würde ich gerne durch Zeit ersetzen. Habe natürlich schon im Internet gesucht, war mit den Ergebnissen aber nicht wirklich zufrieden. Mache ich das am Besten mit tic toc, oder kann man irgendwie die Milisekunden mitzählen?
Viele Grüße