Um auszuschließen, dass ein komplettes Offenlassen der Kontakte Probleme macht, habe ich mal einen 10kOhm Widerstand eingesteckt, der dann Werte von ca. 1023/2 liefern sollte.
Hier der Code für die Auswertung
Ich benutze hier zum Test direkt ReadADC() um etwas längere Sleep-Zeiten zu haben. Sicher ist sicher.Code:void sensorData(unsigned int* left, unsigned int* right) { static unsigned int leftBright, leftDark; static unsigned int rightBright, rightDark; FrontLED(OFF); Msleep(1); leftDark = ReadADC(IR_LEFT, 7*36); rightDark = ReadADC(IR_RIGHT, 7*36); FrontLED(ON); Msleep(1); leftBright = ReadADC(IR_LEFT, 7*36); rightBright = ReadADC(IR_RIGHT, 7*36); *left = leftBright-leftDark; *right = rightBright-rightDark; SerPrint("\nDark: "); PrintInt(leftDark); SerPrint(" / "); PrintInt(rightDark); SerPrint(" Bright: "); PrintInt(leftBright); SerPrint(" / "); PrintInt(rightBright); }
Ergebnis:
Wenn ich die Kurzschlussbrücke und den Widerstand einstecke, bekomme ich für beide Seiten 1023. Wenn ich nur den Widerstand einstecke und die andere Seite offen lasse, bekomme ich ca. 1023/2 (meist so 514) - auch auf beiden Seiten.
Die Seite, in die man etwas einsteckt, ist dabei egal, es tritt immer das gleiche Phänomen auf: Nur der höhere ADC-Wert kommt an.
Ich hab seit Stunden alle Verbindungen durchgemessen und kann keine Kurzschlüsse o.ä. feststellen. Jetzt weiß ich nicht mehr weiter ...![]()







Zitieren

Lesezeichen