Naja wenn der Selbsttest den Fototransistor abfragt und dieser kaputt ist (oder die Diode kaputt ist) und er deswegen nicht durchschalten kann, kann das Programm nicht weiter durchlaufen.
Naja wenn der Selbsttest den Fototransistor abfragt und dieser kaputt ist (oder die Diode kaputt ist) und er deswegen nicht durchschalten kann, kann das Programm nicht weiter durchlaufen.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Die Fototransistoren (die rosa Teile LPT80A) leuchten beide. Der linke etwas stärker wie mir scheint.
Ein Unterschied besteht beim Start, der linke leuchtet beim Start sofort schwach und wird dann kurzzeitig heller, der rechte bleibt anfangs dunkel und wird dann erst hell, allerdings nicht so stark.
Beide werden dann erst wieder beim Odometrietest hell und der Selbsttest bleibt hängen. Da haben beide das Dauerleuchten.
Öh sind die Rosa Bauteile nicht die Dioden? Wenn die leuchten können es nur die Dioden sein. Hast du die vielleicht falsch eingebaut? Also Dioden mit Transistor vertauscht?
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Äh, habe grade noch mal nachgeschaut, das ist tatsächlich möglich:
In der Anleitung steht:
T11/T12: LPT80A Fototransistor (farblos)
D13/D14: IRL80A IR-LED (rosa)
In der Stückliste derselben Anleitung steht's aber grad andersherum:
IIL80A IR-LED (farblos)
LPT80A Fototransistor (rosa)
Echt bescheuert, was gilt denn nun?
Die Rosa Bauteile sind die LEDs. Das siehst du auch daran das die leuchten wenn du den Trick mit der Handykamera machst
Ich hab auch den ein oder anderen Fehler in den Anleitungen des Asuros gefunden....u.a. der Schaltplan vom Snake Vision. Da muss man echt gut aufpassen![]()
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Ich habe noch mal alles überprüft. Die rosa Teile sind die IR-LED, das heißt die Anleitung stimmt, aber die Stückliste ist falsch.
Das bedeutet aber auch, daß ich die IR-LED IRL80A richtig auf D13/D14 plaziert habe und die farblosen Fototransistoren LPT80A auf T11/T12.
Leider bedeutet das aber auch, daß mein kurzer Hoffnungsschimmer grade abgeraucht ist und ich wieder am Anfang des Problems stehe.
Da sich der Selbsttest bei den Reflexgebern aufhängt und du sagst das die Dioden leuchten würde ich mal bei den Transistoren ansetzen, also neue Einlöten bzw. die Strecke vom Transistor zum Controller überprüfen.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Doch, weiterlaufen wird es. Schau mal die SelbTest Code an:
Code:SelfTest.c: ... // line 46 SerWrite("Odometrie Test\n\r",16); FrontLED(ON); for (i = 0; i < 0xFFF0; i++) OdometrieTest(); StatusLED(OFF); FrontLED(OFF); ...Es misst einfach nur die Spannungswerten 65520 mal und lasst den StatusLED leuchten. Aufhängen kann das Programm nur wann irgendwie ein Reset-situation detektiert wird. (Spannungseinbruch tiefer als Reset-pin Bedingung, und vielleicht blockiert den Bootloader wegen schwache Akku-spannung) Sonnst wird das Programm in einiger Sekunden weiter gehen mit den Motor Test.Code:Test.c: ... // line 104 /* ---------- Odometrie Sensor Test ------------- */ /* Left Sensor -> Status LED GREEN ON when Light on Left Phototransistor bright enough */ /* Right Sensor -> Status LED RED ON when Light on Right Phototransistor bright enough */ void OdometrieTest(void) { unsigned int data[2]; OdometrieData(data); StatusLED(OFF); if (data[0] < 512) StatusLED(GREEN); if (data[1] < 512) StatusLED(RED); } /* END Odometrie Sensor Test ------------------- */
Das verstehe ich als Neuling ehrlicherweise nicht ganz. Die StatusLED leuchtet dauergrün. Bedeutet das nun, daß das Programm wegen dieses Reset als ganzes beendet wird? Müsste durch diesen Reset nicht auch die LED erlöschen?
Wann ein Reset eintrit, wird das laufende Programm beendet. Den Prozessor wird komplett neu eingestellt als wie bei anschalten. Und dann startet den Bootloader von anfang an. Also, wann diese Reset wirklich passiert wurdest du das dadurch erkennen. Nach dem Bootloader abgearbeitet ist geht er weiter mit das gespeicherte Programm. (nur nicht wann die Akku spannung nicht reicht) In deinem Fall sollte das dass SelbTest Programm sein. Aber das wird auch den Statusled Gelb oder Rot leuchten lassen. Ein Reset ist es dan vermutlich doch nicht.
Hat er zwischen den OdometrieTest und 'aufhängen' den MotorTest gemacht? Dann ist er vermutlich schön bei den sehr langweilige Serielle KommunikationsTest an gekommen. Diese Test wartet ganz lange wann es kein Zeichen empfangt. (Mit StatusLED grun!) Es wartet ein Timeout-dauer ab äquivalent zu 65534 Zeichen (timeout= FFFE hexadezimal), mal 10 bits pro Zeichen ist 655340 UART-bits, ist 273 Sekunden timeout (mit 2400 Baud). Und das versucht er 254 mal (FE hexadezimal etwas zu empfangen und dann dass nächste höher Zeichen zu senden. Also dauert den SerielTest total 69342 Sekunden, oder 19 Uhr bis den Selbtest wieder von Start mit "-- ASURO Testing --" widerholt. Wann die Empfang Baustein nichts bekommt! Das könnte sicher den Eindrück von 'aufhängen' geben. Aber dann musste erst den Motoren (versucht) gedreht (zu) haben.
[EDIT] Vielleicht irre ich mich mit den Timeout Sekunden dauer. Könnte auch nur 65534 mal testen des UCSRA Register sein ob etwas empfangen ist. Was sicher schneller passiert. Aber keine ahnung wieviel genau.
Code:void SerialTest(void) { unsigned char data; unsigned char i; for (i = 0; i < 0xFE; i++) { StatusLED(GREEN); SerRead(&data,1,0xFFFE); StatusLED(RED); if (data != 'T') data += 1; SerWrite(&data,1); }
Geändert von Valen (19.01.2012 um 10:56 Uhr)
Lesezeichen