- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 37

Thema: Start mit Arduino?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #17
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.211
    Habs mir mal in die IDE gezerrt-liest sich da einfach besser.
    Klar laufen die beiden Motoren nacheinander, denn die Funktion Ramp() enthält ne Schleife.
    Heisst: die wird erstmal _komplett_ durchlaufen, ehe das Hauptprogramm weiter läuft.
    Somit wird Motor1 erstmal hochlaufen gelassen, und _dann_ wird das Spiel mit Motor2 wiederholt.

    Mal ehrlich: ich kenn den Typen nicht, der das Programm geschrieben hat und will auch nix schlechtes sagen, aber das ist bisschen scheusslich gecodet.

    Und zu dir: nen paar Grundlagen wären von Vorteil- hättest du die, wärst du da selber drauf gekommen, dass das delay() in der Funktion Ramp _nicht_ das eigentliche Übel ist.
    Das delay beträgt 10ms- das ist nötig, damit der Motor überhaupt den jeweiligen Wert erstmal erreichen kann (von Null auf hundert kann auch nen Elektromotor nich)- kannst du ausprobieren: verändere den Wert mal und guck zu, wie die Rampe langsamer oder schneller durchlaufen wird.
    Im Prinzip funktioniert das hochlaufen ohne das delay() auch- aber möglicherweise nicht ganz korrekt, eben weil zu schnell hochgeregelt wird. Praktisch beim fahren (meistens) recht egal, aus technischer Sicht aber korrekt umgesetzt.

    so ganz blick ich das Chaos mit den Pins nicht- die ENABLE-Pins steuern die PWM, das ist klar aber:
    Welche Pins steuern welchen Motor?

    Das ist, dank der chaotischen Namen, nicht rauszulesen.

    Tante Edit fügt hinzu: ok, ich habs.

    Lesen muss man können-steht doch drin. Wenn wir aber hier weiter basteln, ändern wir da nen paar Namen _sinnvoll_.

    Ich hab dir mal die Zuweisung der Motoren _in_ die Schleife gepackt, somit sollten die beiden Motoren synchron* laufen nun, und zwar beide erst hoch, dann wirder runter:

    Code:
    #define OUT1PIN1 2    // H-bridge OUT1.1
        #define OUT1PIN2 4    // H-bridge OUT1.2
        #define ENABLE1  3    // H-bridge Ena 1
        #define OUT2PIN3 7    // H-bridge OUT2.3
        #define OUT2PIN4 8    // H-bridge OUT2.4
        #define ENABLE2  6    // H-bridge Ena 2
    
        void setup() 
        {
          // setup Motor 1 pins
          pinMode(OUT1PIN1, OUTPUT);
          pinMode(OUT1PIN2, OUTPUT);
         
          // setup Motor 2 pins
          pinMode(OUT2PIN3, OUTPUT);
          pinMode(OUT2PIN4, OUTPUT);
        }
    
        void loop() 
        {
          //Motor_1
          digitalWrite(OUT1PIN1, LOW);   // set leg 1 of the H-bridge low
          digitalWrite(OUT1PIN2, HIGH);  // set leg 2 of the H-bridge high
          digitalWrite(OUT2PIN3, LOW);   // set leg 3 of the H-bridge low
          digitalWrite(OUT2PIN4, HIGH);  // set leg 4 of the H-bridge high
          Ramp(0,255,1,10);
     /*     Ramp(ENABLE2,0,255,1,10);
          //Motor_2
          digitalWrite(OUT1PIN1, HIGH);  // set leg 1 of the H-bridge high
          digitalWrite(OUT1PIN2, LOW);   // set leg 2 of the H-bridge low
          digitalWrite(OUT2PIN3, HIGH);  // set leg 3 of the H-bridge high
          digitalWrite(OUT2PIN4, LOW);   // set leg 4 of the H-bridge low */
          Ramp(255,0,-1,10); 
     //     Ramp(ENABLE2,255,0,-1,10);
    
        }
    
        void Ramp(int Start, int End, int Inc, int Del) 
        {
          /* Ramps from PWM of Start to End
             adding Inc each time
             delay of Del MS each time thru the loop
          */
          for(int i=Start;i<End;i = i + Inc) 
          {
            analogWrite(ENABLE1, i);       // Motor 1 Speed
            analogWrite(ENABLE2,i);      // Motor 2 Speed
            delay(Del);
          }
        }
    ,

    Sag mir bitte, ob das so funktioniert, ich hab das mal eben in ner Minute umgeschustert.
    Falls es das tut: deine Geschichten hab ich nur auskommentiert, du solltest also recht einfach sehen, _was_ ich geändert hab. Verstehst du, warum?
    Geändert von Rabenauge (11.06.2014 um 22:43 Uhr)
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

Ähnliche Themen

  1. [ERLEDIGT] [ARDUINO] 2 Motoren + Servo mit dem Arduino Uno steuern
    Von Torrentula im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 31.08.2011, 16:31
  2. Problem mit Start/Stop Taster
    Von Zizibee im Forum Robby RP6
    Antworten: 13
    Letzter Beitrag: 22.04.2010, 10:09
  3. Antworten: 7
    Letzter Beitrag: 15.06.2009, 16:30
  4. Start mit Programmsprache C??
    Von Pilotzi im Forum PIC Controller
    Antworten: 14
    Letzter Beitrag: 29.02.2008, 13:40
  5. Simulator start mit ad port
    Von der noob im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 4
    Letzter Beitrag: 17.08.2004, 12:14

Berechtigungen

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

12V Akku bauen