- LiFePO4 Speicher Test         
Ergebnis 1 bis 8 von 8

Thema: Asuro mit Lichtsenoren anhalten !

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Genau, während er seine Sensoren misst fährt er einfach weiter. Er zittert nur zwischen fahren und anhalten für eine periode von 200 Milisekunden. Und geht deshalb auf halbe fahrt (von halbe fahrt).

    Hier ist meine Vorschlag. Achte auf die BackLEDs.

    Code:
    int main(void)
        {
    	Init();
    
    	unsigned int lineData[2], STOP[2]; // Stopwert seitenabhängig verwalten
    	
    	unsigned char Beleuchtet[2]; // Sensor wert über STOP-Wert? (boolean)
    		
    	LineData(lineData); // 
        LineData(lineData);
    
        STOP[0] = lineData[0]+10; // STOP wert Berechnen (links)
        STOP[1] = lineData[1]+10; // STOP wert Berechnen (rechts)
    
    	MotorDir(FWD,FWD);	// vorwärts   
        MotorSpeed(180,180);
        BackLED(OFF,OFF);
    	
    	while(1)
        {	
    		LineData(lineData);
    			
    		if (lineData[0] > STOP[0])
    		{	Beleuchtet[0]=1;	// Ich sehe eine Taschenlampe auf Links
    		}	
    		else Beleuchtet[0]=0;	// Ich sehe keine Taschenlampe auf Links
    		if (lineData[1] > STOP[1])
    		{	Beleuchtet[1]=1;	// Ich sehe eine Taschenlampe auf Rechts
    		}	
    		else Beleuchtet[1]=0;	// Ich sehe keine Taschenlampe auf Rechts
    			
    		// BackLEDs anschalten gleich wie Beleuchtung: 'Gultig' = ungleich 0 = ON, 'Nicht Gultig' = gleich 0 = OFF
    			BackLEDs(Beleuchtet[0],Beleuchtet[1]);
    			
    		// Sonnst kriegen wir keine Ahnung was passiert.		
    			
    		if (Beleuchtet[0] && Beleuchtet[1])
    		{
    			// Licht fällt auf Beide Sensoren
    			MotorDir(BREAK,BREAK);
    			MotorSpeed(0,0);
    		}
    		else
    		{
    			// Licht? Macht mich nichts!
    			MotorDir(FWD,FWD);	// Vorwärts wieder!  
    			MotorSpeed(180,180);
    		}
    				
    		Msleep(200);
    		BackLED(OFF,OFF);
                
    	}
    	
        return 0;
    }

  2. #2
    Neuer Benutzer
    Registriert seit
    03.05.2012
    Beiträge
    3
    Blog-Einträge
    1
    Also Das funktioniert einbahn frei jetzt danke also ich hab noch eine 2.Sache probiert die auch ganz gut hingehauen hat aber nie so genau wie dein COde ... Hier noch mein Code
    Code:
    #include "asuro.h"
    
    int main(void)
        {
    	Init();
        	unsigned int lineData[2], STOP[2]; // Stopwert seitenabhängig verwalten
    
        	      
            FrontLED(ON); // Front LED an
        	Sleep(10); //
        	LineData(lineData); // ADC "anwärmen"
        	LineData(STOP);
        	LineData(lineData);
    
        	STOP[0] = (lineData[0]+STOP[0])/2 +10; // STOP wert Berechnen (links)
        	STOP[1] = (lineData[1]+STOP[1])/2 +10; // STOP wert Berechnen (rechts)
        	
    
        	while(1)
        	{
        		
                  
    			MotorDir(BREAK,BREAK);
    			  MotorSpeed(0,0);
    			  BackLED(ON,ON);
    			
        		do{
        			LineData(lineData);
    				}
        		while ((lineData[0] > STOP[0]) && (lineData[1] > STOP[1])); //solange bis der eingelesene wert heller wird als STOP
                 
    			 
    			 MotorDir(FWD,FWD); // zurücksetzen
        		MotorSpeed(255,255);
        		BackLED(OFF,OFF);
        		Msleep(2000);
    			
    
    						/*Msleep(200);
                  MotorDir(BREAK,BREAK);
    			 
    			*/
         
        		
        		
        	}
           return 0;
        }
    Vielen Dank ich mach's als gelöst

    Juli

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Prima. So reicht ein Sensor zum Anhalten:

    while ((lineData[0] > STOP[0]) || (lineData[1] > STOP[1])); // solange die Photosensoren beleuchtet werden
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. Schrittmoter anhalten
    Von datatom im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 22.05.2012, 13:19
  2. Schrittmoter anhalten
    Von datatom im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 22.05.2012, 13:19
  3. Antworten: 6
    Letzter Beitrag: 28.11.2011, 16:01
  4. LED-Würfel mit taster anhalten
    Von pelikano im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 01.06.2008, 10:44
  5. Bewegung anhalten
    Von Stratege993 im Forum Robby RP6
    Antworten: 16
    Letzter Beitrag: 26.12.2007, 12:08

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test