Hallo,
eine Kurve sollte er wenigstens mal fahren.
Mein Asuro hat für die linke und rechte ODO-Scheibe unterschiedliche Werte. Die habe ich in dem Code beschrieben. Beim Selbstcompilieren müsste man evtl. diese Werte anpassen. Außerdem fahre ich mit ODO-Scheiben, die 24 Segmente haben (12 schwarze, 12 weiße). Das ergibt dann rund 1 mm Fahrtstrecke pro Segmentwechsel.
Hans.
Code:
#define MM_PRO_SEGWE 1; // zurückgelegter Weg für 1 Odo-Segmentwechsel in Millimeter
#include "asuro.h"
void HoleGefWeg(unsigned int *WegData, char *Drehrichtung)
{
unsigned int data[2];
unsigned int tmpWertOdoLi, tmpWertOdoRe; // Helligkeitswerte der Odoscheiben links / rechts
unsigned int static tmpWertOdoLiAlt, tmpWertOdoReAlt; // Helligkeitswerte der Odoscheiben links / rechts
// behalten!! ---> static Definition
unsigned int WegLinks, WegRechts; // zurückgelegter Weg des linken bzw. rechten Rades
unsigned int OdoWertReHell; // Odo-Wert für linke Odoscheibe, ab dem eine weiße Fläche angenommen wird
unsigned int OdoWertReDkl; // Odo-Wert für linke Odoscheibe, ab dem eine dunkle Fläche angenommen wird
unsigned int OdoWertLiHell; // Odo-Wert für rechte Odoscheibe, ab dem eine weiße Fläche angenommen wird
unsigned int OdoWertLiDkl; // Odo-Wert für rechte Odoscheibe, ab dem eine dunkle Fläche angenommen wird
unsigned int dNeutrZoneLi; // Neutrale Zone der Odowerte
unsigned int dNeutrZoneRe; // Neutrale Zone der Odowerte
switch(Drehrichtung[1]) //Drehrichtung rechtes Rad
{
case 1: //positiv, d.h. vorwärts
{
OdoWertReHell = 700; // Odo-Wert für rechte Odoscheibe, ab dem eine weiße Fläche angenommen wird
OdoWertReDkl = 700; // Odo-Wert für rechte Odoscheibe, ab dem eine dunkle Fläche angenommen wird
break;
....
Lesezeichen