Werbung
Hallo zusammen,
ich habe bei meinem Asuro das Problem, dass der Schalter K6 keinen Wert liefert.
Ich habe nun schon einige Foreneinträge gelesen, aber bisher konnte ich keine konkrete Lösung für mein Problem finden.
Grundsätzlich sind die einzelnen Widerstände für die 6 Schalter nicht besonders gut. Deshalb liefern die anderen Taster teilweise auch nicht genau die gewünschten Werte. Hier muss ich dann wohl noch etwas mit der Pollswitch-Funktion spielen. ...
Das sollte aber alles nicht der Grund sein, das ich für K6 überhaupt keine Wert bekomme. NUR K6 liefert KEINEN Wert ...
Trotzdem habe ich aber schon mal den 68K (R30) durch einen neuen, "besseren" getauscht.
Was ich bereits gemacht/gemessen habe:
- R30 hat 67,8K, i.O.
- Verbindung "vor" R30 zu PC4-Pin gemessen: hat Durchgang, 0OHM Widerstand, somit ist die Verbindung auch gegeben, i.O.
- Verbindung "hinter" R30 zu PC4-Pin gemessen: zeigt auch 67,8K, auch i.O.
- Der Schalter an sich scheint auch i.O. zu sein. Durchgangsprüfung ok.
- Verbindung von Schalter zu GND (gemessen am Batterieanschluss...), auch i.O.
Ich habe keine Idee mehr, was ich sonst noch tun/prüfen könnte
Kalte Lötstellen konnte ich auch keine finden (R30 habe ich auch schon ersetzt: ohne Verbesserung). Aber nachdem auch die Messungen meiner Meinung nach in Ordnung sind, würde ich eine kalte Löhtstelle eh ausschließen. Oder was meint ihr?
Ich habe auch ein paar Fotos angehängt. Allerdings kann man hier nur schwer etwas erkennen.
Würde mich sehr freuen, wenn ihr noch eine Idee hättet und mir weiterhelfen könntet.
Viele Grüße
![]()
![]()
![]()
Geändert von radbruch (03.05.2011 um 20:09 Uhr)
![]()
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
danke für deine schnelle Antwort. Zwischen R30 und dem Schalter hab ich auch Durchgang. Wiederstand ungefähr 0,3OHM (das dürfte bei den anderen Verbindungen in etwa auch so sein ...).
Brücke von R30 zu GND --> d.h. der Schalter ist quasi immer gedrückt? Ich heitz' mal den Kolben an und mach eine Verbindung von R30 zu GND, direkt am Batterieanschluss ...
Geändert von rchdrei (03.05.2011 um 20:45 Uhr)
Auch mit der Brücke hat sich nichts geändert. Tut immer noch nicht.
Die von dir erwähnte Löststelle habe ich auch nochmal nachgebessert. Obwohl mir eigenltlich hier nichts aufgefallen ist. Leider hat auch das nichts gebracht. siehe Foto.
Hallo
Naja, die Brücke hätte man nicht unbedingt löten müssen ;) Dass sich trotzdem nicht ändert ist seltsam. Wie ermittelst du eigentlich die Tastenwerte?
Möglicherweise findest du hier eine Antwort:
https://www.roboternetz.de/community...l=1#post483552
Um es abzukürzen (der Thread ist lang...) hier ein Vorgriff auf die Lösung:
https://www.roboternetz.de/community...l=1#post484092
Vielleicht passt das auch zu deinem Problem.
Gruß
mic
![]()
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo,
danke für deine Mühe! Gestern hab ich noch Ewigkeiten damit verbracht, das AVR-Studio, sowie die aktuellste AsuroLib auf meinem PC wieder zum laufen zu bekommen ...
Ich habe nun in der switches.c die Pollswitch-Funktion folgendermaßen angepasst und anschließend die lib neu compiliert:
/* return ((10240000L / (long)i - 10000L) * MY_SWITCH_VALUE + 5000L) / 10000; */
return ((unsigned char) ((( 1024.0/(float)(i-7) - 1.0)) * 63.0 + 0.5));
Anschließend habe ich das "TasterTest"-Programm aus dem Examples-Verzeichnis auf den Asuro übertragen. Ergebnis: K6 liefert immer noch keinen Wert *seufz*
Anbei noch die Ausgabe des Programms:
Tastsensor Test
31
15
7
3
1
...ok. Alle Werte sind um 1 zu niedrig. Das kann man ja noch anpassen. Aber sollte bei K6 nicht zumindest eine 0 kommen (die 1 ist von K5) ????
Vermutlich steht im Taster-Test-Programm etwa das: "if(PollSwitch()>0) ...."
Und da mit gedrücktem K6 der Wert nicht größer als 0 ist, wird auch nichts ausgegeben.
In der neuen Library kann man den Faktor auch als MY_SWITCH_VALUE mit der Datei myasuro.h beeinflussen:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=31073
![]()
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
da hast du mich auf die Richtige Spur gebracht ... if (t1 && t2 && t1 == t2){...}
Die UND-Verknüpfung ist liefert natürlich FALSE, wenn mein K6 Wert 0 ist. Somit wird nichts ausgegeben! Danke![]()
Aber es geht weiter ....
Ich wollte mit dem von dir genannten Programm die Werte ermitteln. Allerdings scheint auch das Programm an dem Wert 0 hängen zu bleiben, weil das Programm für meine K6 keinen Wert einliest ...![]()
edit:
...nach langem Probieren und Messen funktioniert es nun, so dass die Werte aller 6 Taster richtig ausgegeben werden.
Um für K6 einen brauchwaren Wert vom AD-Wandler zu ermitteln, habe ich anstatt dem 68K Widerstand (R30) ein Poti angelötet und damit den richten Widerstand ermittelt. Bei 55K !!! habe ich einen Wert 1019-1021 bekommen! Bei größeren Widerstandswerten, konnte kein richtiger Wert gemessen werden (>1023).
Warum das so von der Angabe abweicht, kann ich mir nicht erklären! Es sei denn, die Verbindung vom Widerstand, zum AD-Port ist nicht in Ordnung. Allerdings konnte ich hier nichts fehlerhaften messen.
Damit auch die übrigen Taster stabile Werte lieferten, musste ich die Pollswitch-Funktion noch um ein gutes Stück nachjustieren(siehe unten). Danach lieferte jedoch der AD-Wert 1023 eine 1 anstatt 0.
Da ich zum Schluss, nach vielen, vielen Tagen keine Lust mehr hatte, hab ich letztendlich noch ein etwas unschönes IF darum gebaut ....
MY_SWITCH_VALUE = 61;
if(i == 1023){ /* unschön, aber die Geldud ist am Ende*/
return 0;
}else{
return ((unsigned char) ((( 1024.0/(float)(i-15) - 1.0)) * MY_SWITCH_VALUE + 0.5));
}
@Radbruch: nochmals vielen Dank für deine Hilfe!!!
Geändert von rchdrei (11.05.2011 um 20:06 Uhr) Grund: jetzt funktioniert's ...
Lesezeichen