-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Problem mit Tastern bei Asuro -> leifern falsche Werte

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.01.2007
    Beiträge
    6

    Problem mit Tastern bei Asuro -> leifern falsche Werte

    Anzeige

    Hallo zusammen,
    Ich habe heute meinen Asuro fertiggesellt und er funktioniert eigentlich auch ganz gut, nur manche taster liefern aus irgend einem grund falsche Werte. Ich hab schon hier im Forum gesucht, allerdings nichts gefunden, was auf mein Problem passt. Ich hab bereits die modifizierte Asuro.c von RoberNetz runtergeladen und eingebunden, dadurch wurde ein Fehler behoben.
    Nun aber zu meinen Fehlern:
    Taster3: 6 anstatt 4 -> Kurzschluss mit Taster2? Wenn ja, wo kann dieser Kurzschluss entstehen?
    Taster4: liefert 7 statt 8 wenn davor nicht Taster5 gedrückt wurde.
    Taster6 liefert 31 statt 32 wenn davor nicht Taster5 gedrückt wurde.

    Außerdem glaub ich (weiß ich noch nicht ganz genau), dass bei mir der linke Motor, wenn er eineschaltet wird, ein signal eines Tasters sendet.
    Vielen Dank schonmal im Voraus
    Grüße Martin

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    21.03.2004
    Ort
    73061 Ebersbach
    Alter
    48
    Beiträge
    52
    hallo,


    schau mal im forum -->suchen hilft! [-(

    tipp:
    SUCHEN -->Suchabfrage == taster

    ===> ca. 40 Treffer seit dezember 06

    ----
    die taster werden über den analog wandler am asuro betrieben ausgewertet (bitte verbessert mich fals ich was falsches sage)

    durch die toleranz der widerstände
    durch den Kondensator c7
    durch keine ahnung was alles (Lötzinn menge, leiterbahn, wetter, wochentag, monstellung und so weiter )

    treten machmal [ hihi ] bei der Tasterabfrage unsauberkeiten auf.

    gruß
    downad
    Das, was immer von jedermann und überall als richtig akzeptiert wurde, ist mit ziemlicher Gewißheit das Falsche.
    Paul Valéry (1871-1945), frz. Dichter

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Hier der betreffende Ausschnitt aus der asuro.c:
    Code:
    unsigned char PollSwitch (void)
    {
        unsigned int i;
        int ec_bak=autoencode;
        autoencode=FALSE;
        DDRD |= SWITCHES;                // Switches as Output
        SWITCH_ON;                        // Output HIGH for measurement
        ADMUX = (1 << REFS0) | SWITCH;    // AVCC reference with external capacitor
        Sleep(10);
    
        ADCSRA |= (1 << ADSC);            // Start conversion
        while (!(ADCSRA & (1 << ADIF)));// wait for conversion complete
        ADCSRA |= (1 << ADIF);            // clear ADCIF
        i = ADCL + (ADCH << 8);
        
        SWITCH_OFF;
        Sleep(5);
        autoencode=ec_bak;
        //return  ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 61.0 + 0.5));
        //return ((10240000L/(long)i-10000L)*61L+5000L)/10000;
        return ((10240000L/(long)i-10000L)*63L+5000L)/10000;
    }
    Mit der letzten Zeile werden die Tasterwerte "kallibriert". Bei mir gilt die letzte Zeile, mit der vorletzten hatten meine Taster die Werte 1,2,4,7,15,31. Richtig ist 1,2,4,8,16,32. Die Werte müssen zusammen 63 ergeben sonst funzt es nicht!

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    16.07.2005
    Ort
    Solingen
    Alter
    48
    Beiträge
    61
    Hi,

    wie auch im Forum zu finden, sollte man den Kondensator komplett entladen. Durch mehrmaliges aufrufen der PollSwitch() Funktion kannst du dies erreichen. 5-7 mal reicht in aller Regel aus. Das geht natürlich auf die Geschwindigkeit deiner Programme, wenn du das häufig machst.

    FYI,
    Mucki

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    10.01.2007
    Beiträge
    6
    Danke für die Antworten, die Kalibrierung hat funktioniert.
    Mein größeres Problem ist aber, dass ich nicht weiß an welcher Stelle ich mit dem Suchen nach dem Kurzschluss (sollte es denn einer sein) anfangen sollte, welcher den dritten Taster dazu veranlasst, immer die 6 statt der 4 zu melden.
    MfG Froschi

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    die Kalibrierung hat funktioniert
    Das freut mich und bestätigt meine Meinung über die meisten Tastenprobleme hier im Forum.

    Hier gibts eine klasse Doku zu den Tastern und den Messwerten für die Widerstände.



    Durch mehrmaliges aufrufen der PollSwitch() Funktion kannst du dies erreichen
    Das erreicht man auch so:
    Code:
        sw0=PollSwitch();      // Schalter einlesen und für eine Runde speichern
        sw1=PollSwitch();
        sw2=PollSwitch();
        if ((sw0==sw1) && (sw0==sw2)) sw=sw0; else sw=0;
    Man erkennt, hier werden die Taster dreimal eingelesen UND dann werden die Werte auf Gleichheit überprüft bevor sie als gültig akzeptiert werden. Elegant und funktionell..

    Demo-Code für Funktion und Geschwindigkeit möchte ich euch nicht zumuten *grins*

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #7
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    wenn das dein problem noch nicht behoben hat, dann schau mal in die anleitung; recht weit am ende ist ein schaltplan der asuro platine. da siehst du, was alles wo angeschlossen gehört und wo evtl der kurzschluss liegen könnte.
    kleinschreibung ist cool!

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    10.01.2007
    Beiträge
    6
    Also ich bin nun etwas weiter gekommen:
    Ich erhalte, wenn ich K4 drücke, die 6, wenn ich aber K4 zusammen mit K5 drücke aber nicht ebenfalls die 6 sondern die 8. Wenn ich das richtig verstanden habe, dann rechnet der A/D-Konverter doch Spannungen in Bitfolgen. Ist es möglich, dass es sich nicht um einen Kurzschluss handelt, sondern eigentlich eher der Widerstand bei K4 etwas //edit: kleiner (ist, als er sein sollte?

  9. #9
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    also wenn du zwei taster gleichzeitig drückst, bekommst du die SUMME der gedrückten taster. also kannst du nicht bei nur k4 das gleiche bekommen wie mit mehreren tastern zusammen.
    kleinschreibung ist cool!

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    10.01.2007
    Beiträge
    6
    Das hab ich schon verstanden.
    Ich hab mir nur überlegt, die einzige Möglichkeit an der ein "sinnvoller" kurzschluss entstehen könnte, wäre die in der Skizze rot markierte Stelle.

    Wenn aber an dieser Stelle ein Kurzschluss wäre, dann müssten doch gleiche Werte kommen, egal ob K4 oder K5 gedrückt wird?
    Deswegen ist es doch eigenlich wahrscheinlicher, dass R28 anstatt 16kOhm nur knapp 11kOhm besitzt.
    Wenn man die beiden Schalter k5 und k4 gleichzeitig schließt sind normalerweise doch R28 und R29 parallel geschaltet, also müsste gelten 1/Rgesamt = 1/R28 + 1/R29, bei meiner Rechnung also etwa 10,77 kOhm für Rgesamt.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •