Die Pollswitch-funktion liefert keine verlässlichen Ergebnisse.
FÜhre sie vllt 3-4mal vorher aus, bevor du nen verlässlichen Wert bekommst
Hallo.
hab heute mein Asuro mal in Betrieb genommen
Allerdings ist der IC1 nicht reingeangen, also der Sockel sitzt fest auch richtigrum. Aber der Prozessor ist jetzt auf der einen Seite drinne, auf der anderen ist er zwar angeschlossen aber die Beinchen sind noch nicht im Sockel. Der Selbsttest verlief Problemlos. Kann man das Nochmal Korregieren? hab schiss das der Proz kaputt geht wenn ich den nochhmal rauszieh.
2.: Die Motoren laufen bei FWD RÜCKWÄRTS!!! Motorkabel sowie Batteriekabel sind aber richtig angeschlossen.
3.:
Dieser Code sollte folgendes Bewirken:Code:#include "asuro.h" int main(void) { Init(); unsigned char taste; StatusLED(GREEN); MotorDir(FWD,FWD); MotorSpeed(150,150); while(1) { taste = PollSwitch(); if(taste != 0) { MotorDir(BREAK,BREAK); StatusLED(RED); } } BackLED(ON,ON); while(1); return 0; }
Die Motoren gehen auf 150 vorwärts. Die Status-LED ist grün. Er fährt solange weiter bis ein Taster gedrückt wird, dann geht die S-L auf rot, die BackLeds an.
Passieren tut aber folgendes:
StatusLED grün.
Kurzes Rückwärtsfahren (<0,5s).
Status-LED rot, BackLED an.
Obwohl kein Schalter gedrückt wurde!!!
Manchamal fährt er auch garnicht rückwarts!
Woran leigt das?
mfg Pdd
Die Pollswitch-funktion liefert keine verlässlichen Ergebnisse.
FÜhre sie vllt 3-4mal vorher aus, bevor du nen verlässlichen Wert bekommst
Jop, jetzt tuts! Danke
Ich muss jetzt einfach immer statt FWD RWD eingeben, dann klappt auch das mit den Motoren
Hum. Grade mal getestet:
Beim Selftest tun die Motoren, aber wenn ich sie mit MotorDir(FWD,FWD); MotorSpeed(120,120); ansteuere, dann funktioniert nur der Linke o.O
hatte jemadn von euch schonmal das selbe Problem?
OK, sry das ich nochmal Pushe, aber das muss sein
Hab rausgefunden das ich 4 wiederstände falsch eingelötet habe (den kleinen Strich am Kreis sollte man beachten!) Nachdem ich diese in mühevoller kleinarbeit wieder ausgelötet habe und sie richtig eingelötet sind, funktioniert nun alles. Nur die Odometriesensoren haben beim Selbsttest nicht getan !?!
Also hab ich, sowieso mal zur Übung, dieses Prog geschrieben, womit man leicht testen kann ob die Odometrie funktioniert:
Funktionsweise: Hyperterminal starten. Asuro anmachen. Wenn einer der Schalter gedrückt wird, gibt er Gaß.
Ausserdem fährt jetzt der linke Motor auch in beide Richtungen *freu*Code:#include "asuro.h" unsigned char taste; void SerOdoData(int wert) { char text[16]=" "; itoa(wert,text,10); SerWrite(text,strlen(text)); } int main(void) { Init(); StatusLED(GREEN); unsigned int data[2]; //Speicher für Odometrie while(1) { if(PollSwitch()>0) { MotorDir(FWD,FWD); MotorSpeed(150,150); } else { MotorDir(FREE,FREE); MotorSpeed(0,0); } OdometrieData(data); SerWrite("\n\rLinks:",10); SerOdoData(data[0]); SerWrite(" Rechts:",8); SerOdoData(data[1]); } while(1); return 0; }
Lesezeichen