- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 32

Thema: Arduino soll Schrittmotor NEMA 17 ansteuern; Driver: DRV8825

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    55
    Beiträge
    2.814
    Das sieht nach der Minimalverkabelung von der Pololu Seite aus.
    https://www.pololu.com/product/2133

    Will man auf Nummer Sicher gehen, kann man RESET; SLEEP; FAULT und ENABLE (alle Low schaltenden Eingänge die mit einem Strich über dem Text markiert sind) mit der Logikspannug versorgen.

    Die Chinesen schreiben Nennspannung 2,4V. 12V wäre da der auf Dauer tödlich für den Motor.
    https://detail.1688.com/offer/42108925825.html
    Auf der Webseite die Zeichen links von 2.4 (V) einfach mal in den Google Translator kopieren, da kommt dann "Nennspannung" raus.

    Die Motorspule interessiert am Ende die Leistung als Produkt aus Spannung und Strom.
    Wenn der Motor läuft, kann man schauen wie es mit einer Spannungsanhebung und der Erwärmung aussieht.
    Zum Anfang sollte man erst mal mit den Herstellervorgaben beginnen und sich rantasten.
    Geändert von i_make_it (14.06.2018 um 10:12 Uhr)

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2017
    Beiträge
    16
    Hallo,

    das mit den Herstellerangaben hat auch nicht funktioniert. Der Stepper macht kein mucks. Das ist richtig, ich habe die Minimal-Ausstattung benutzt

    Ein zweiter Stepper verhält sich ähnlich. Das Teil bleibt einfach stehen. Ich habe diesen benutzt: 17HS4401, der sollte eigentlich 12 Volt supporten.

    Diesen hatte ich bestellt:
    https://www.amazon.de/gp/product/B07...?ie=UTF8&psc=1

    Ich habe mal diesen Code eingespielt:

    Code:
    // testing a Stepper motor
    // on an Uno the onboard led will flash with each step
    // this version uses delay() to manage timing
    
    byte directionPin = 3;
    byte stepPin = 2;
    int numberOfSteps = 100;
    byte ledPin = 13;
    int pulseWidthMicros = 20;  // microseconds
    int millisbetweenSteps = 250; // milliseconds - or try 1000 for slower steps
    
    
    void setup() { 
    
      Serial.begin(9600);
      Serial.println("Starting StepperTest");
      digitalWrite(ledPin, LOW);
      
      delay(2000);
    
      pinMode(directionPin, OUTPUT);
      pinMode(stepPin, OUTPUT);
      pinMode(ledPin, OUTPUT);
      
     
      digitalWrite(directionPin, HIGH);
      for(int n = 0; n < numberOfSteps; n++) {
        digitalWrite(stepPin, HIGH);
        delayMicroseconds(pulseWidthMicros); // this line is probably unnecessary
        digitalWrite(stepPin, LOW);
        
        delay(millisbetweenSteps);
        
        digitalWrite(ledPin, !digitalRead(ledPin));
      }
      
      delay(3000);
      
    
      digitalWrite(directionPin, LOW);
      for(int n = 0; n < numberOfSteps; n++) {
        digitalWrite(stepPin, HIGH);
        // delayMicroseconds(pulseWidthMicros); // probably not needed
        digitalWrite(stepPin, LOW);
        
        delay(millisbetweenSteps);
        
        digitalWrite(ledPin, !digitalRead(ledPin));
      }
    }
    
    void loop() { 
    }
    Hier ist der Code her: http://forum.arduino.cc/index.php?topic=277692.0

    Ich bin ein wenig ratlos...

    grüße
    Volker

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    55
    Beiträge
    2.814
    Was für Meßmittel stehen Dir denn zur Verfügung?

    Hast Du zwei Multimeter?
    Damit Du mal an beiden Motorspulen die Spannung messen kannst?

    Dann einfach mal DIR auf GND legen und ein Programm, das nur Pin 2 mit einem Delay im Sekunden Takt toggled.

    Code:
    byte stepPin = 2;
    
    void setup() {
      pinMode(stepPin, OUTPUT);
    }
    
    void loop() { 
    digitalWrite(stepPin, LOW);
      delay(1000);
    digitalWrite(stepPin, HIGH);
      delay(1000);
    }
    Wenn das dazu Führt, das der Stepper jede Sekunde einen Schritt macht, dann mal die beiden Delays verkleinern (beide sollen den gleichen Wert haben).
    Z.B.: 500, dann 200, 100, 50, 30, 20, 10, 5.
    Dabei ggf. auf dem Treiber das Poti für den Strom nachstellen.

    Wenn das klappt, ist der Code die Ursache.

    Wenn es nicht klappt mal mit dem delay(1000) die Spannung an beiden Spulen messen. die sollte sich ja ändern. (Achtung: Bipolar Motor = AC).
    Dabei mit Spannung und Strom Arbeiten damit man in den Wertebereich für den Motor kommt.

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.066
    Die Spannung die du an den Treiber anschließt kann und sollte auch höher sein als die Nennspannung des Motors. Die Spannung sollte so hoch als möglich sein (im Bereich des erlaubeten => Datenblatt lesen).
    Die Motortreiber regeln den Strom (den man richtig einstellen muss), somit hast du ein gleichmäßiges Drehmoment über einen weiten Drehzahlbereich (ansonsten würde das Drehmoment mit höherer Drehzahl abnehmen).

    Das Problem sind vermutlich Schrittverluste (hat inka schon geschrieben). Du darfst nicht direkt eine hohe Frequenz vorgeben, sondern musst in einer Rampe hochfahren. Außerdem muss der Motorstrom richtig eingestellt sein.

    MfG Hannes

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    219
    Hi,
    womit betreibst Du den Arduino? Kann es sein, dass der einsetzende Motorstrom auf die Arduino-Betriebspannung rückwirkt?
    Evtl. falsche Masselegung? Der Motorstrom sollte nicht über die GND-Verbindung zwischen DRV8825 und Arduino fliessen.
    mfg
    Achim

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2017
    Beiträge
    16
    Hallo,

    ok, ich flashe das obige Programm, lege DIR auf GND, trenne GND zwischen Modul und dem Arduino, dann lege ich also 12 Volt auf VMOT und messe auf den Spulen max 2.4 V oder?

    ...habe ich also gemacht. Der Motor brummt, bewegt sich aber nicht. An der einen Spule liegt 1.1 V und auf der Anderen 1.5 V an.

    Wo kann ich das erhöhen? sind 12 Volt zu wenig? irgendwie hört sich das brummen nicht "gesund" an.

    Woher habe ich mein letzten Quellen?
    ich bin auf Thomas Sturm gestoßen. Er hat auf seiner Seite noch ein paar Tipps veröffentlich --> http://sturm.selfhost.eu/wordpress/p...utomat-teil-3/

    Er hat die Grundschaltung etwas geändert und ein Code veröffentlicht:

    Code:
    /*
    Schrittmotor
    alle 200ms ein Schritt in eine Richtung.
    
    This example code is in the public domain.
    */
    
    void setup() { 
    // setzen der Digitalpins 1 und 2 als Ausgang.
    pinMode(5, OUTPUT);
    pinMode(2, OUTPUT); 
    }
    
    void loop() {
    digitalWrite(5, HIGH); // DIR an Pin D5
    digitalWrite(2, HIGH); // STEP an Pin D2
    delay(100); // warte eine zehntel Sekunde
    digitalWrite(2, LOW); // Gnd an Pin D2
    delay(100); // warte eine zehntel Sekunde
    }
    Auch hier ist das Resultat ernüchternd. Der Motor brummt, bewegt sich nicht. Das Multimeter zeigt 0,79 V und 0,5 V an.

    Vielleicht hat noch jemand eine Idee.

    Grüße
    Volker
    Geändert von VolkerPI (20.06.2018 um 18:48 Uhr)

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.04.2013
    Beiträge
    526
    Lass doch den Arduino erstmal weg. Den Stepper-Treiber (DIR und STEP) kannst du auch mit einem Schalter und einem Taster belegen, damit kannst du dann Einzelschritte fahren. Das erstmal testen, und wenn das schon nicht geht, kann es mit dem Arduino auch nicht gehen.

    Gibt es evtl. noch einen ENABLE-Pin, der angesteuert werden muss?

    Gibtst du das richtige Signal? Es gibt Treiber, die wollen als Signal ein "High" haben, andere ein "Low", wobei letzteres dann nicht einfach "Leer", sondern "GND", also gesteuert 0 V sein muss. Hier würde ich das Manual noch mal genau studieren. Was an den Pins tatsächlich ankommt, kannst du ja mit dem Multimeter messen. Du könntest im Programm ja erstmal eine ganz kleine Drehzahl einstellen (ein Schritt alle 5 Sekunden oder so), dann hast du Zeit, dir das in Ruhe anzugucken und mitzumessen.

    Es ist manchmal schlecht, nicht verwendete Eingänge unbeschaltet zu lassen, die haben dann kein definiertes Potential. Besser ist es, jeden definiert auf GND oder HIGH zu legen, im einfachsten Fall per Drahtbrücke oder einem Vorwiderstand. Es sei denn, es sind Pull-Up bzw Pull-Down-Widerstände auf dem Treiber verbaut (Datenblatt checken9.

    Viel Erfolg!
    Nils

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    55
    Beiträge
    2.814
    Zitat Zitat von VolkerPI Beitrag anzeigen
    dann lege ich also 12 Volt auf VMOT
    ......
    Der Motor brummt, bewegt sich nicht. Das Multimeter zeigt 0,79 V und 0,5 V an.
    Und nach was riecht der Motor?
    Und nach was riechen die Motortreiber?

    Watt gleich Volt mal Ampere.

    Wenn du 12V bereitstellst und nur 0,5V misst, dürfte ein um den Faktor 24 größer Strom fließen wie bei 12V vorgesehen (Kurzschlußstrom, bzw. nahe dran).

    Je nach Dauer die Motor und Treiber das mitgemacht haben, könnte bereis etwas kaputt sein.

    Vortielhaft wäre mal Strom und Spannung zu messen um festzustellen ob der Strom abgeregelt wird oder voll durchschlägt.

    Beim Arduino kann man mal schauen ob das Rechtecksignal rauskommt oder ob z.B. durch de nTreiber bereits eine Deformierung stattfindet.
    Also unbelastet (Leitung offen ein Rechtecksignal) und belastet (mit dem Motortreiber verbunden) eine niedrigere Spannung.
    die 0,1s dürften zu kurz sein um mit einem einfachen Multimeter was sinnvolles messen zu können.
    Pass mal die beiden Delays wie in meinem Code, auf 1 Sekunde an. Da kannst Du sehen welche Spannung im ON Zustand ansteht.

Ähnliche Themen

  1. Arduino und Win 10 USB Driver
    Von oderlachs im Forum Arduino -Plattform
    Antworten: 2
    Letzter Beitrag: 04.07.2016, 06:54
  2. Antworten: 2
    Letzter Beitrag: 03.04.2016, 21:01
  3. Antworten: 2
    Letzter Beitrag: 12.01.2016, 14:01
  4. Antworten: 0
    Letzter Beitrag: 29.08.2015, 07:34
  5. Antworten: 9
    Letzter Beitrag: 20.02.2015, 18:59

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests