Du hast recht mit der Belegung der Pins. Sorry. Muss mich noch mehr einlesen...
Gruß
mic
[Edit]
Echt kniffelig. Inzwischen habe ich noch einen dritten Versuch auf der selben Codebasis gefunden. Die funktioniert leider auch nicht:
https://www.roboternetz.de/community...28-ACS-Problem
Warum verwendet ihr nicht die Funktionen aus der probot-Library?
Die Antwort kann ich mir selbst geben: Weil der Code der Library die Basis für eure Varianten ist:Code:ACS_INIT() Initialisiert das Anti-Collisions-System, muss vor der Benutzung aufgerufen werden. ACS_LEFT() as byte Gibt des Status der Hindernis-Erkennung zurück (linker Sensor): 1 = kein Hindernis 0 = Hindernis erkannt ACS_RIGHT() as byte Gibt des Status der Hindernis-Erkennung zurück (rechter Sensor): 1 = kein Hindernis 0 = Hindernis erkannt
Code:/---[ ACS System ]------------------------------------------------------------- void ACS_INIT(byte sensitivity) { //Calculating the pulse width modulation //Timer_T3PWM(Par1,Par2,PS); //Period=Par1*PS/FOSC (51*8/14,7456MHz=27,66 µs) = 36Khz //Pulse=Par2*PS/FOSC (25*8/14,7456MHz=13,56 µs) On Time //Timer_T3PWM(word period,word PW0,byte PS) '36Khz Timer_T3PWM(51,sensitivity,PS_8); //with Par1, Par2 can reach altered! //Responding To the ACS must be sensitive To these parameters are screwed! } //---[ Read ACS Sensor right ]-------------------------------------------------- byte ACS_RIGHT(void) { byte ACS_Right; Port_WriteBit(IR_left,PORT_OFF); Port_WriteBit(IR_right,PORT_ON); AbsDelay(5); ACS_Right=Port_ReadBit(TSOP); Port_WriteBit(IR_right,PORT_OFF); return ACS_Right; } //---[ Read ACS Sensor left ]--------------------------------------------------- byte ACS_LEFT(void) { byte ACS_Left; Port_WriteBit(IR_right,PORT_OFF); Port_WriteBit(IR_left,PORT_ON); AbsDelay(5); ACS_Left=Port_ReadBit(TSOP); Port_WriteBit(IR_left,PORT_OFF); return ACS_Left; }







Zitieren

Lesezeichen