- LiFePO4 Speicher Test         
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
    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.

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.065
    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

  3. #3
    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

  4. #4
    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)

  5. #5
    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

  6. #6
    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.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2017
    Beiträge
    16
    Hi i_make_it,

    das mit dem VMOT steht doch auf dem DRV8825 (PDF oben). Im Internet ist zu lesen, dass bei VMOT (motor power supply) eine Spannung von 8.2 - 45 Volt anliegen kann. Wie ich gesehen habe, verträgt der Motor 1.7 A. Im Internet habe ich gelesen, dass man über das Poti den Treiber kalibrieren kann. Wenn der Motor 1,7 A verträgt, dann habe ich am Poti so lange gedreht, bis 0,85 V auf dem Multimeter zu sehen war.

    Ich denke nicht, dass der Treiber oder Motor defekt ist. ...zumindest hat er noch keine Rauchzeichen von sich gegeben.

    Wenn ich mein Labornetzteil an VMOT anschließe und anfange hoch zu drehen, beginnt der Motor ab einer Spannung von 7,9 V, irgendwelche Geräusche zu machen. Auf dem Display des Netzteiles steigt dann der Stromverbrauch.

    Irgendwo hab ich gelesen, dass der Treiber sowas wie ein Spannungsregler ist. Das kann ich mir vorstellen, denn an den A und B Pins ist eine Spannung von meist unter einem Volt zu messen.

    Ich bin gerade dabei, den Vorschlag mal von hbquax umzusetzen. Ich messe dann mal Spannung und Stromstärke, sobald ich mit der Schaltung fertig bin. Wie ich überall gelesen habe, nehme ich 2 Taster, löte an den einen Pin des Tasters eine Steuerleitung und lege den anderen PIN gegen 5 V. An den einen PIN des Tasters, der zu DIR und STEP gehen soll, löte je einen Widerstand (10k) der an GND geht.
    Quelle: https://madgyver.de/de/2015/06/15/ar...nd-entprellen/

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.04.2013
    Beiträge
    526
    https://www.roboternetz.de/community...737#post575737
    Ist zwar ein anderer Treiber, aber in den ersten paar Beiträgen ist beschrieben, wie ich das mit Schalter und Taster gelöst habe. Der Takt-Taster muss ggf. noch entprellt werden, um sicher zu funktionieren.

    @ i_make_it: Schrittmotorsteuerungen sind üblicherweise stromregelnd. Deshalb sind ja Eingangsspannungen größer der Nennspannung des Motors zulässig. Die Nennspannung ist die Spannung, bei welcher der stillstehende Motor seinen Nennstrom aufnimmt. Bei höheren Drehzahlen braucht man dann MEHR Spannung, um den Nennstrom zu erreichen, und davon hängt das Drehmoment ab.

Ä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. [ERLEDIGT] Arduino Uno und GRBL Nema 17 Schrittmotor ansteuern
    Von Sigma1990 im Forum Motoren
    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