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

Thema: Start mit Arduino?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.05.2014
    Alter
    56
    Beiträge
    25
    ja, es funktioniert so. Ich glaube ich habe auch deine Änderungen verstanden. Ich habe noch meine Verdrahtung ein Bischen aufgeräumt und auch die Verbindungen zwischen den Motorshields und dem Megaboard so gelegt, dass sie nicht kreuz & quer gehen. Man hat da schon recht viel Freiheiten bei de defines...

    Habe den Code für 4 Motoren erweitert und vor- und zurück Umschalten:
    Code:
    //bridge S1
        
        #define OUT1PIN_1 11    // H-bridge_1 OUT1.1
        #define OUT1PIN_2 9     // H-bridge_1 OUT1.2
        #define ENABLE_A1  10   // H-bridge_1 Enable A/1
        #define OUT2PIN_3 8     // H-bridge_1 OUT2.3
        #define OUT2PIN_4 7     // H-bridge_1 OUT2.4
        #define ENABLE_B1  6    // H-bridge_1 Enable B/2
        
    //bridge S2
    
        #define OUT3PIN_1 4     // H-bridge_2 OUT1.1
        #define OUT3PIN_2 3     // H-bridge_2 OUT1.2
        #define ENABLE_A2  0    // H-bridge_2 Enable A/1
        #define OUT4PIN_3 2     // H-bridge_2 OUT2.3
        #define OUT4PIN_4 1     // H-bridge_2 OUT2.4
        #define ENABLE_B2  5    // H-bridge_2 Enable B/2
        
    
        void setup() 
        {
          // setup Motor 1 pins
          pinMode(OUT1PIN_1, OUTPUT);
          pinMode(OUT1PIN_2, OUTPUT);
         
          // setup Motor 2 pins
          pinMode(OUT2PIN_3, OUTPUT);
          pinMode(OUT2PIN_4, OUTPUT);
          
          // setup Motor 3 pins
          pinMode(OUT3PIN_1, OUTPUT);
          pinMode(OUT3PIN_2, OUTPUT);
         
          // setup Motor 4 pins
          pinMode(OUT4PIN_3, OUTPUT);
          pinMode(OUT4PIN_4, OUTPUT);
          
          
          
        }
    
        void loop() 
        {
          //Motor_1 & 2 vorwärts
          digitalWrite(OUT1PIN_1, LOW);   // set leg 1 of the H-bridge_1 low
          digitalWrite(OUT1PIN_2, HIGH);  // set leg 2 of the H-bridge_1 high
          digitalWrite(OUT2PIN_3, LOW);   // set leg 3 of the H-bridge_1 low
          digitalWrite(OUT2PIN_4, HIGH);  // set leg 4 of the H-bridge_1 high
        
          //Motor_3 & 4 vorwärts
          digitalWrite(OUT3PIN_1, LOW);   // set leg 1 of the H-bridge_2 low
          digitalWrite(OUT3PIN_2, HIGH);  // set leg 2 of the H-bridge_2 high
          digitalWrite(OUT4PIN_3, LOW);   // set leg 3 of the H-bridge_2 low
          digitalWrite(OUT4PIN_4, HIGH);  // set leg 4 of the H-bridge_2 high
          Ramp(0,255,1,10);
          
                //Motor_1 & 2 rückwärts
          digitalWrite(OUT1PIN_1, HIGH);  // set leg 1 of the H-bridge_1 low
          digitalWrite(OUT1PIN_2, LOW);   // set leg 2 of the H-bridge_1 high
          digitalWrite(OUT2PIN_3, HIGH);  // set leg 3 of the H-bridge_1 low
          digitalWrite(OUT2PIN_4, LOW);   // set leg 4 of the H-bridge_1 high
          
                //Motor_3 & 4 rückwärts
          digitalWrite(OUT3PIN_1, HIGH);  // set leg 1 of the H-bridge_2 low
          digitalWrite(OUT3PIN_2, LOW);   // set leg 2 of the H-bridge_2 high
          digitalWrite(OUT4PIN_3, HIGH);  // set leg 3 of the H-bridge_2 low
          digitalWrite(OUT4PIN_4, LOW);   // set leg 4 of the H-bridge_2 high
          Ramp(0,255,1,10);
    
        }
    
        void Ramp(int Start, int End, int Inc, int Del) //int Motor entfernt
        {
          /* 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(ENABLE_A1, i);       // Motor 1 enable
            analogWrite(ENABLE_B1, i);       // Motor 2 enable
            analogWrite(ENABLE_A2, i);       // Motor 3 enable
            analogWrite(ENABLE_B2, i);       // Motor 4 enable       
            delay(Del);
          }
          
        }
    thanks erstmal, werde nun weiter experimentieren...
    Gruß ahave

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.211
    Funktionierts denn auch?
    Einige Pins müssen PWM bekommen (die für die Drehzahlregelung)- das geht nicht mit jedem Pin!

    Die Zuweisungen würd ich nen bisschen aufräumen (und vor allem sinnvollere Namen geben), das erleichtert die Sache ungemein, vor allem später, wenn das Ding mehr machen soll als vorwärts und rückwärts fahren.
    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. [ERLEDIGT] 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
  •  

Solar Speicher und Akkus Tests