- 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. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    28.12.2013
    Beiträge
    25
    Danke dir.
    Das Delay(msleep) muss NACH dem Infrarot oder davor? Hab es derzeit davor. Also so:

    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() 
    {
        int abstand=0;
        unsigned char drehrichtung = geradeaus;    // unsigned char = 8bit integer von 0 bis 255, braucht weniger Platz im RAM
        unsigned char schonNachLinksAusgewichen = False;    
      
        while(1)
        {
            abstand   = robot.analog(1);
    		
            if( drehrichtung == geradeaus)
            {
                robot.motors(-250,-250); //geradeaus fahren
                if( abstand < hindernis)
                {
                    if(schonNachLinksAusgewichen == False)
                        drehrichtung = linksDrehung;
                    else
                        drehrichtung = rechtsDrehung;
                }
            }
            if( drehrichtung == linksDrehung )
            {
                robot.motors(-200, 200); // nach links drehen
                if( abstand >= freieSicht )
                {
                    robot.motors(250,250);
    				msleep(500);
                    schonNachLinksAusgewichen = True;
    				
    				infrarot  = robot.analog(3);
    				
    				//msleep(500);
    				if( infrarot > 185){
    		        robot.motors(100,-100);
    				int infrarot = 0;
    				
                }
            }
            if( drehrichtung == rechtsDrehung )
            {
                robot.motors(200, -200); // nach rechts drehen
                if( abstand >= freieSicht )
                {
                    robot.motors(250,250);
    				msleep(500);
                    schonNachLinksAusgewichen = False; 
    				
    				infrarot  = robot.analog(3);
    				
    				//msleep(500);
    				if( infrarot > 185){
    				robot.motors(-100,100);
    				int infrarot = 0;
    				
    	
    			// Er ist zwar schon mal nach links ausgewichen, aber inzwischen auch schon rechtsrum, also wieder von vorne
    			
    			
    			
    			
    			
    			}  
    		}		  
    	}	
    
    }
    Edit: Der Robo möchte einfach nicht auf das infrarot reagieren. Alles andere macht er jetzt, nur das Infrarot nicht. Was mach ich um Himmels willen falsch? Ich verzweifle...
    Und noch was: Komischerweise fährt der Robo immer auf das Hindernis zu, dreht sich kurz zuvor und bleibt dann mit dem rechten Rad etwas hängen, dreht sich aber weiter. Das macht er, egal wie ich "Hindernis" und "freie Sicht" verändere. Woran liegt das und wie kann ich das ändern(also, dass er sich schon früher dreht)?
    Geändert von timmy19 (03.01.2014 um 12:58 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
  •  

fchao-Sinus-Wechselrichter AliExpress