PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Odometrie - Encoder Werte



Early09
31.12.2011, 11:37
Hallo an alle,

dies ist mein erster Beitrag in diesem Forum. Ich habe mir zum Einstieg den Asuro gekauft. Das zusammenlöten bereitete keine Probleme. Auch der SelfTest ist erfolgreich.

Danach habe ich mir die neue Asuro Library von der Sourceforge seite heruntergeladen. Die Version: 280rc1.

Nun wollte ich mit folgenden Programm die Odometrie Testen:


#include "asuro.h"
#include "stdlib.h"

void SerWert(unsigned int iWert)
{
// Quelle: roboter.net-con.net/asuro/source/odotest1.html
unsigned char cWert[6] = " ";

itoa(iWert, cWert, 10);
SerWrite(cWert, 5);
SerWrite(", ", 2);
}

int main(void)
{
int diff,weg;
Init();
EncoderInit();
StatusLED(OFF);
MotorDir(FWD,FWD);
MotorSpeed(120,120);
EncoderStart();

while (1)
{
SerWert(encoder[0]);
SerWrite("\t", 1);
SerWert(encoder[1]);
SerWrite("\n\r", 2);
}
return 0;
}

Für den rechten Reifen wird auch encoder[1] jeweils erhöht. Bei dem linken Reifen also encoder[0] bleibt der Wert leider die ganze Zeit auf 0.

Woran könnte das sein. Ich freue mich auf eure Antworten.

Vielen dank.

Viele Grüße

Valen
01.01.2012, 22:55
Die encoder[] werten sind das Anzahl von Schwärz-Weiss übergangen von den Encoderscheiben der die Encoder-routinen erkannt hat. Das wird bewertet auf Basis die Helligkeit Änderung der Odometrie Sensoren. In die Datei myasuro.h stehen die Grenz-werten wobei Schwarz oder Weiß erkannt wird. Vermutlich stimmen diese werten nicht über ein mit deine linken Reifen. Wann du diese geändert hat, sie gespeichert sind, muss du erst die Lib Dateien Compilieren biss sie in dein Programm eingebunden werden.