-
-
Moderator
Robotik Visionär
Hallo teHIngo,
du solltest mal dein gesamtes Programm posten, dann könnte man dir vielleicht zeigen, wo man wie welche Variablen initialisieren könnte..
Ein Problem scheint mir schon beim Setzen der Motorpower zu bestehen: Du hast nur ein MotorSpeed(spd0,spd1); direkt nach der Initialisierung der Variablen (da haben spd0/1 den Wert 175). Nach der Auswertung der ODO-Sensoren und nach der anschliesenden Änderung von spd0/1 wird die Funktion verlassen und alles ist vergessen.
Noch ein paar Anmerkungen (vielleicht etwas schludrig wegen Spongebob):
- In deiner Schleife, die wegen <=50, genau 51 mal ausgeführt wird, werden mit OdometrieData() keine neuen Daten für OdoData eingelesen.
- Die Werte der Odometriesensoren sind in der Praxis nie 0
- Die Befehle comp=n0/n1; if(comp > 1) bzw. if(comp < 1) könnte man auch durch if (n0 > n1) bzw. if (n0 < n1) ersetzen. Das für einen AVR ungünstge float comp; könnte dann entfallen.
Zu "if(OdoData[0]/old0 > 2 || OdoData[0]/old0 < 0.5)"
Der Übergang zwischen den Hell-/Dunkelfeldern ergibt keine Wertesprünge, der Verlauf ist annähernd sinusförmig.
Mehr gibt's erst nach Shrek..
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen