- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 13

Thema: Arduino Motor Steuerung Code

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von Torrentula
    Registriert seit
    10.10.2009
    Ort
    Procyon A
    Beiträge
    355
    Also bei mir klappt es im Test mit einer LED einwandfrei und ich bekomme auch die Drehrichtung zurück.

    Eingabeformat:
    1) + oder - senden
    2) Geschwindigkeit senden

    wenn ich als Geschwindigkeit 200 angebe, leuchtet die LED deutlich.

    Bevor du die Drehrichtung änderst, musst du immer ein Komma senden, damit der Motor angehalten wird. Dann kannst du wieder die Drehichtung und Geschwindigkeit festlegen.

    Bei der Ansteuerung von Motoren verwendet man häufig Rampen zum kontrollierten Beschleunigen und Abbremsen der Motoren, um Stromspitzen zu vermeiden. Ich poste nochmal einen Code, der Rampen zum Beschleunigen und Abbremsen der Motoren verwendet.

    Code:
    char eingabe = 's';
    int geschwindigkeit = 0;
    
    void setup(){
        Serial.begin(9600);
        pinMode(11, OUTPUT);
        pinMode(10, OUTPUT);
        pinMode(9, OUTPUT); 
    }
    
    void loop(){
        if (Serial.available()){
            eingabe = Serial.read();
        }
        
        if (eingabe == '+'){ // zuerst überprüfen, ob vorwärts oder rückwarts gefahren werden soll
            if(Serial.available()){
                geschwindigkeit = Serial.read(); // nochmals auf eine Eingabe der Geschwindigkeit warten
                digitalWrite(10, LOW); //
                digitalWrite(9, HIGH); //
                            
                 for(int i = 0; i <= geschwindigkeit; i = i + 10){
                        analogWrite(11, i); // Nun den eingegebenen Wert in das Timer PWM-Register schreiben = Geschwindigkeit regeln
                        delay(20);
                  }
                            
                Serial.println("LINKS");
            }
        }
    
        if (eingabe == '-'){ // dasselbe für Rückwärtsfahrt
            if(Serial.available()){
                geschwindigkeit = Serial.read();
                digitalWrite(10, HIGH); //
                digitalWrite(9, LOW); //
                
                    for(int i = 0; i <= geschwindigkeit; i = i + 10){
                         analogWrite(11, i); // Nun den eingegebenen Wert in das Timer PWM-Register schreiben = Geschwindigkeit regeln
                         delay(20);
                    }
    
                Serial.println("RECHTS");
            }
        }
        if (eingabe == ','){
                    
             for(int i = geschwindigkeit; i >= 0; i = i - 10){
                    analogWrite(11, i); // Nun den eingegebenen Wert in das Timer PWM-Register schreiben = Geschwindigkeit regeln
                    delay(20);
             }
            geschwindigkeit = 0;
            Serial.println("STOP");
            eingabe = 's';
        }
    }
    Geändert von Torrentula (06.08.2011 um 08:54 Uhr)
    MfG Torrentula

Ähnliche Themen

  1. ARDUINO ARDUINO l293D + MegaservoLib
    Von m1ch15inner im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 2
    Letzter Beitrag: 11.07.2011, 11:50
  2. Bascom code auf Arduino Board Flashen **Hilfe**
    Von KoaxPilot im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 13
    Letzter Beitrag: 23.06.2011, 09:14
  3. Motor Steuerung
    Von Sigi123 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 7
    Letzter Beitrag: 28.10.2010, 19:01
  4. Arduino PWM Code
    Von Lota im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 20.12.2008, 09:03
  5. PIC µc-code - stepper motor
    Von im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 13.04.2005, 10:29

Berechtigungen

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

12V Akku bauen