-         

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

Thema: LED's flackern leicht

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

    LED's flackern leicht

    Anzeige

    Hallo,

    ich habe gestern meinen Asuro bekommen und auch gleich zusammengebaut. Trotz einiger kleiner Hinternisse (Widerstände haben wurden falsch geliefert aber is ja nicht schlimm) läuft er jetzt soweit.

    Ich hab mich auch gleich ans programmieren gemacht und nachdem ich auch schon einige Erfahrung in C durch das Studium gesammelt habe geht das auch recht angenehm von der hand.

    Nun hab ich aber trotzdem mal ein kleines Problem.

    Aber zuerst mal das Programm:

    Code:
    ...
    
    int main(void)
    {
    init();
    while(1)
    {
    if(PollSwitch==0)
    {
    MotorDir(FWD,FWD);
    MotorSpeed(100,100);
    FrontLED(OFF);
    BackLED(OFF,OFF);
    StatusLED(GREEN);
    }
    else
    {
    BackLED(ON,ON);
    StatusLED(RED);
    FrontLED(ON);
    MotorDir(BREAK,BREAK);
    }
    
    FrontLED(OFF);
    }
    return 0;
    ...
    So nun möchte ich das die Lampen beim fahren aus sind. Wenn er ein Hinternis berührt soll er anhalten und die LEDs sollen angehen.
    Mein Problem ist hier, dass die LEDs während der Fahrt ab und zu flackern.
    Ist dies zurückzuführen auf den Zusammenbau (Anfänger ), auf den Quellcode oder ist dass normal?

    Könnte der Einsatz von Prototypen den Fehler beheben?
    Beim Selftest klappt sweit alles.

    mfg TOYO (neuster Asuro-süchtiger)


    Es könnte aber auch am IF-Befehl liegen. Ich Probier mal ne while-Schleife.
    Nein dat wars auch nicht. Für Hilfe wäre ich dankbar.

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

    PollSwitch() arbeitet nicht sehr zuverlässig, versuche es mal so:
    ...
    if ((PollSwitch==0) && (PollSwitch==0))
    ...

    Bei meinem asuro klappts so ab 3 Abfragen ohne Störungen.

    gruß

    mic

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

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2007
    Beiträge
    6
    Okay danke für den Tipp Radbruch,

    ich werds gleich ausprobieren. Hängt das damit zusammen dass ich eine Abfrage für die Kollisionstaster mache oder hat das nen anderen Grund.

    mfg TOYO

    PS: Der Käfer-Asuro is ja mal schwer geil

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2007
    Beiträge
    6
    Also ich habs mal ausprobiert,

    Bei mir klappts so:

    Code:
    ...
    if((PollSwitch>0) && (PollSwitch>0) && (PollSwitch>0))
    ...
    Kann mir jemand sagen woran das liegt?

    mfg TOYO

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Das liegt in erster Linie an den Bauteiletoleranzen (trotz der 1%er). Zusätzlich stört noch der "Dreck" der laufenden Motoren die Auswertung der Taster.

    Etwas Feintuning kann man in der asuro.c betreiben. In der Funktion PollSwitch() wird dort am Ende der Wert so umgeformt das jeder Taster einem Bit im Rückgabewert entspricht. Meist hilft es den 60er-Wert in der Rechnung zu ändern. Die Tasten sollten die Werte 1,2,4,8,16 und 32 liefern. Dann kann man auch mehrere Taster gleichzeitig abfragen, PollSwitch() liefert dann immer die Summe aller gedrückter Taster. So ergibt z.B. der linke und der rechte Taster 33, drei seitliche 7 bzw. 56. Alle zusammen ergeben 63.

    Gruß

    mic

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

  6. #6
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    da die widerstände nicht 100%ig genau sind, passiert sowas, solche probleme hat der asuro nunmal. er fährt auch nicht geradeaus, und die odometrie mach gelegentlich mucken. aber genau das ist die herausforderung =)

    zu deinem programm: die funktion Init(); muss groß geschrieben werden!

    Das flackern würde ich auf kleinere störungen zurückführen, mach dir keine sorgen drum... =)
    kleinschreibung ist cool!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2007
    Beiträge
    6
    Danke erstmal für die tollen Antworten,

    also ich muss sagen, dass mein Asuro sehr wohl geradeaus fährt. Hat allerdings auch lange gedauert. Bei mir hing der Faktor geradeausfahren maßgeblich vom "anpressdruck" (sofern man davon reden kann) der Räder auf die Platine ab.

    Wenn ich schonmal hier bin wollte ich auch noch fragen ob jemand schon erfahrung damit gemacht hat ein eigenes Programm in C zu schreiben, mit dem Daten vom Asuro empfanen bzw. gesendet werden können und ob jemand ne gute Quelle hat. Ich hab zwar schon einige Quellen über google.de und c-plusplus.de gefunden wäre aber trotzdem dankbar wenn mir jemand ne gute Quelle posten könnte.

    danke schonmal im voraus

    mfg TOYO

  8. #8
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    wieso benutzt du nicht einfach die anleitung als quelle? da steht ganz genau was man tun muss um daten zu senden und zu empfangen...
    kleinschreibung ist cool!

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2007
    Beiträge
    6
    Hallo Damaltor,

    ich glaub ich hab mich da etwas unverständlich ausgedrückt, sorry. Wenn ich Daten an den Asuro senden möchte, mache ich das über das Hyperterminal. Allerdings möchte ich alternativ zum Hyperterminal ein Programm schreiben mit dem ich den Datenaustausch steuern bzw. verarbeiten kann um zum beispiel Odometrie-daten besser auswerten zu können.
    Jetzt bräuchte ich eine gute Seite, die die Ansteuerung der seriellen Schnittstelle anhand von C beschreibt, vorzugsweise Konsole.

    mfg TOYO

  10. #10
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    hmm das klingt nicht ganz so einfach. du könntest dich evtl mal mit Osser (aus dem forum) in verbindung setzen, der hat bereits ein alternatives terminal und flash-programm geschrieben, vielleicht kann der dir helfen.
    kleinschreibung ist cool!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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