- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 52

Thema: "Hindernisfahrt"

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    28.12.2013
    Beiträge
    25
    Da reden wir aneiander vor bei: Klar, ich hab 3 LEDs(2 grün, 1 rot), ich meinte so nen LED-Display an dem man Werte ablesen kann, das hab ich nämlich nicht...

    Edit: Hab das jetzt getestet: Für meine Bahn ist infrarot < 120 perfekt.

    Mein Code sieht nun so aus:

    Code:
    #include "qfixMiniBoard.h"
    #include "qfixLCD.h"
    
    
    const    int SENSOR3 = 3;
            int SENSOR1 = 1;
            int SENSOR2 = 2;
            int SENSOR = 0;
    
    MiniBoard robot;
    LCD lcd;
    
    #define geradeaus        0
    #define linksDrehung    1
    #define rechtsDrehung    2
    
    #define hindernis        85
    #define freieSicht       150 // Wenn der Robo etwas nach links fährt, aber dann gegen das Hindernis, ist dieser Wert zu klein
    
    #define True            1
    #define False            0
    
    int main() 
    {
       
    	unsigned char drehrichtung = geradeaus;    // unsigned char = 8bit integer von 0 bis 255, braucht weniger Platz im RAM
        unsigned char schonNachLinksAusgewichen = False;  
    	int abstand   = robot.analog(1);
    	int infrarot  = robot.analog(3);
      
        while(1)
        {
            
    		
            if( drehrichtung == geradeaus)
            {
                robot.motors(200,200); //geradeaus fahren
                if( abstand < 90)
                {
                    if(schonNachLinksAusgewichen == False)
                        drehrichtung = linksDrehung;
                    else
                        drehrichtung = rechtsDrehung;
                }
            }
            if( drehrichtung == linksDrehung )
            {
    		    robot.motors(-100,-100);
    			msleep(100);
                robot.motors(-150, 150); // nach links drehen
    			msleep(300);
                if( abstand >= 150 )
                {
                    robot.motors(200,200);
    				msleep(500);
                    schonNachLinksAusgewichen = True;
    				robot.motors(150, -150); 
    				
    				if( infrarot < 120){
    		        robot.motors(100,-100);
    				msleep(500);
    				
                }
            }
            if( drehrichtung == rechtsDrehung )
            {
    			robot.motors(-100, -100);
    			msleep(100);
                robot.motors(150, -150); // nach rechts drehen
    			msleep(300);
                if( abstand >= 150 )
                { 
    			    robot.motors(200,200);
    				msleep(500);
                    schonNachLinksAusgewichen = False; 
    				robot.motors(-150, 150);
    				
    				int infrarot  = robot.analog(3);
    				if( infrarot < 120){
    		        robot.motors(100,-100);
    				msleep(500);
    				
    	
    			// Er ist zwar schon mal nach links ausgewichen, aber inzwischen auch schon rechtsrum, also wieder von vorne
    			
    			
    			
    			
    			
    			}  
    		}		  
    	}	
    
    }	
    }
    }
    Trotzdem reagiert der Robo nicht auf den Boden. Ich weiß leider immer noch nicht woran das liegt. Kann das sein, dass er gar nicht soweit in seiner Schleife vorankommt?
    Geändert von timmy19 (06.01.2014 um 12:05 Uhr)

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 01.11.2017, 12:53
  2. Antworten: 2
    Letzter Beitrag: 15.06.2011, 21:18
  3. LPC1114 (Cortex M0): "sei()" und "cli()"
    Von Jaecko im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 1
    Letzter Beitrag: 02.07.2010, 12:25
  4. "Soft-Reset?" und "Finger-Interrupt?"
    Von trapperjohn im Forum Asuro
    Antworten: 8
    Letzter Beitrag: 10.06.2008, 23:02
  5. ASM: was machen "swap" und "cbr" genau?
    Von RHS im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 18.08.2004, 17:16

Berechtigungen

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

12V Akku bauen