-         

Ergebnis 1 bis 6 von 6

Thema: Motoren streiken

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.12.2007
    Beiträge
    131

    Motoren streiken

    Anzeige

    Hallo,
    ich habe folgendes Problem mit meinem ASURO:
    Meine Motoren drehen sich nicht richtig bei der Vorwärtsbewegung im folgenden Programm


    Code:
    #include "asuro.h"
    #define STOP 50
    /*asuro kann einem abgrund mittels der liniensensoren ausweichen und hindernissen mittels der kollisionstaster*/
    
    int main(void)
    {
    
    while(1)
    {
    
    unsigned int lineData[2]; //array für die daten der liniensensoren
    unsigned char running = TRUE;
    unsigned char i; //laufvariable für die for-schleifen
    unsigned char taste=0; //nimmt den wert der kollisionstaster auf
    
    FrontLED(ON);
    Sleep(255); //kurze pause, damit linedata die richtigen werte erfasst
    LineData(lineData);
    
    PollSwitch();
    Sleep(50);
    PollSwitch();
    Sleep(50);
    PollSwitch();
    Sleep(50);
    taste = PollSwitch();
    
    
    if ((lineData[0] > STOP) && (lineData[1] > STOP) && (taste == 0)) //vorwärts falls kein hinderniss und kein abgrund
    {
    MotorDir(FWD,FWD);
    MotorSpeed(255,255);
    }
    else //wenden falls abgrund
    {
    MotorSpeed(0,0); //stop
    BackLED(ON,ON);
    FrontLED(OFF);
    StatusLED(RED);
    Sleep(255);
    for(i=0; i<100; i++) //kurz zurueck
    {
    MotorDir(RWD,RWD);
    MotorSpeed(190,190);
    Sleep(255);}
    
    MotorSpeed(0,0);
    
    for(i=0; i<170; i++) //wenden
    {
    MotorDir(FWD,RWD);
    MotorSpeed(120,120);
    Sleep(100);
    }
    MotorSpeed(0,0);
    BackLED(OFF,OFF);
    FrontLED(ON);
    StatusLED(GREEN);
    }
    
    Sleep(100);
    }
    return 0;
    }
    Ich habe den Strom an den Motoren gemessen, hier ergab sich ein Wert von 1,45 V. Könnt ihr mir bei meinem Problem helfen?

    mfg Hans
    PS: Ein Video kommt auch noch......

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.11.2006
    Ort
    Hamburg
    Alter
    25
    Beiträge
    384
    Hi Hans,
    was genau meinst du mit "die Motoren drehen nicht richtig"? Klemmt vllt das Getriebe? Ansosnsten wird es wahrscheinlich mal wieder ein Problem an der H-Brücke sein. Wenn beide absolut gar nichts machen, wäre dass wohl ein zichen für ein kaputtes Gatter. Du müsstest wohl noch etwas genauer von deinem Problem berichten. Aber wir können ja auch nochmal auf das Video warten.

    mfg
    Erik

  3. #3
    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 Hans

    Init() fehlt in main() for dem while(1):
    Code:
    #include "asuro.h"
    #define STOP 50
    /*asuro kann einem abgrund mittels der liniensensoren ausweichen und hindernissen mittels der kollisionstaster*/
    
    unsigned int lineData[2]; //array für die daten der liniensensoren
    //unsigned char running = TRUE;
    unsigned char i; //laufvariable für die for-schleifen
    unsigned char taste=0; //nimmt den wert der kollisionstaster auf
    
    int main(void)
    {
    	Init();
    	while(1)
    	{
    		FrontLED(ON);
    		Sleep(255); //kurze pause, damit linedata die richtigen werte erfasst
    		LineData(lineData);
    
    		PollSwitch();
    		Sleep(50);
    		PollSwitch();
    		Sleep(50);
    		PollSwitch();
    		Sleep(50);
    		taste = PollSwitch();
    
    
    		if ((lineData[0] > STOP) && (lineData[1] > STOP) && (taste == 0)) //vorwärts falls kein hinderniss und kein abgrund
    		{
    			MotorDir(FWD,FWD);
    			MotorSpeed(255,255);
    		}
    		else //wenden falls abgrund
    		{
    			MotorSpeed(0,0); //stop
    			BackLED(ON,ON);
    			FrontLED(OFF);
    			StatusLED(RED);
    			Sleep(255);
    			for(i=0; i<100; i++) //kurz zurueck
    			{
    				MotorDir(RWD,RWD);
    				MotorSpeed(190,190);
    				Sleep(255);
    			}
    
    			MotorSpeed(0,0);
    
    			for(i=0; i<170; i++) //wenden
    			{
    				MotorDir(FWD,RWD);
    				MotorSpeed(120,120);
    				Sleep(100);
    			}
    			MotorSpeed(0,0);
    			BackLED(OFF,OFF);
    			FrontLED(ON);
    			StatusLED(GREEN);
    		}
    		Sleep(100);
    	}
    return 0;
    }
    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
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.11.2006
    Ort
    Hamburg
    Alter
    25
    Beiträge
    384
    Ich schäme mich das nicht erkannt zu haben. .

  5. #5
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    oh oh.. aber das kenne ich, da habe ich mal eine woche für gebraucht das zu finden...
    kleinschreibung ist cool!

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.12.2007
    Beiträge
    131

    Jetzt funktionierts

    hallo,
    vielen dank für eure mühe!
    es funktioniert jetzt und mein asuro fährt endlich richtig...
    hier ist alerdings nocheinmal das video..
    Angehängte Dateien Angehängte Dateien

Berechtigungen

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