Moin,
ich ahbe ein kleines Programm geschrieben, mit dem man feststellen kann, ob und welcher Odometriesensor funktioniert und welcher nicht.

Man muss dazu die Räder und die Encoderscheiben abbauen und ein Terminalprogramm starten. Wennman jetzt vor einen der Sensoren ein weißes Blatt hält, steht im Terminalprogrammfenster immer wieder,vor welcher Seite man das Blatt hält. Bei mir habe ich festgestellt, dass selbst bei ausgeschalteten IR-Dioden immer nur rechts kommt. Ich erkläre mir das so: Weißes Blatt Papier vor dem Sensor heißt gleich Nullsignal am Eingang, wie man in der Doku lesen kann. Also heißt ein defekter Transistor oder eine defekte IR-Diode auch Nullsignal. Da mein rechter Sensor immer null ist egal was anliegt, denke ich, dass entweder Diode oder Transistor kaputt sind. Mit meinem ASURO hatte ich bis jetzt eh nicht viel Glück. Der linke Motor hat einen Lagerschaden und das schon von anfang an. Sieht nach einem Herstellungsfehler aus. Muss ich bei Gelegenheit mal austauschen, sonst fährt mein ASURO bei Geradeausfahrt immer nur Linkskurven *g*. Wenn ihr Fragen zum Programm habt oder etwas damit nicht stimmt, lasst es mich wissen.

mfG Sebastian

Code:
#include "asuro.h"

/*************************************************************************** 
*                                                                          * 
*   Dieses Programm ist für den ASURO Roboter                              * 
*                                                                          * 
*   Odometriedaten über die Infrarotschnittstelle auslesen                 * 
*                                                                          * 
***************************************************************************/ 


/*************************************************************************** 
*                                                                          * 
*   Mit diesem Programm sollen die Werte der Odometriesensoren ausgelesen  *
*   werden und über die IR-Schnittstelle an den Computer übergeben werden, *
*   damit man eventuelle Fehler oder ein Nichtfunktionieren der Sensoren   * 
*   erkennen und beheben kann. Vor dem aus lesen müssen die Räder und die  *
*   Encoderscheiben entfernt werden. Außerdem muss das Windows Terminal-   *
*   programm gestartet werden. Das Terminalprogramm sollte immer nur die   *
*   Seite anzeigen, vor der ein weißes Blatt Papier gehalten wird.         *
*                                                                          *
***************************************************************************/ 


/***************************************************************************  
* 
*   unsigned int data[2]; = Speicher für Odometriesensoren reservieren 
* 
*   data[0] = linker Sensor (T11), data[1] = rechter Sensor (T12)
* 
*   Autor: Sebastian Reiff ,2005
* 
****************************************************************************/ 

int main(void)
{
    unsigned int data[2];
	Init();
	while(1)
	{
	    data[0]=0;
	    data[1]=0;
	    OdometrieData(data);
   	    if(data[0]>data[1])
	    {
	        SerWrite("links",5);
			Msleep(200);
	    }
	    else
	    {
	        SerWrite("rechts",6);
			Msleep(200);
	    }
	}
	return 0;
}