So und nun gleich noch den Code. Also geschrieben mit MATLAB aber ich hoffe das sollte nicht so schlimm sein.
%% Positionierung
% Achsenbezeichnung (Rotationsachse: 2)
achse = 2;
% Richtung vorgeben
richtung = 0;
% Schrittzahl
schritte = 32 * (messbereich_rot / 2);
% Anzahl der Durchläufe der for-Schleife
schleifenzahl_rot = messbereich_rot/schrittweite_rot;
%% Hauptschleife
% Vorbelegung
% Zeilenvektor vorbelegen
av_m_1 = zeros(1,schleifenzahl_rot+1);
av_m_2 = zeros(1,schleifenzahl_rot+1);
av_1 = zeros(1,n_messungen);
av_2 = zeros(1,n_messungen);
% av_3 = zeros(1,schleifenzahl_rot+1);
U_1 = zeros(1,n_messungen);
U_2 = zeros(1,n_messungen);
U_m_1 = zeros(1,schleifenzahl_rot+1);
U_m_2 = zeros(1,schleifenzahl_rot+1);
% U_3 = zeros(1,schleifenzahl_rot+1);
p_1 = zeros(1,schleifenzahl_rot+1);
p_2 = zeros(1,schleifenzahl_rot+1);
% p_3 = zeros(1,schleifenzahl_rot+1);
% Schalter für Initialisierung
init_status = 0;
% Nutzereingabe
disp('SCHLAUCHANSCHLUSS PRÜFEN!!!')
wahl = input('Messfahrt starten? [j/n]','s');
if strcmp(wahl, 'j') == 1
% Rotation zur Startposition
disp('Sonde wird positioniert.')
motor(dio,achse,richtung,schritte)
% von nun an sind Takt- und Richtungspins festgelegt und brauchen nicht
% erneut initialisiert werden
init_status = 1;
% Abfrage aktueller Winkel
winkel_aktuell = messbereich_rot/2;
% Ausgabe aktueller Winkel
disp('aktueller Winkel in °: ')
disp(winkel_aktuell)
disp('Messfahrt wird gestartet')
for i = 1:n_messungen
% Auslesen der Analogen Inputs 0..2
av_1(i)= com_arduino.analogRead(0);
av_2(i)= com_arduino.analogRead(1);
% av_3(i)= com_arduino.analogRead(2);
% Umwandeln in Spannungswerte
% Unidirektional
U_1(i) = 0.5 + av_1(i)/1024 * 4;
% Bidirektional
U_2(i) = 0.5 + av_2(i)/1024 * 4;
% U_3(i) = 0.5 + av_3(i)/1024 * 4;
end
% Mittelwerte bilden
av_m_1(1) = mean(av_1);
av_m_2(1) = mean(av_2);
U_m_1(1) = mean(U_1);
U_m_2(1) = mean(U_2);
% U_m_3 = mean(U_3);
% Umrechnung in Drücke (ACHTUNG: SENSORMESSBEREICH ANPASSEN!)
% Unidirektional
p_1(1) = (U_m_1(1) - 0.5)/4 * 500;
% Bidirektional
p_2(1) = (U_m_2(1) - 2.5)/2 * 500;
% p_3(1) = (U_m_3 - 2.5)/2 * 500;
% Plot vorbereiten
figure(1)
% Messfahrt
for n = 2:(schleifenzahl_rot + 1)
% Abfrage und Ausgabe des aktuellen Winkels
winkel_aktuell = winkel_aktuell - schrittweite_rot;
disp(winkel_aktuell)
disp('Messfahrt')
% Richtung umkehren
richtung = 1;
% Schrittzahl bestimmen
schritte = 32 * schrittweite_rot;
motor(dio,achse,richtung,schritte)
pause(0.5)
% Messung
for i = 1:n_messungen
% Auslesen der Analogen Inputs 0..2
av_1(i)= com_arduino.analogRead(0);
av_2(i)= com_arduino.analogRead(1);
% av_3(i)= com_arduino.analogRead(2);
% Umwandeln in Spannungswerte
% Undidirektional
U_1(i) = 0.5 + av_1(i)/1024 * 4;
% Bidirektional
U_2(i) = 0.5 + av_2(i)/1024 * 4;
% U_3(i) = 0.5 + av_3(i)/1024 * 4;
end
% Mittelwerte bilden
av_m_1(n) = mean(av_1);
av_m_2(n) = mean(av_2);
U_m_1(n) = mean(U_1);
U_m_2(n) = mean(U_2);
% U_m_3 = mean(U_3);
% Umrechnung in Drücke (ACHTUNG: SENSORMESSBEREICH ANPASSEN!)
% Unidirektional
p_1(n) = (U_m_1(n) - 0.5)/4 * 500;
% Bidirrektional
p_2(n) = (U_m_2(n) - 2.5)/2 * 500;
% p_3(n) = (U_m_3 - 2.5)/2 * 500;