Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino soll Schrittmotor NEMA 17 ansteuern; Driver: DRV8825
VolkerPI
13.06.2018, 19:49
Hallo,
ich möchte gerne mit einem Arduino NANO, einem NEMA 17 (Busheng 17HD40005 22-B) Motor und einer Driver-Karte DRV8825 einen Fenster öffner bauen.
Ich habe das vor:
der Setpper soll eine Gewindestange antreiben. An dieser ist ein Hebelmechanismus montiert. Der Setpper wird über ein DRV8825-Modul angesteuert. Der Strom für den Stepper kommt derzeit von einem Labor-Netzteil (12V). Ein Arduino soll die Steuerung übernehmen. Ãœber 2 Tasten (Auf und Zu) soll der Motor so lange laufen, bis die gewünschte Position erreicht ist. So die Beschreibung in Kurzform.
Software:
Ich habe erst mal ein Code "aufgespielt", der nur mal den Motor bewegt, damit ich sehen kann, ob der Stepper mal grundsätzlich funktioniert.
Problem:
Sobald ich Strom drauf gebe, brummt der Motor, bewegt sich aber nicht von der Stelle.
Lösungsversuch:
ich habe schon die PIN-Belegung des Steppers geprüft. Auf der Unterseite des Treibers sind noch mal die Belegungen zu sehen. Ich versicherte mich mittels Multimeters, dass die PINs richtig sind A 1/2 gehört zur einen "Motor-Spule" und B 1/2 gehört zur Anderen. Ich habe das auch über die Herstellerseite des Steppers verifiziert. Mittels Poti auf der Treiber-Platine stellte ich einen Wert von 0,720 v ein. Das ist der Wert, an dem sich der Motor nicht so quält. Ich denke, dass 12 Volt am Motor auch richtig ist. Ich habe alles noch mal geprüft und sogar den Code ausgetauscht.
Ich habe auch schon einen anderen Stepper und Treiber verwendet. Hier ist das gleiche Resultat zu sehen....
Was kann das nur sein? Im Internet habe ich nicht viel darüber gefunden. Es gibt wohl dieses Problem, doch eine Lösung konnte ich noch nicht finden.
Hier der simple Code:
int steps=2;
int dir =3;
int stepTime=100;
void setup() {
pinMode(steps, OUTPUT);
pinMode(dir, OUTPUT);
}
void loop() {
digitalWrite(dir, HIGH);
digitalWrite(steps, HIGH);
delay(stepTime);
digitalWrite(steps, LOW);
delay(stepTime);
}
Die Verkabelung und einige Bilder habe ich in einer PDF zusammengefasst.
Vielleicht hilft das schon mal für die ersten Ideen.
Vielen Dank noch mal für die Hilfe.
das sieht danach aus, das der stepper der vorgegeben schrittfolge nicht nachkommen kann? Nur eine vermutung...
"Well, I think you should leave the delays in your code, to make sure the A4988 recognizes the step pulses. To be on the safe side, I'd put at least a 10 microsecond delay betweeen the step pin state changes. Actually, a long delay at the end of the loop (say half a second or so) will allow you to see each step the motor takes (just like in your previous setup)."
i_make_it
14.06.2018, 10:52
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.
VolkerPI
14.06.2018, 22:23
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/B07255B43M/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1
Ich habe mal diesen Code eingespielt:
// 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
i_make_it
15.06.2018, 13:18
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.
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.
021aet04
15.06.2018, 23:20
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
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
VolkerPI
20.06.2018, 16:48
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/projekt-drahtfuehrung-fuer-wickelautomat-teil-3/
Er hat die Grundschaltung etwas geändert und ein Code veröffentlicht:
/*
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
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
i_make_it
21.06.2018, 13:15
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.
VolkerPI
21.06.2018, 15:04
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/arduino-taster-abfragen-und-entprellen/
https://www.roboternetz.de/community/threads/61550-Probleme-mit-RNstepp297?p=575737#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.
i_make_it
21.06.2018, 17:59
Na ja, bei mir hat ein DRV8825 schon mal geraucht. (Kühlkörper beim Einbau ins Gehäuse wohl gelöst und nicht bemerkt).
Und Ende der 1990 er mit einem Stepper Bausatz von Konrad eine Stepper gegrillt.
Da ich ja aus dem Text nicht sehen kann ob auf sowas geachtet wurde, lieber einmal fragen. Dann kann das ausgeschlossen werden.
Wenn der Motor brummt, kann man die Welle dann andrehen?
Bzw. ist die Haltekraft dann größer wie das Rastmoment wenn er nicht bestromt wird?
- - - Aktualisiert - - -
Was mir grade auffällt, ein Verdrahtungsfehler könnte es auch sein.
33506
Wenn die Beschriftung im Wiring Diargramm stimmt, ist der Stecker des Motors A B C D und die Spulen A-C und B-D. Der Treiber ist aber A-B und C-D mit der Buchse verbunden.
Sollte das Stimmen kann es nicht gehen.
In dem Fall leg doch mal A2 auf 02, A1 auf 04, B1 auf 05 und B2 auf 03.
Vorher natürlich noch mal die Anschlüsse vom Motor durchmessen ob die Beschriftung im Wiring Diagram korrekt ist.
VolkerPI
21.06.2018, 22:47
Hi,
ich denke, die Aderpaare sind richtig. Auf dem Stecker sind die Farben rt +sw + bl + gn, demnach passen die Paare rt + bl und sw +gn, zumindest habe ich bei diesen Aderpaaren den Durchgang geprüft. Ich habe rt/bl auf A1/2 und sw/gn auf B1/2 gesteckt.
Mir ist aufgefallen, dass ohne Arduino schon der Motor brummt. Ich habe, wie oben angekündigt, einen entprellten Taster angeschlossen. Wenn ich den Taster für SLP drücke, zuckt der Motor - er brummt und zuckt. Wie schon geschrieben, hört sich das aber nicht gerade gesund an. Ich habe mit dem Poti 0.85 V eingestellt. Ich sehe, dass je unter 1 Volt an den Anschlüssen liegen, verbraten werden etwa 300 mA.
Komisch ist auch, dass am Labornetzteil auf einmal keine 12 V mehr angezeigt werden, sondern 7.9 V.
Ich habe bereits 3 der Treiber ausprobiert. Alle haben das gleiche.
021aet04
21.06.2018, 23:24
Was mir auffällt ist das du oben geschrieben hast das GND Modul und GND Arduino getrennt sind, die müssen verbunden sein (an einem Punkt => Sternpunkt).
Hast du schon einmal versucht die Eingänge fix auf ein Potential zu legen, also direkt mit 5V oder 0V. Brummt der motor auch dann noch? Wenn die Spannung einbricht ist das ein Zeichen von zu viel Strom. Zuerst schauen ob du einen Kurzschluss o.Ä. hast, bei einem Labornetzteil den Strom erhöhen bzw stärkeres Netzteil.
MfG Hannes
VolkerPI
22.06.2018, 09:36
Hi Hannes,
probiere ich in der nächsten Woche mal aus. Das Netzteil schafft 5 A und max 30 Volt. Ich habe GND jetzt mit dem Arduino verbunden. Ich hatte es mal getrennt, weil ein User geschrieben hat, dass man das trennen soll.
Ich habe jetzt auch die beiden Taster mit auf die gleiche Lochraster-Platine gelötet. Die Schaltung habe ich noch mal fotografiert und das PDF hoch geladen.
Ich verwende den Arduino nur noch als Netzteil für die 5 Volt. Wenn diese Grundschaltung per Tastendruck steuerbar ist, kommt wieder der MC dazu.
Vielleicht ist da noch ein Fehler.
GND muss immer verbunden sein, wenn einpolige Signal weitergeleitet werden sollen, Stromkreis und so, gelle ;-)
Was man noch testen könnte: An EINER der Motorspulen die Polung umkehren.
Auf deinen Fotos kann ich nicht viel erkennen, gemalte Schaltpäne sind besser (Das Aufmalen zwingt einen auch immer zum nachdenken...).
Wenn deine Taster-Schaltung steht, berichte doch mal, ob es nun geht oder nicht, ob er still ist oder brummt oder Schritte macht (die sind sehr klein, nicht wundern).
Wenn nicht, kannst du ja mit dem Voltmeter mal nachmessen, was denn an den Ausgängen ankommt. Am besten machst du dir ne kleine Tabelle, wo du nach jedem Schritt für A und B Spannnung und Polarität einträgst, und das machst du für mindestens vier Schritte.
i_make_it
22.06.2018, 12:12
Ich hatte es mal getrennt, weil ein User geschrieben hat, dass man das trennen soll.
Das hat niemand geschrieben.
Es wurde geschrieben, das der Motorstrom nicht über die GND Verbindung vom Treiber zum Arduino fließen soll.
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
Also das GND als Sternpunkt und nicht als Bus ausgelegt sein muß.
GND vom Logiknetzteil an das Bord mit dem Motortreiber,
GND von der Motorversorgung an das Board mir dem Motortreiber
und beide Stromversorgungen an die selbe Mehrfachsteckdose.
So können Ströme von der Motorversorgung nicht über GND vom Arduino abfließen und zu Störungen führen.
- - - Aktualisiert - - -
Man kann auch erst mal nur eine Spule verbinden und prüfen ob der Stepper noch brummt und ob die Motorwelle dabei zuckt/vibriert (je nach Frequenz des STEP Signals)
Und halt wie ich schon schrieb, mal versuchen die Motorwelle von Hand zu drehen und feststellen wie der Kraftaufwand im Gegensatz zum unbestromten Stepper ist.
Wenn die Spule nkorrekt verbnuden sind, sollte sich in eine Richtugn eine geringer Kraft ergeben, da man Quasi mit dem Drehfeld arbeitet. Andersrum halt dagegen.
Sind die Spulen gegensinnig angeschlossen sine beide Richtungen gleich.
Durch delays von 1000, also 1 Sekunde ist da dann auch mehr zu sehen als bei o,1 Sekunde.
Da erkennt man eher ob der Motor im Sekundentakt um 0,8° hin und her pendelt (ggf mal einen langen Draht oder Pappstreeifen auf die Welle kleben, damit man die Bewegung deutlicher sieht).
VolkerPI
26.06.2018, 23:17
Hi,
so, ich bin zurück. Ich habe so einiges ausprobiert. Die Achse lässt sich übrigens nicht bewegen, wenn der Motor brummt. Ich habe auch jede Spule einzeln getestet. Die Aderpaare wurden auch gedreht. Alles in Allem führte nichts zum Erfolg. Ich habe auch die Masse-Leitung entsprechend geändert... zumindest so, wie ich das interpretiert und verstanden habe.
Die Taster werden übrigens auch noch ignoriert. Jedenfalls, der Motor legt gleich mit dem brummen los, sobald die Spannungsquelle von 12 V anliegt.
Das Voltmeter zeigt auf A1 und A2 1.1 Volt sowie auf B1/B2 zeigt das Display 1.60 Volt.
Vielleicht mache ich irgendwas noch falsch. Ich habe mal meinen Schaltplan mit angehängt.
...ich bin ratlos...
Andree-HB
27.06.2018, 05:46
...ich würde noch den Enable-Pin auf GND setzen!
Gruseliger "Schaltplan", aber egal.
Es scheint mir, daß dein Treiberbaustein defekt ist. Die gemessenen Ausgangsspannungen sind mit oder ohne angeschlossenen Motor? Ändert sich die Polarität, wenn man einen Step tastet?
VolkerPI
27.06.2018, 22:35
Hallo hbquax,
ich habe ENABLE auf GND gelegt. Die gemessenen Ausgansspannungen waren mit angeschlossenem Motor. Wenn ich jetzt den Motor abziehe, dann messe ich, sofort nachdem ich das Labor-Netzteil einschalte, 12 Volt.
Nachdem ich ENABLE auf GND gelegt habe, änderte sich nichts.
Nach wie vor, brummt der Motor, wenn ich Ihn anschließe. Drücke ich die Taste, kann ich einen "zucker" feststellen. Ich halte die Achse und drücke. Wie schon im Verlauf geschrieben, ist der Schritt nur minimal.
Hmmm, ich habe 5 solcher Module bestellt, ich bin mir nicht sicher, 3 Module zeigen das Gleiche. Sicher, bei 5 Modulen ist die Chance immer gegeben, dass ein Modul mal defekt sein kann.
Ich habe mir die Rezession vorher durch gelesen.
Diese Artikel hatte ich bestellt: https://www.ebay.de/itm/5x-DRV8825-Schrittmotor-Treiber-Stepper-Driver-3D-Druck-RepRap-Arduino-CNC/162887190001?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649
Vielleicht kommen wir so dem Fehler auf die Spur.
VolkerPI
02.07.2018, 22:49
Hallo hbquax,
ich habe die Schaltung separat aufgebaut, also ein 2. mal. wenn ich das easy-driver board mit einem A3967-chip nehme, dann funktionieren die buttons und der Motor dreht sich.
Nach diesem Test, gehe ich davon aus, dass die Buttons, so wie ich diese verdrahtet habe, funktionieren. Ein defekter Motor schalte ich auch aus. Da aber dieser Driver ja nur 750 mA verträgt ist das nicht der Richtige. Der Chip wird zu heiß.
Ich bin also wieder zurück zum DRV8825. Die Grundschaltung habe ich dann noch mal auf einem Breadboard aufgebaut, um irgendwelche Fehler auszuschließen. Gebe ich nun die 12 Volt (VMot/GND) drauf, lege 5 Volt (RST, SLP,GND) am Chip an, habe ich das gleiche Problem, wie ich es oben beschrieben habe. Wenn ich den Anschluss durch prüfe und die Buttons drücke liegen auf dem unbelasteten Anschluss jeweils 12 Volt an und es ändert sich auch das Vorzeichen. Ich gehe also davon aus, dass der Chip grundsätzlich tut, was er soll.
Ich habe davon, wie oben geschrieben, 5 Stück. Bei allen ist der gleiche "Fehler".
Was kann man da noch machen? ...mir gehen auch die Ideen aus.
Grüße
V
Andree-HB
03.07.2018, 06:17
Vielleicht wäre soetwas für Dich mal eine Hilfe:
https://www.amazon.de/Printer-Stepper-Driver-Expansion-DRV8825/dp/B06WVJX8QP
...damit solltenn sich möglichen Verdrahtungsfehler einschränken lassen.
An "Step" ein einfacher Rechteckgenerator, an "Dir" ein Umschalter zwischen GND/VCC, schon hat mal einen fertigen Motorantrieb mit Richtungsumschaltung ohne Controller.
VolkerPI
03.07.2018, 22:30
Hi Andree-HB,
alles klar, Platine ist bestellt, das wird einfacher sein. Das mit Step und Dir ist eine gute Idee, das hab ich ja mit den Tastern mehr oder weniger realisiert.
Ich hab gesehen, dass er "Steps" macht. Es stört halt das brummen... mit und ohne controller.
Was mich auch irgendwie stutzig macht ist, dass mit einem weiteren Aufbau nach der Grundschaltung auf Breadboard, das gleiche Problem hab.
Ich warte mal, bis die Platine da ist und Teste die 5 Treiber. Wäre käse, wenn alle defekt sind.
Andree-HB
04.07.2018, 06:38
...mich wundert das "brummen" - wenn über ein vernünftig gleichgerichtetes Labornetzteil eingespeist wird, dann darf da nix brummen...höchstens warm werden oder riechen. :-)
VolkerPI
10.08.2018, 14:33
Hallo Members,
ich habe das Platinsche aus China bekommen. ich habe auch gleich einen anderen Treiber A4988 bestellt, um zu sehen, ob meine DRV8825 kaput sind.
Was soll ich dazu sagen. Ich habe meine Schaltung aufgebaut und das Standard-Programm aufgespielt.
Ich habe auch schon den Arduino Nano gegen einen Uno ausgetauscht.
Es sieht so aus, dass sich der Motor nicht bewegt. Ich sehe, dass Leistung verbraten wird, zumindest sehe ich das am Display des Labor-Netzteils.
Ich habe auch am Poti des Treiberbausteins gedreht. Das hat auch nix gebracht. Eines ist anders, der Motor brummt nicht! Die Achse des Motors ist schwer drehbar, zuckt aber nicht.
Was ich noch nicht gemacht hab ist, dass ich auf die Schnelle mein Messgerät bemüht habe. Das mache ich am Wochenende.
Was ich gemacht habe ist, dass die beiden PINS Reset und Sleep verbunden (überbrückt) habe. Auf der Platine, auf dem huckepack der Treiber gesteckt wird, hat noch DIP-Schalter. Die Schalterstellung ist dabei auf "off". Ich gehe davon aus, dass das richtig ist. Eine Anleitung ist leider nicht dabei gewesen.
Vielleicht hat jemand noch eine Idee, warum das nicht funktioniert.
Am Samstag halte ich mal das Messgerät ran. Vielleicht kann man die Lösungsvorschläge schon mit berücksichtigen.
Vielen Dank.
V
Andree-HB
11.08.2018, 09:04
...was sollte denn da auch für eine Anleitung dabei sein ? Die dortigen Pins und deren Beschaltung sollten doch auch für Laien selbsterklärend sein..
Zudem habe ich weiter oben beschrieben, wie man einen ganz einfachen Testaufbau OHNE Microcontroller durchführen kann, um einen angeschlossenen Motor drehen zu lassen.
VolkerPI
13.08.2018, 09:40
Hallo Andree-HB,
danke für die Rückantwort. Ich hatte mir das mit Deiner Schaltung schon angeschaut. Mir fehlt nur der Rechteckgenerator.
Ich benutze ja den Microcontroller. Ich habe ja das mit den Tasten schon gemacht und geschrieben, dass er ja Steps macht.
Nachdem ich aber die vorgeschlagene Platine bestellt hatte, hört das "brummen" auf und tut nichts mehr. Ich hatte mir einfach mehr erhofft.
Ich tippe, dass mein Netzteil nicht so viel liefert. Ich versuche mal ein anderes Netzteil zu organisieren. Einen Fehler in der Schaltung kann ich ausschließen. Der Motor funktioniert ja auch am 3D-Drucker. Die Anschlüsse A1+2 bzw. B1+2, denke ich, sind richtig.
Wenn ich das Multimeter an GND und A1, A2 bzw B1 und B2 anschließe werden 0.6 V angezeigt.
Sobald ich die Schaltungen unter Strom setze, geht der Lüfter am Netzteil an. Die Anzeigen am Netzteil gehen runter (0,3 A und 1.7 V). ...was mich an der Stelle verwundert. Eigentlich sollte das doch stabil sein, 3 A und 30 Volt liefern können.
Ich muss mich auch gleich entschuldigen, wenn meine elektrokenntnisse sich auf die Schule beschränken. Meine Ausstattung ist etwas spärlich.
Vielleicht hat noch jemand eine Idee.
ich versuche mal das Netzteil vom 3D Drucker missbrauchen... und gebe bescheid.
Danke noch mal für Alles... ich bleibe jedenfalls am Ball. Das ware ja gelacht, wenn man den Fehler nicht lokalisieren kann.
Grüße
V
Andree-HB
13.08.2018, 10:45
...mein Vorschlag mit dem Rechteckgenerator gehen ja auch in die Richtung, dass man damit ausschliessen kann, dass die Verbindung zum Arduino oder die Software die Probleme macht.
Einen Rechteckgenerator kann man auch ganz einfach über die Soundkarte (Ausgang) und geeignete Software realisieren
VolkerPI
13.08.2018, 22:44
Hallo Andree-HB,
ich habe ein Fehler beseitigt. Ich hab einen Kurzschluss gefunden. Dieser war über eine Brücke am Schalter. Ich habe also einen A4988-Chip verwendet. Der Schrittmotor dreht sich. Nachdem ich wieder einen DRV8825 verwendet hatte, zuckt der Motor.
Jetzt habe ich noch die Sorge, warum der eine Motor wesentlich lauter ist.
Vielleicht gibt es dazu noch eine Idee...
ich danke und sende grüße :-)
v
Ich grabe das noch mal aus, weil ich es gerade erst gefunden habe. Für die, die das zukünftig lesen.
Ich habe auch einen A4988 genommen und einen passenden Steppermotor dazu, ich habe auch zum ersten Mal einen Schrittmotor in Betrieb genommen.
1. Wenn die Steuerfrequenz zu hoch ist, brummt der Motor, bewegt sich aber nicht.
2. Die Spannung spielt nicht wirklich eine große Rolle, ich habe sogar 16V als Motorspannung an die Platine angelegt. Bei 2.8V Nennspannung des Motors. Es ist vor allem die Leistung entscheidend, die der Motor zieht. Wird er zu schnell heiß, zieht er offenbar zu viel Strom, dann stimmt an der Einstellung der Platine was nicht, dort kann man den Strom nachregeln; der Motor kann durchbrennen.
3. 100 Schritte, die der Motor tun soll, führen bei einem Test zur Verwirrung. Das entspricht ungefähr einer halben Achsumdrehung, was bei entsprechender Ansteuerung auch noch sehr schnell gehen kann und eigentlich nur noch wie ein Zucken des Motors aussieht.
4. 20 Microsekunden könnten zu wenig sein, das ist grenzwertig, um den Motor sauber zu bewegen. Sauber = geringe Geräusche und gleichmäßiger Motorlauf.
5. Die Platinen kennen verschiedene Schrittmodi: Full Step, 1/2, 1/4, 1/8 Step, 1/16, 1/32. Im Full-Step-Mode ist der Motor am lautesten und dreht am langsamsten. Die 20 Microsekunden für ein High sind dann sehr wahrscheinlich viel zu wenig. Der Motor brummt, weil er nicht in der Lage ist, dieser schnellen Frequenz zu folgen.
Um den Motor überhaupt zu testen genügt zunächst ein "delay(500)" zwischen High und Low, am Steuerpin für die Schritte. Der dreht nun jede Sekunde einen Schritt. Man sieht jetzt, ob es funktioniert.
Bei der Schrittmodi-Einstellung von 1/16, bin ich für einen sauberen Motorlauf auf mindestens 36 Microsekunden gekommen. Dann macht der schon ordentlich Umdrehungen. Bei Full-Step kann es sein, dass mindestens 50 bis 100 Microsekunden, zwischen LOW und HIGH angesetzt werden müssen - weiß leider nicht mehr, wieviele µs das bei meinem Motor wenigstens waren.
MfG
Moppi
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.