Ich habe den ASURO nicht, deswegen wäre ein Bild des Taster sehr schön. Dann kann ich dir eventuell weiterhelfen.
jon
Hallo,
Habe heute meinen Asuro zusammengebaut und den Selbsttest gemacht. Dabei habe ich bemerkt, dass einer der Taster nicht funktioniert. Es ist nicht so, dass sich überhaupt nichts tut, so dass man daraus folgern könnte die Elektronik wäre falsch eingelötet, sondern es ist so, dass der Tastendruck nur bis zu einer bestimmten Stelle registriert wird. Der Schalter merkt am Anfang, dass er gedrückt wird, aber wenn man weiter drückt, so geht die LED, die den Druck anzeigen sollte, wieder aus.
Folgerung: Schalter kaputt (oder?)
Nun zu meiner eigentlichen Frage: Weiß irgendjemand wo es diesen Taster gibt oder dessen genauen Namen (In der Anleitung steht nur "Taster", womit man diesen höchstwahrscheinlich nicht finden wird)?
Schon mal im Voraus danke für eure Antworten!
----
Ich habe den ASURO nicht, deswegen wäre ein Bild des Taster sehr schön. Dann kann ich dir eventuell weiterhelfen.
jon
Nice to be back after two years
www.roboterfreak.de
Im Anhang befindet sich ein Bild.
Bei Conrad habe ich schon unter "Taster" gesucht, also wird sich hier wohl nichts finden außer das Teil ist dort unter einem anderem Namen eingegeben.
----
Ist in der Anleitung etwas dazu geschrieben, wo man Ersatzteile herbekommt?
Ich habe diese Taster nämlich noch nie gesehen.
Irgendwo gab es auch schonmal die Frage, wo man so einen Taster herbekommt. Kannst ja mal suchen
jon
Nice to be back after two years
www.roboterfreak.de
Hallo
Vermutlich sind nicht die Taster defekt sondern es werden nur nicht die richtigen erkannt. Die Abfrage erfolgt über ein Byte bei dem jedes Bit einen Taster representiert. Die Zuordnung im Testprogramm (Tasten-Bit= LED/Funktion) funktioniert eben nur, wenn die Abfrage eindeutige Bits zurückmeldet. Die Werte werden von den 1%-Widerständen(5 Ringe) bei den Tastern gebildet. Fehlerursachen sind hier falsche Werte der Widerstände, kalte Lötstellen usw... Falls du schon Flashen und Programme schreiben kannst:
sendet den Tastenwert per Infrarot. Die Werte sollten 1,2,4,8,16 und 32 sein.Code:PrintInt(PollSwitch());
Wenn du mit dem Programmieren noch nicht soweit bist funktionieren die Beispielprogs zwar nicht, aber das ist ja kein Beinbruch.
Gruß
radbruch
diese taster habe ich noch nie irgendwo gefunden, habe schon öfter gesucht. schreib mal eine (englische) mail an info@arexx.nl , der support ist sehr nett und kulant.
vielleicht ist aber wirklich nur irgend ein widerstand nicht ganz in der toleranz...
Zu dem Widerstands- und dem davon abhängigen Tasterproblem habe ich schon einige Threads gelesen. Das ist mir bekannt. Aber es ist ja nicht so, dass der Controller den Taster grundsätzlich nicht erkennt, sondern, dass er ihn erst erkennt, aber dann wenn der Taster tiefer gedrückt wird das LED ausgeht. Bei der Schwelle LED an/aus ist auch ein kleiner Widerstand bemerkbar.Vermutlich sind nicht die Taster defekt sondern es werden nur nicht die richtigen erkannt. Die Abfrage erfolgt über ein Byte bei dem jedes Bit einen Taster representiert. Die Zuordnung im Testprogramm (Tasten-Bit= LED/Funktion) funktioniert eben nur, wenn die Abfrage eindeutige Bits zurückmeldet. Die Werte werden von den 1%-Widerständen(5 Ringe) bei den Tastern gebildet.
Muss ich noch lernen. Werde ich dann aber gleich machen, um zu prüfen ob das wirklich mit den Widerständen zusamenhängt.Falls du schon Flashen und Programme schreiben kannst:
Code:PrintInt(PollSwitch());
sendet den Tastenwert per Infrarot. Die Werte sollten 1,2,4,8,16 und 32 sein.
Ich werde erst mal das von radbruch versuchen, auch wenn ich bezweifle, dass das mit den Widerständen zusammenhängt.diese taster habe ich noch nie irgendwo gefunden, habe schon öfter gesucht. schreib mal eine (englische) mail an info@arexx.nl , der support ist sehr nett und kulant.
----
Hallo
So checke ich meinen asuro:
In asuro.c wird der Tastenwert eingelesen und die Zuordnung der einzelnen Bits zu den Tastern eingestellt. An dieser Stelle kann man seinen asuro an die Widerstände anpassen, quasi "kalibrieren":Code:#include <asuro.h> unsigned char sw_data; unsigned int data[2]; int main(void) { Init(); SerWrite("\nHallo\nBatterie: ",17); PrintInt(Batterie()); do { sw_data=PollSwitch(); if (1) { // 1 bedeutet: diese Funktion wird getestet SerWrite("\n",1); PrintInt(sw_data); } if (0) { LineData(data); FrontLED(ON); SerWrite("\n",1); PrintInt(data[0]); SerWrite("-",1); PrintInt(data[1]); } if (0) { OdometrieData(data); SerWrite("\n",1); PrintInt(data[0]); SerWrite("-",1); PrintInt(data[1]); } }while (1); return 0; }
Bei mir reichte das Ändern von 62 auf 63 in der Formel, es gibt da einige verschiedene Varianten...Code:return ((10240000L/(long)i-10000L)*63L+5000L)/10000;
Gruß
mic
Würde es gerne versuchen aber jetzt habe ich gemerkt, dass das mit dem Flashen nicht klappt.
----
=) was geht denn nicht?
fehlerbeschreibung! =)
Lesezeichen