- Labornetzteil AliExpress         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 30

Thema: Schalter und Odometrie Test problem im Probelauf

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.07.2005
    Alter
    34
    Beiträge
    128
    Anzeige

    LiFePo4 Akku selber bauen - Video
    ok, danke^^ hat alles so weit funktioniert!!!

    nun wollte ich ein programm schreiben, durch das der asuro so weit gerade aus fährt, bis er wo anstöst und ab da nur noch rückwärts, hat aber nicht so ganz geklappt :

    Code:
    #include "asuro.h"
    
    int main(void)
    {
    	Init();   
    	StatusLED(1);
    	MotorDir(FWD,FWD);
    	MotorSpeed(120,120);
    	
    	while(1)
    	if (PollSwitch() != 0)
    		{	while(1)
    				{MotorDir(RWD,RWD);
    				 MotorSpeed(120,120);}
    		}
    	else
    		{MotorDir(FWD,FWD);
    		 MotorSpeed(120,120);}
    			 
    	return 0;
    }
    gruß

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    12.09.2007
    Alter
    31
    Beiträge
    98
    wenn ein schalter gedrückt wird fährt er ganz kurz rückwärts und im nächsten durch gang wieder vorwärts.

    du musst noch eine pause einbauen.

    mfg liggi
    Lieber am Asuro rumschrauben als alles andere.
    Meine Homepage

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.07.2007
    Beiträge
    349
    So in etwa sollte es funktionieren(nicht getestet!)

    Code:
    int flag=0;
    
    while(1)
    {
       if(PollSwitch() != 0)
          flag=1;
    
    
       if (flag==0)
       {   
          MotorDir(FWD,FWD);
          MotorSpeed(120,120);
       }
    
       else
       {
          MotorDir(RWD,RWD);
          MotorSpeed(120,120);
       } 
    }
    Beim C Programmieren happerts noch ein bisschen bei dir, schau dir z.B. diesen Online C Kurs an:
    http://www.fh-augsburg.de/informatik...utorial/cyris/
    Grüße,
    Harri

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.07.2005
    Alter
    34
    Beiträge
    128
    Zitat Zitat von harry3
    So in etwa sollte es funktionieren(nicht getestet!)

    Code:
    int flag=0;
    
    while(1)
    {
       if(PollSwitch() != 0)
          flag=1;
    
    
       if (flag==0)
       {   
          MotorDir(FWD,FWD);
          MotorSpeed(120,120);
       }
    
       else
       {
          MotorDir(RWD,RWD);
          MotorSpeed(120,120);
       } 
    }
    Beim C Programmieren happerts noch ein bisschen bei dir, schau dir z.B. diesen Online C Kurs an:
    http://www.fh-augsburg.de/informatik...utorial/cyris/
    naja, mit deinem code fährt er nur rückwärts.. das kann es auch nicht sein, weis sonst einer weiter??

  5. #15
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.07.2007
    Beiträge
    349
    Mach dir mal über den Code Gedanken bevor du ihn als falsch abstempelst!
    Ich tippe mal drauf dass du die PollSwitch Funktion noch nicht richtig eingestellt hast! Dazu gibts im Forum schon mehr als wie genug Tipps(PollSwitch mehrfach hintereinander aufrufen).
    Grüße,
    Harri

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.07.2005
    Alter
    34
    Beiträge
    128
    ok, hab das mit dem PollSwitch() inzwischen recht gut im griff *freu*
    und das problem, das mein asuro rürckwärts lief war, ich hab die motoren falschrumgepohlt eingelötet

    nunja. das mit dem PollSwitch() klapt ja ohne probleme, wenn ich es mehrmals aufrufe, aber verstanden, warum dies so gehandhabt werden muss hab ich nicht, bzw, nirgends eine erklährung dazugefunden, kann man mir ma l wieder weiterhelfen \/ \/

    thx im vorraus gruß

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.07.2007
    Beiträge
    349
    PollSwitch liefert manchmal einen falschen Wert(da Asuro keine Spannungsstabilisierung hat können z.B. durch die Motoren die genannten Störungen auftreten). Dies tritt aber in der Regel nur kurz auf. Ruft man PollSwitch nun 2mal hintereinander auf, und beide Male wird der gleiche Wert zurückgeliefert, kann man davon ausgehen dass wirklich derjenige Taster gedrückt wurde.
    Sind die beiden Rückgabewerte nicht gleich, so kann man davon ausgehen dass sich da ein Fehler eingeschlichen hat.
    Grüße,
    Harri

  8. #18
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44
    ich habe auch das Problem, das mein Asuro ohne das ein Taster gedrückt wurde, nach ein paar sek einfach rückwärts fährt...
    wo kann ich die Taster einstellen?
    Oder wie muss ich das Prog schreiben um das zwei mal hintereinander ab zu fragen und zu vergleiche, wie du es beschrieben hast?

    EDIT: er fährt auch leicht nach links, wie kann ich das verbessern? muss ich beim Programmieren, wenn ich geradeaus fahren will das eine rad ein bischen weniger laufen lasse z.B. anstatt 120 dann nur noch 110...?

  9. #19
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.07.2007
    Beiträge
    349
    Eine Möglichkeit besteht darin dass du vor die main Funktion folgende Funktion hinkopierst:
    Code:
    unsigned char fkt_taster(void)
    {
        unsigned char taster=0;
    
        taster=PollSwitch();
    
        if(taster==PollSwitch() && taster!=0)
            return taster;
        else
            return 0;
    }
    Im main Programm kannst du von nun an statt PollSwitch die Funktion fkt_taster aufrufen, welche besser funktionieren sollte. Funktioniert auch das nicht, dann meld dich, dann muss man in der Funktion PollSwitch einen Wert korrigieren.

    Dass Asuro nicht gerade fährt ist normal. Entweder man spielt sich solange mit den Werten der linken und rechten Geschwindigkeit, bis Asuro geradeausfährt.
    Oder, und das ist natürlich die bessere Methode, man programmiert einen Regler der Asuro geradeausfahren lässt. Das lässt sich mit der Odometrie recht gut lösen, such mal im Forum, da gibts schon genug Themen dazu!
    Grüße,
    Harri

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.07.2005
    Alter
    34
    Beiträge
    128
    Zitat Zitat von ASURO-ASURO
    ich habe auch das Problem, das mein Asuro ohne das ein Taster gedrückt wurde, nach ein paar sek einfach rückwärts fährt...
    wo kann ich die Taster einstellen?
    Oder wie muss ich das Prog schreiben um das zwei mal hintereinander ab zu fragen und zu vergleiche, wie du es beschrieben hast?

    EDIT: er fährt auch leicht nach links, wie kann ich das verbessern? muss ich beim Programmieren, wenn ich geradeaus fahren will das eine rad ein bischen weniger laufen lasse z.B. anstatt 120 dann nur noch 110...?
    ja, das gleiche problem habe ich auch, und durch die geschwindigkeits einstellung im code klapt es wunderbar!!!!

    theoretisch könntest du ein geschwindigkeitsabgleich in der header vornehmen, dan müsstes du nicht jedesmal darauf achten

    korrigiert mich wenn ich falschliege

    gruß

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress