-         

Ergebnis 1 bis 5 von 5

Thema: Linienverfolgung: nur der rechte Motor läuft

  1. #1

    Linienverfolgung: nur der rechte Motor läuft

    Anzeige

    Nach dem ich erst mal 4 Stunden erfolglos versucht habe zu compilieren nur um zu merken das ich den Compiler und Windows7 als Admin ausführen muss, habe ich verschiedene Linienverfolgungsprogramme nach einander auf geflashed.

    einmal von hier: http://www.cs.hs-rm.de/~linn/vpdv080...Downloads.html

    dann die liniendemo von der cd
    bei beiden läuft einfach nur der rechte Motor hoch, ansonsten passiert nix. Und auch bei einm einfachen Programm wo nix weiter als MotorDir(FWD,FWD); MotorSpeed(100,100);while() return(0); in der main-Funktion drin steht läuft nur der rechte Motor.



    Ausserdem hab ich noch das Programm von waste genommen, allerdings macht asuro dann garnix.

    Mein erster Verdacht war das der linke Motor defekt oder extrem schwergäng ist, aber wenn ich das Selbsttest-Programm durchlaufen lasse funktioniert der auch.
    Kann es daran liegen das ein Sensor Defekt ist? Aber müsste das dann nicht den Selbsttest unterbrechen? Und warum läuft nicht auch der motor bei einem einfachen Vorwärtsfahren.
    Hat vielleicht jemand ähnliche Probleme gehabt und konnte sie lösen, ich bin für jede vernünftige Hilfe dankbar.

  2. #2
    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

    "MotorDir(FWD,FWD); MotorSpeed(100,100);while() return(0);"

    Zeig doch mal bitte dein komplettes Testprogramm. Und sei nicht so zimperlich: MotorSpeed(200,200);

    Kann es daran liegen das ein Sensor Defekt ist?
    Das wäre möglich. Mit dieser Funktion (aus der erweiterten asuro-Library) kannst du die Werte der Liniensensoren am Terminal anzeigen:

    Code:
    #include "asuro.h"
    
    unsigned int data[2];
    
    void PrintInt(int wert)
    {  char text[6]="      ";
    	itoa(wert,text,10);
    	SerWrite(text,6);
    }
    
    int main(void)
    {
    	Init();
    	FrontLED(ON);				// LED einschalten
    	Sleep(100);					// Warten bis LED sicher volle Helligkeit erreicht hat
    	LineData(data);   		// ADC warmlaufen lassen
    
    	while(1)
    	{
    		StatusLED(RED);
    		LineData(data);        // aktuelle Helligkeitswerte einlesen
    
    		PrintInt(data[0]);     // und zum Terminal senden
    		SerWrite(" ", 1);
    		PrintInt(data[1]);
    		SerWrite("\n\r", 2);
    		Sleep(255);
    	}
    	while(1);
    	return 0;
    }
    (ungetestet)

    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
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Probiere Mal höhere Geschwindigkeitswerte, MotorSpeed(200,200). Vielleicht ist einer deiner Motoren tatsächlich etwas schwergängiger ...

    mfG
    Markus

  4. #4
    Danke für die Tips, ich hab heute dann noch mal dies hier mit FWD , RWD und beide jeweil mit 0 bzw. 200 Speed getestet.
    Code:
    #include "asuro.h"
    
    int main (void)
    {
    	Init();
    	MotorDir(FWD,FWD);
    	MotorSpeed(200,00);
    	while(1){}
    	return 0;
    }
    tja und da hat sich rausgestellt das der linke Motor FWD garnicht kann und RWD auch nur sehr schwer gängig. Nach einem bischen Balistol ist Rückwärts nicht mehr schwer gängig aber Vorwärts geht immer noch nicht.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Wenn deine Mechanik so schwergängig ist, solltest du die Achsen evtl. nochmal neu justieren. Hast du die Zahnräder auf die richtigen Achsen gesteckt?

    mfG
    Markus

Berechtigungen

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