Hallo Double_A,
testen kann ich aktuell nicht, da mein PC nach einem Plattenausfall noch nicht 'komplett' ist.
Von der Idee her ist das auch nicht schlecht. Ich bin mir nicht sicher, aber ich meine, dass schon mal jemand etwas Ähnliches, zumindest an der Kante entlang, hier gemacht hatte.
Mir sind an deinem Programm 3 Dinge aufgefallen.
1: Den 'Ausstieg' mit "return 0;" solltest du durch "while(1);" ersetzen.
Kontrollerprogramme haben kein Betriebssystem wohin es zurück gehen könnte.
2: Was wird (theoretisch) passieren, wenn der letzte Messwert immer um den Faktor 1.09 größer wird? Der Asuro sich also sehr lansam der Linie nähert?
Durch dein "if (lineData[LEFT] > 1.1 * lastLeft)" geht es also in den else-Zweig.
Dort wird nun der größere, letzte Messwert gespeichert.
Und wieder, und wieder, und wieder, ...
Du siehst worauf ich hinaus will?
3) Du 'reisst' fürchterlich an den Motoren mit der wahrscheinlich häufigen, extremen Richtungsänderung.
Aber hier kann ich wohl sagen, dass die Motoren / Getriebe das aushalten. Die Musik vom Asuro über die Motoren erzeugt, macht nichts anderes und noch viel häufiger
Gruß Sternthaler.
P.S.: Ich versuche mal meinen PC wieder weiter zu installieren.
Lesezeichen