- Akku Tests und Balkonkraftwerk Speicher         
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
    an dem Anderen bin ichn noch dran, habe aber ein Schaltplan für das Modul gefunden

    Klicke auf die Grafik für eine größere Ansicht

Name:	sainsmart_motor_driver_schematics.jpg
Hits:	17
Größe:	33,7 KB
ID:	28367

    - - - Aktualisiert - - -

    so, jetzt habe ich folgendes gemacht:

    von dieser webseite:

    mit dieser einstellung:

    Jumpers:
    ENA Removed
    ENB Removed
    PWM1 Installed - wahrscheinlich durch die Verbindung ENA - Arduino3
    PWM2 Installed - ENB verbunden mit Arduino6

    On the header:
    GND ==> GND on Arduino
    5V ==> N/C (5V Logic power is available from on-board regulator)
    ENB ==> Arduino 6
    ENA ==> Arduino 3
    IN1 ==> Arduino 2
    IN2 ==> Arduino 4
    IN3 ==> Arduino 7
    IN4 ==> Arduino 8

    Power Terminal Block:
    5V ==> N/C
    GND ==> Ground on Motor Power Supply
    VCC ==> +12V (for 12 volt motor)

    OUT1 Terminal Block:
    Pin1 ==> Motor 1 +
    Pin2 ==> Motor 1 -

    OUT2 Terminal Block:
    Pin1 ==> Motor 2 +
    Pin2 ==> Motor 2 -
    diesen
    Code:
        /*
          L298N Test Code
          hacker.instanet.net
          Tim Laren timl@instanet.com
          This example code is in the public domain.
         */
    
        #define OUT1PIN1 2    // H-bridge OUT1.1
        #define OUT1PIN2 4    // H-bridge OUT1.2
        #define ENABLE1  3    // H-bridge Ena 1
        #define OUT2PIN1 7    // H-bridge OUT2.1
        #define OUT2PIN2 8    // H-bridge OUT2.2
        #define ENABLE2  6    // H-bridge Ena 2
    
    
        void setup() {
          // setup motor pins
          pinMode(OUT1PIN1, OUTPUT);
          pinMode(OUT1PIN2, OUTPUT);
          pinMode(ENABLE1, OUTPUT);
    
          digitalWrite(ENABLE1, HIGH);   // set the enables to high
        }
    
    
        void loop() {
          digitalWrite(OUT1PIN1, LOW);   // set leg 1 of the H-bridge low
          digitalWrite(OUT1PIN2, HIGH);  // set leg 2 of the H-bridge high
    
          delay(5000);
    
          digitalWrite(OUT1PIN1, HIGH);  // set leg 1 of the H-bridge high
          digitalWrite(OUT1PIN2, LOW);   // set leg 2 of the H-bridge low
    
          delay(5000);
        }
    Motor RH dreht ca. 5sec, stoppt und dreht 5sec in andere Richtung

    jetzt werde ich versuchen das für zwei Motoren zu erweitern...


    edit:

    zunächstmal geht auch Beschleunigung - mit diesem
    Code:
       /*
          L298N Test Code w/ Speed Control
          hacker.instanet.net
          Tim Laren timl@instanet.com
          This example code is in the public domain.
         */
    
        #define OUT1PIN1 2    // H-bridge OUT1.1
        #define OUT1PIN2 4    // H-bridge OUT1.2
        #define ENABLE1  3    // H-bridge Ena 1
        #define OUT2PIN1 7    // H-bridge OUT2.1
        #define OUT2PIN2 8    // H-bridge OUT2.2
        #define ENABLE2  6    // H-bridge Ena 2
    
        void setup() {
          // setup Motor 1 pins
          pinMode(OUT1PIN1, OUTPUT);
          pinMode(OUT1PIN2, OUTPUT);
         
          // setup Motor 2 pins
          pinMode(OUT2PIN1, OUTPUT);
          pinMode(OUT2PIN2, OUTPUT);
        }
    
        void loop() {
          digitalWrite(OUT1PIN1, LOW);   // set leg 1 of the H-bridge low
          digitalWrite(OUT1PIN2, HIGH);  // set leg 2 of the H-bridge high
          Ramp(ENABLE1,0,255,1,10);
          Ramp(ENABLE1,255,0,-1,10);
          digitalWrite(OUT1PIN1, HIGH);  // set leg 1 of the H-bridge high
          digitalWrite(OUT1PIN2, LOW);   // set leg 2 of the H-bridge low
          Ramp(ENABLE1,0,255,1,10);
          Ramp(ENABLE1,255,0,-1,10);
        }
    
        void Ramp(int Motor, 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(Motor, i);       // Motor 1 Speed
            delay(Del);
          }
        }
    Geändert von ahave (11.06.2014 um 14:31 Uhr)
    Gruß ahave

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    Läuft also?
    Na siehste. Freut mich echt für dich...
    Find ja die Ansteuerung der Dinger nen bisschen abenteuerlich, aber womöglich ists in der Praxis gar nicht mal so. Wie gesagt: hab ja das Teil nicht (und werds demnächst auch nicht brauchen)- nichts desto Trotz interessierts mich. Ab und zu mal übern Tellerrand gucken....

    Also erzähl mal weiter...
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    21.05.2014
    Alter
    56
    Beiträge
    25
    Hallo Rabenauge,
    Es klappt immer noch nicht. Beim hochgebocktem Chassis schon, sobald das Ding auf dem Boden steht, fährt es vor und zurück, Er zuckt nur mal kurz nach links. Drehen auf der Stelle geht einfach nicht. Auch die Räder lassen sich leicht festhalten, wenn die Motoren drehen. Könntest Du Dir bitte die dreh-Funktion anschauen? Evtl. ohne der Rampe? Länger drehen?


    Hier noch ein paar daten...

    Du wolltest eine stromlaufplan des Chassis:

    Klicke auf die Grafik für eine größere Ansicht

Name:	2014_06_14_verdrahtung_chassis.jpg
Hits:	12
Größe:	61,9 KB
ID:	28409

    die zusätzlichen Verbindungen sehen so aus:
    ----------------------------------------------------------------------

    Farbe Pin Motor-shield

    br 8 S2_ENA_M_3
    sw 9 S2_ENB_M_1
    gn 53 S2_IN_1
    ws 51 S2_IN_2
    or 49 S2_IN_3
    ge 47 S2_IN_4

    rt 10 S1_ENA_M_4
    br 11 S1_ENB_M_2
    gr 52 S1_IN_1
    vi 50 S1_IN_2
    sw 48 S1_IN_3
    bl 46 S1_IN_4
    -------------------------------------------------------------------------
    das ist der code:
    Code:
    //bridge S1
        
        #define S1_IN_1 52    // H-bridge_1 OUT1.1
        #define S1_IN_2 50    // H-bridge_1 OUT1.2
        #define S1_ENB_M_2 11    // H-bridge_1 Enable motor-2
        #define S1_IN_3 48     // H-bridge_1 OUT2.3
        #define S1_IN_4 46     // H-bridge_1 OUT2.4
        #define S1_ENA_M_4 10    // H-bridge_1 Enable motor-4
        
    //bridge S2
    
        #define S2_IN_1 53     // H-bridge_2 OUT1.1
        #define S2_IN_2 51     // H-bridge_2 OUT1.2
        #define S2_ENA_M_3 8    // H-bridge_2 Enable motor-3
        #define S2_IN_3 49     // H-bridge_2 OUT2.3
        #define S2_IN_4 47     // H-bridge_2 OUT2.4
        #define S2_ENB_M_1 9    // H-bridge_2 Enable motor-1
     
    //     boolean running = false;
    
        void setup() 
        {
          // setup Motor 1 pins
          pinMode(S1_IN_1, OUTPUT);
          pinMode(S1_IN_2, OUTPUT);
         
          // setup Motor 2 pins
          pinMode(S1_IN_3, OUTPUT);
          pinMode(S1_IN_4, OUTPUT);
          
          // setup Motor 3 pins
          pinMode(S2_IN_1, OUTPUT);
          pinMode(S2_IN_2, OUTPUT);
         
          // setup Motor 4 pins
          pinMode(S2_IN_3, OUTPUT);
          pinMode(S2_IN_4, OUTPUT);
        }
        void vorwaerts()
        
        {
          //Motor_1 & 2 vorwärts
          digitalWrite(S1_IN_1, LOW);   // set leg 1 of the H-bridge_1 low
          digitalWrite(S1_IN_2, HIGH);  // set leg 2 of the H-bridge_1 high
          digitalWrite(S1_IN_3, LOW);   // set leg 3 of the H-bridge_1 low
          digitalWrite(S1_IN_4, HIGH);  // set leg 4 of the H-bridge_1 high
        
          //Motor_3 & 4 vorwärts
          digitalWrite(S2_IN_1, LOW);   // set leg 1 of the H-bridge_2 low
          digitalWrite(S2_IN_2, HIGH);  // set leg 2 of the H-bridge_2 high
          digitalWrite(S2_IN_3, LOW);   // set leg 3 of the H-bridge_2 low
          digitalWrite(S2_IN_4, HIGH);  // set leg 4 of the H-bridge_2 high
          Ramp(0,255,2,10);
        }
        void rueckwaerts()
        {
          //Motor_1 & 2 rückwärts
          digitalWrite(S1_IN_1, HIGH);  // set leg 1 of the H-bridge_1 low
          digitalWrite(S1_IN_2, LOW);   // set leg 2 of the H-bridge_1 high
          digitalWrite(S1_IN_3, HIGH);  // set leg 3 of the H-bridge_1 low
          digitalWrite(S1_IN_4, LOW);   // set leg 4 of the H-bridge_1 high
          
          //Motor_3 & 4 rückwärts
          digitalWrite(S2_IN_1, HIGH);  // set leg 1 of the H-bridge_2 low
          digitalWrite(S2_IN_2, LOW);   // set leg 2 of the H-bridge_2 high
          digitalWrite(S2_IN_3, HIGH);  // set leg 3 of the H-bridge_2 low
          digitalWrite(S2_IN_4, LOW);   // set leg 4 of the H-bridge_2 high
          Ramp(0,255,2,10);
       }
       void drehen_links()
       {
          //Motor_1 & 2 vorwärts
          digitalWrite(S1_IN_1, HIGH);   // set leg 1 of the H-bridge_1 low
          digitalWrite(S1_IN_2, LOW);  // set leg 2 of the H-bridge_1 high
          digitalWrite(S1_IN_3, LOW);   // set leg 3 of the H-bridge_1 low
          digitalWrite(S1_IN_4, HIGH);  // set leg 4 of the H-bridge_1 high
        
          //Motor_3 & 4 rückwärts
          digitalWrite(S2_IN_1, HIGH);   // set leg 1 of the H-bridge_2 low
          digitalWrite(S2_IN_2, LOW);  // set leg 2 of the H-bridge_2 high
          digitalWrite(S2_IN_3, LOW);   // set leg 3 of the H-bridge_2 low
          digitalWrite(S2_IN_4, HIGH);  // set leg 4 of the H-bridge_2 high
          Ramp_dreh(0,255,2,20);
       }  
        
        void loop() 
        {
          vorwaerts();
          rueckwaerts();
          drehen_links();
        }
    
        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(S1_ENA_M_4, i);       // Motor 4 enable
            analogWrite(S1_ENB_M_2, i);       // Motor 2 enable
            analogWrite(S2_ENA_M_3, i);       // Motor 3 enable
            analogWrite(S2_ENB_M_1, i);       // Motor 1 enable       
            delay(Del);
          }
          
        }
    
    void Ramp_dreh(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(S1_ENA_M_4, i);       // Motor 4 enable
            analogWrite(S1_ENB_M_2, i);       // Motor 2 enable
            analogWrite(S2_ENA_M_3, i);       // Motor 3 enable
            analogWrite(S2_ENB_M_1, i);       // Motor 1 enable       
            delay(Del);
          }
          
        }
    von dem Code habe ich schon einighes verstanden, weiss aber echt nicht was ich noch probieren könnte...
    Geändert von ahave (14.06.2014 um 20:56 Uhr)
    Gruß ahave

Ä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