-
        

Ergebnis 1 bis 2 von 2

Thema: Die Geschwindigkeit von 2 DC Motoren über eine L293D H-Brücke vorgeben

  1. #1

    Die Geschwindigkeit von 2 DC Motoren über eine L293D H-Brücke vorgeben

    Anzeige

    Hey,
    ich habe ein Problem.
    Ich möchte über die H Brücke L293D zwei DC Motoren ansteuern.
    Hierbei ist wichtig, dass ich die Geschwindigkeit vorher angeben kann. Sie muss NICHT währenddessen geändert werden.
    Nach meinem Code kann ich nur dem einem Motor die Geschwindigkeit vorgeben, der andere bleibt ganz aus.
    Wenn ich den Teil mit der Geschwindigkeitssteuerung weglasse, laufen beide auf Höchstgeschwindigkeit.
    Hier ist mein Code:
    Code:
    #define STATE_IDLE		0
    #define STATE_INIT		1
    #define STATE_RUNNING	        2
    #define STATE_EXITING	        3
    
    const int in1Pin = 5;  // H-Brücken-Eingangspins
    const int in2Pin = 4;
    const int in3Pin = 3;  // H-Brücken-Eingangspins
    const int in4Pin = 2;
    const int en1Pin = 6;
    const int en2Pin = 7;
    const int buttonPin = 8;
    
    int buttonState = 0;
    int Zustand;
    
    void setup()
    {
      Zustand = STATE_IDLE;
      pinMode(buttonPin, INPUT);
      pinMode(in1Pin, OUTPUT);
      pinMode(in2Pin, OUTPUT);
      pinMode(in3Pin, OUTPUT);
      pinMode(in4Pin, OUTPUT);
    }
    
    void loop()
    {
      switch( Zustand )
      {
        case STATE_IDLE: Idle();
        break;
        case STATE_INIT: Init();
        break;
        case STATE_RUNNING: Run();
        break;
        case STATE_EXITING: Exiting();
        break;
      }
    }
    
    void Idle()
    {
      buttonState = digitalRead(buttonPin);
      if (buttonState == HIGH) { 
        Zustand = STATE_INIT; 
      }
    }
    
    void Init()
    {
      delay(1000);
      Zustand = STATE_RUNNING;
    }
    
    void Run()
    {
      analogWrite(en1Pin,70);
      analogWrite(en2Pin,100);
      digitalWrite(in1Pin,LOW);
      digitalWrite(in2Pin,HIGH);
      delay(1500);
      digitalWrite(in1Pin,LOW);
      digitalWrite(in2Pin,LOW);
      digitalWrite(in3Pin,HIGH);
      digitalWrite(in4Pin,LOW);
      delay(5000);
      digitalWrite(in3Pin,LOW);
      digitalWrite(in4Pin,LOW);
      digitalWrite(in2Pin,LOW);
      digitalWrite(in1Pin,HIGH);
      delay(1500);
      digitalWrite(in1Pin,LOW);
      digitalWrite(in2Pin,LOW);
      Zustand = STATE_EXITING;
    }
      
    void Exiting()
    {
      delay(1000);
      Zustand = STATE_IDLE;
    }
    Ich hoffe, ihr könnt mir helfen
    Gruß,
    Mathis

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Hallo
    ich kenn mich mit Arduino nicht aus. Mir fällt auf, das bei pinMode die enXPins nicht als Output enthalten sind. Das sind doch die Enable Pins für den L293 oder? über die mit PWM die Geschwindigkeit gesteuert wird?

    PS: analogWrite()
    On most Arduino boards (those with the ATmega168 or ATmega32, this function works on pins 3, 5, 6, 9, 10, and 11. On the Arduino Mega, it works on pins 2 through 13. Older Arduino boards with an ATmega8 only support analogWrite() on pins 9, 10, and 11

    richtige Pins ausgewählt? Welches board?

    Gruß
    Searcher
    Geändert von Searcher (31.01.2013 um 16:45 Uhr)
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Ähnliche Themen

  1. Ansteuerung von Motoren über Java
    Von laurinho im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 7
    Letzter Beitrag: 13.01.2009, 19:15
  2. Antworten: 1
    Letzter Beitrag: 05.03.2007, 15:57
  3. Eine Frage über Kaskadenregelung von Elektromotor
    Von mabaosheng im Forum Motoren
    Antworten: 73
    Letzter Beitrag: 29.10.2006, 22:08
  4. Geschwindigkeit für Asuro vorgeben
    Von keha im Forum Asuro
    Antworten: 8
    Letzter Beitrag: 13.02.2006, 21:00
  5. Antworten: 13
    Letzter Beitrag: 09.01.2005, 16:07

Berechtigungen

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