- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 18

Thema: RP6 -- Ein Motor rückwärts?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    So vielleicht:

    Code:
    // Die Drehrichtungen werden in RP6RobotBaseLib.h definiert:
    
    // Direction:
    // #define FWD 0
    // #define BWD 1
    // #define LEFT 2
    // #define RIGHT 3
    
    // moveAtSpeed() mit Drehrichtungsangabe als dritter Parameter
    
    void moveAtSpeed2(uint8_t desired_speed_left, uint8_t desired_speed_right, uint8_t dir)
    {
    	moveAtSpeed(desired_speed_left, desired_speed_right);
    	changeDirection(dir);
    }
    
    // rotoate() mit zwei unterschiedlichen Geschwindigkeiten (mit Weganpassung der Seiten)
    
    void rotate2(uint8_t desired_speed_left, uint8_t desired_speed_right, uint8_t dir, uint16_t angle, uint8_t blocking)
    {
    	uint16_t distance, distance_left, distanceright;
    
    	motion_status.move_L = true;
    	motion_status.move_R = true;
    	distance = (uint16_t) (((uint32_t)(ROTATION_FACTOR) * (uint16_t)angle)/100);
    	
    	distance += distance; // Gesamtweg verteilen
    	distance_left = distance * desired_speed_left / (desired_speed_left + desired_speed_right);
    	distance_right = distance - distance_left;
    	
    	preDecelerate_L = distance_left - 100;
    	preDecelerate_R = distance_right - 100;
    	preStop_L = distance_left;
    	preStop_R = distance_right;
    	if(distance_left < 40) {
    		distance_left = 40;
    		preStop_L = 20;
    		preDecelerate_L = 10;
    	}
    	if(distance_right < 40) {
    		distance_right = 40;
    		preStop_R = 20;
    		preDecelerate_R = 10;
    	}
    	moveAtSpeed(desired_speed_left, desired_speed_right);
    	changeDirection(dir);
    
       mleft_dist = 0;
    	mright_dist = 0;
    	distanceToMove_L = distance_left;
    	distanceToMove_R = distance_right;
    
    	motion_status_tmp = motion_status.byte;
    	MOTIONCONTROL_stateChangedHandler();
    	if(blocking)
    		while(!isMovementComplete())
    			task_RP6System();
    }
    (ungetestet, Basis der Funktionen aus der RP6-Library)


    Gruß

    mic
    Geändert von radbruch (16.10.2011 um 09:12 Uhr) Grund: Formel Wegverteilung korrigiert
    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. Rechter Motor dreht nur rückwärts
    Von cele93 im Forum Asuro
    Antworten: 104
    Letzter Beitrag: 03.02.2015, 17:04
  2. Ein Motor dreht nur Vorwärts nicht Rückwärts
    Von Hohenloher im Forum Asuro
    Antworten: 12
    Letzter Beitrag: 11.03.2010, 17:23
  3. linker Motor dreht nur rückwärts
    Von icebreaker im Forum Asuro
    Antworten: 59
    Letzter Beitrag: 30.10.2009, 18:18
  4. rechter Motor dreht nur rückwärts!
    Von Munzi im Forum Asuro
    Antworten: 15
    Letzter Beitrag: 07.02.2009, 11:12
  5. Motor rückwärts drehen
    Von Impi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 14.02.2006, 17:34

Berechtigungen

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

12V Akku bauen