Ich messe eine Geschwindigkeit, die fehlerbehaftet ist und über den Arduino kalibriert werden soll. Dabei ist mir als blutigem Anfänger Unsicherheiten zur Realisierung aufgetaucht:
Es soll ungefähr so funktionieren:
- Solange ein Wert gemessen wird, der exakt dem alten entspricht soll eine while Schleife weiter durchlaufen wären als wäre nichts gewesen
- Sobald der Wert sich ändert soll der neue Wert an die nächste Stelle des Arrays gespeichert werden und der ganze Prozess von vorne beginnen. Ich würde gerne 3 Werte so messen.
Mein bisheriger miserabler Code Versuch war ungefähr so:
for(int i=0; i<3; i++){ //Schleife zum Eingeben der 3 Werte in den Array //3 Tests machen und die Werte in das array speedvals schreiben
//StartWert der Kalibrierung (Abhängig von der geforderten Geschwindigkeit?
while(true){ //Während der Speedvalue der aktuellen for Schleife den errechneten Speedvalues durch CalcSpeed entspricht, berechne den Wert neu
if(currentSpeedVal != speedvals[i]){ //Wenn ein neuer Wert gemessen wurde soll i um 1 erhöht werden und die nächste Messung starten können
Serial.print("curSpeedval: ");
Serial.println(currentSpeedVal);
Serial.print("speedval[");
Serial.print(i);
Serial.print("]: ");
Serial.println(speedvals[i]);
Serial.println("Break");
break;
}
else{
speedvals[i] = CalcSpeed();
Serial.println("***************");//Alles folgende spft
Serial.print("Gemessener Wert für ");
Serial.print(i);
Serial.print(". Wert im Array: ");
Serial.println(speedvals[i]);
delay(100); //Damit nicht viel zu viele Werte berechnet werden spft???
currentSpeedVal = CalcSpeed();
}
}
}
Geht das auch einfacher oder bin ich auf dem richtigen Dampfer um das ganze zu realisieren?
Danke im Voraus