Hallo Leute ich brauche mal eure Hilfe in Matlab.
Ich bin absoluter Neuling auf dem Gebiet und habe folgendes Problem.
Ich habe Matlab an einen Mikrocontroller angeschlossen der mir über die serielle
Schnittstelle seine Daten liefert(Temperatur, Luftfeuchtigkeit, Licht und Reichweite).
Ich will die Daten in Matlab einlesen und halt grafisch darstellen. Ich habe das auch so weit hin bekommen,
dass Matlab die Daten statisch
mittels der Plot-Funktion grafisch darstellt.
Ich schreibe dafür die ankommenden Daten die ja laufend aktualisiert werden in ein Array
mit von mir festgelegter Grösse und lasse dann das Array plotten.
Mein Problem ist jetzt, wie ich das hin bekomme, dass ich die Daten
dynamisch darstellen kann,sprich die Werte sollen sich in der Grafik selbst fortlaufend aktualisieren.
Hätte einer da evtl einen Tipp für mich ?
clear all;
s = serial('COM1','BAUD',19200,'DataBits',8,'StopBits',1,'FlowControl','hardware');
fopen(s);
fid=fopen('test.dat','w')
i=1;
counter=1;
for counter=1:50
 if i==21
 i=i-20;
 end;
tlog=false; %Logical initialisieren
 while ~tlog
tline=fscanf(s); %naechste Zeile aus ASCII-File holen
index\_s=regexpi(tline,'Hauptboard'); %String in tline suchen
 if ~isempty(index\_s) %Treffer?
 tlog=true;
 for j=1:4
 index\_s=regexpi(tline,':frowning:');
 if isempty(index\_s)
 index\_sem=regexpi(tline,','); %Trennzeichen suchen, wird hier
 %nicht ausgewertet
 temp=strrep(tline,',',' '); %Trennzeichen durch Blank ersetzen
 string=strread(temp,'%s',6); %String-Array erzeugen, Anzahl
 %der Variablen angeben
 temperatur(i,j)=sscanf(char(string(3)),'%d'); %Array-Elemente ausgeben
 luftfeuchtigkeit(i,j)=sscanf(char(string(4)),'%d'); %Array-Elemente ausgeben
 licht(i,j)=sscanf(char(string(5)),'%d'); %Array-Elemente ausgeben
 reichweite(i,j)=sscanf(char(string(6)),'%d'); %Array-Elemente ausgeben
 board(j)=true; 
 else
 board(j)=false;
 end;%zweites if
 tline=fscanf(s);
 end %for-Schleife
 end; %erstes if
 end % while Schleife
i=i+1;
end %erstes For
fclose(s);
fclose(fid);
%--------------------------PLOT-Funktion----------------------------------
for i=1:20
x(i)=i;
end
 a1=temperatur;
 a2=luftfeuchtigkeit;
 a3=reichweite;
 a4=licht;
 for j=1:4
 if board(j)==true
 ya1=a1(:,j);
 ya2=a2(:,j);
 ya3=a3(:,j);
 ya4=a4(:,j);
 figure;
 plot(x,ya1,x,ya2,x,ya3,x,ya4);
 grid on;
 end;%if
 end