In die Formel hab ich dabei 1.5 Ampere für den maximalen Motorstrom und 0.068 Ohm für die current sensing resistance verwendet, wobei ich diesen Standardwert aus dem Video entnommen habe. In den Daten zum Motortreiber hab ich diesen Wert leider nicht gefunden.
Ich nutze ein Netzteil, um das Motorsteuerungsmodul mit 18V zu versorgen. Der Motor kann mit einer Spannung von 8-35 Volt umgehen, das sollte also auch kein Problem sein.
Mit diesem Aufbau (und dem unten beigefügten Code) passiert aber nichts mit dem Motor. Erst, wenn ich die Kabel am Motortreiber etwas zusammendrücke, macht der Motor Geräusche und dreht sich ab und zu mal (aber auch nur um ein paar Grad) - siehe Video im Anhang.
Ich habe zwei Motoren, zwei Treiber und auch dutzende Jumper Wires, die ich alle mal durchgewechselt habe. Ich komme aber auf kein anderes Ergebnis als das oben beschriebene.
Hat irgendwer eine Idee, was an diesem Aufbau falsch laufen könnte?
Hier dann noch mein Code, der auf dem Mikrocontroller läuft:
1
#include"BluetoothSerial.h"
2
3
BluetoothSerialSerialBT;
4
5
// Schrittmotor-Pinbelegung
6
constintMS_PIN=15;// Schrittauflösung (MS1)
7
constintMS2_PIN=13;// Schrittauflösung (MS2)
8
constintMS3_PIN=12;// Schrittauflösung (MS3)
9
constintEN_PIN=25;// Enable-Pin
10
constintSTEP_PIN=26;// Step-Pin
11
constintDIR_PIN=27;// Richtungs-Pin
12
13
voidsetup(){
14
15
// Pin-Modi festlegen
16
pinMode(MS_PIN,OUTPUT);
17
pinMode(MS2_PIN,OUTPUT);
18
pinMode(MS3_PIN,OUTPUT);
19
pinMode(EN_PIN,OUTPUT);
20
pinMode(STEP_PIN,OUTPUT);
21
pinMode(DIR_PIN,OUTPUT);
22
23
// Schrittauflösung einstellen (Vollschritt)
24
digitalWrite(MS_PIN,LOW);
25
digitalWrite(MS2_PIN,LOW);
26
digitalWrite(MS3_PIN,LOW);
27
28
digitalWrite(EN_PIN,LOW);// Set the Enabled state to LOW, so the driver is being used
29
30
Serial.begin(115200);
31
}
32
33
voidloop(){
34
// Motor eine volle Umdrehung im Uhrzeigersinn durchführen lassen
Nein, diese Messung habe ich nicht durchgeführt. Ich habe auch leider kein Oszilloskop, nur ein Multimeter.
Zum zweiten Teil der Antwort:
Ich habe den gesamten Versuchsaufbau auch ohne Steckbrett und nur über Jumper Wires gemacht, auch da hatte ich kein anderes Ergebnis.
Oder ist die Verwendung von Jumper Wires an bestimmten Stellen des Aufbaus generell nicht zulässig?
Wie gesagt, ich bin in dem Thema wirklich nicht erfahren :/
0.068 Ohm für die current sensing resistance verwendet, wobei ich diesen
Standardwert aus dem Video entnommen habe. In den Daten zum Motortreiber
hab ich diesen Wert leider nicht gefunden.
Dein Treiber hat 200mOhm Sense-Widerstände. D.h. der liefert mit der Einstellung jetzt max 500mA. Hier ist der Schaltplan:
(Man sieht es auch gut auf dem Foto von Deinem Amazon Link. Doe beiden großen Widerstände mit "R200" sind die Sense-Widerstände. Kannst ja mal mit Deinem Board vergleichen.
Ich sehe auf Deinem Foto nochmal Jump-Wires zwischen Motor und Treiber. Kannst Du den Motorstecker nicht direkt auf den Treiber stecken?
Die Jumpwires für die Motorstromversorgung würde ich durch anständige Drähte ersetzen, am besten direkt anlöten oder selber Crimpen. Gute Dupont Verbinder sollten bis 2A gehen.
Ein 1.5A Schrittmotor benötigt 2.1A Treiberstrom für volles Drehmoment. Da sind deine Winztreiber zum Geizpreis nicht geeignet, die bei 800mA schon den Hitzetod sterben. Aber drehen müsste er sich. Mit 1000Hz Takt sollte der Motor drehen, auch wenn man ENABLE, MS1, MS2, MS3, RESET und SLEEP nicht angeschlossen hat. Du hast sie mit dem ESP verbunden und setzt sie auf Vollschritt, macht 300upm, ich würde mal 1/16 Mikroschritt wählen, wozu kauft man sonst einen Mikroschritttreiber.
Den überall gezeichneten mindestens 100uF (besser 1000uF) Elko an der Versorgungsspannungsanschlüssen des A4988 Boards gegen Rückströme hast du NATÜRLICH nicht eingebaut, man soll sie auch auf der Platine anlöten weil sie gesteckt schon fast wirkungslos sind und eine Beschädigung des Treiber-IC nicht mehr verhindern können. Zumindest so lange man nicht an der Motorachse per Hand dreht und den Schrittmotor im Generatorbetrieb in die Versorgungsspannung speisen lässt.
Masse der 3.3V sollte mit Masse der 18V über das A4988 Board hergestellt sein. Eine extra Verbindung kann auch nicht schaden.
Nein, diese Messung habe ich nicht durchgeführt. Ich habe auch leider
kein Oszilloskop, nur ein Multimeter.
Dann nimm dein Multimeter.
Mit dem A4988 kannst du den Motor Schritt für Schritt weiterschalten und bei jedem einzelnen Schritt alles nachmessen. Vergiss erstmal den ESP32 und steuere den Stepper-Controller z.B. über Kippschalter (mit RS-FF zur Entprellung) an.
Ja genau, auf Deinem Foto sieht es so aus, als ob der ESP gar keinen Strom hat. Das Schrittmotor-Board stellt keine Stromversorgung für den ESP bereit!
Ich habe den Versuchsaufbau entsprechend angepasst
Hast du einen Schaltplan zu dieser Verdrahtung? Schaltpläne sind das sprachübergreifende Kommunikationsmittel schlechthin bei Elektr(on)ikern. Daran kann man systematische Fehler am einfachsten erkennen.
Auch hier ändert sich leider nichts am Resultat.
Wie gesagt: nicht im Trüben herumstochern, sondern Tatsachen feststellen. Mit einem geeigneten Messgerät. Für höhere Frequenzen und dynamische Signale ist das ein Oszilloskop. Ein Hardwareentwickler und ein maschinennaher Embedded-Programmierer sollte so ein Gerät (wenigstens rudimentär) bedienen können.
Bis du eines gefunden hast, kannst du auch einfach mal einen Sekundentakt ausgeben und mit dem Multimeter messen, ob die Pegel passen (gemessen an den Pins des Schrittmtotrtreibers, denn der sieht nur die Pegel, die dort anliegen). Dann müsste der Schrittmotor eben ganz langsam laufen.
Der Controller wird über meinen Laptop versorgt, von dem auch der Sketch auf den ESP32 geladen wird. Auf den Fotos ist er nur gerade nicht angeschlossen.
Ein 1.5A Schrittmotor benötigt 2.1A Treiberstrom für volles Drehmoment.
Da sind deine Winztreiber zum Geizpreis nicht geeignet, die bei 800mA
schon den Hitzetod sterben. Aber drehen müsste er sich. Mit 1000Hz Takt
sollte der Motor drehen, auch wenn man ENABLE, MS1, MS2, MS3, RESET und
SLEEP nicht angeschlossen hat. Du hast sie mit dem ESP verbunden und
setzt sie auf Vollschritt, macht 300upm, ich würde mal 1/16 Mikroschritt
wählen, wozu kauft man sonst einen Mikroschritttreiber.
Den überall gezeichneten mindestens 100uF (besser 1000uF) Elko an der
Versorgungsspannungsanschlüssen des A4988 Boards gegen Rückströme hast
du NATÜRLICH nicht eingebaut, man soll sie auch auf der Platine anlöten
weil sie gesteckt schon fast wirkungslos sind und eine Beschädigung des
Treiber-IC nicht mehr verhindern können. Zumindest so lange man nicht an
der Motorachse per Hand dreht und den Schrittmotor im Generatorbetrieb
in die Versorgungsspannung speisen lässt.
Masse der 3.3V sollte mit Masse der 18V über das A4988 Board hergestellt
sein. Eine extra Verbindung kann auch nicht schaden.
Es soll halt für ein Uniprojekt herhalten und ich bin der - im Nachhinein scheinbar naiven - Vorstellung an das Projekt rangegangen, dass es schon nicht so schwer und finanziell problematisch sein kann, einen etwas stärkeren Motor anzusteuern.
Auch Eigenrecherchen hatten mich ermutigt, dass die Kombination aus Motor und Motortreiber in Ordnung seien.
Den Capacitor habe ich tatsächlich vergessen. Ich habe leider auch mittlerweile die Befürchtung, dass die beiden Treiber durch die vielen Versuche hinüber sind.
Es ist auch nicht schwer so einen Motor anzusteuern, es gibt schon für einstellige bzw mittlerweile ganz minimal 2 stellige Euros richtige Steppertreiber TB6600. Über die Qualität reden wir da besser nicht, genausowenig über das, was da drin verbaut ist. Jedenfalls brauchen die Dinger nicht mehr wie eine entsprechend leistungsfähige Stromversorgung und Ansteuerung über Step/dir.
Oder vielleicht besser für dich, es gibt auch Schrittmotore mit eingebautem Treiber, der ist dann auf den Motor abgestimmt, da passt dann alles zusammen, aber der Nachteil ist halt, so was kostet deutlich mehr wie eine Kombi aus 2 Teilen.
im
Nachhinein scheinbar naiven - Vorstellung an das Projekt rangegangen,
dass es schon nicht so schwer
Ist es auch nicht. Erstinbetriebnahme ist ne Sache von max. einer halben Stunde, mit Erfahrung dauert das keine 10 Minuten. Wie oben bereits geschrieben ist der erste Schritt den Treiber ohne den ESP zu verwenden. Man kann die Steuersignale auch händisch erzeugen, da reichen ein paar Taster.
Daraus lässt sich mit einem Oszilloskop innerhalb einiger Minuten Gewissheit machen.
Ein Wort aus der Praxis: wenn irgendwo was faul ist und nicht so tut wie ich es will, dann nehme ich ein Oszilloskop. Dieses Messgerät zu besitzen (oder wenigstens einen, der es verleiht) und zu beherrschen ist unabdingbar wenn man mit Elektronik rummachen will. Und da gibts heute schon Teile, die weniger kosten als das, was man an einem Urlaubstag auf den Kopf haut oder auch weniger als die Eintrittskarte zum nächsten hippen Konzert eines angesagten Musikanten.
Was man mit einem Oszilloskop und zwei simplem Lastwiderständen
(anstelle des Motors) sehr schnell prüfen könnte.
Nichtmal unbedingt sicher, dass das geht, denn die getaktete Stromregelung (Chopper) könnte da einen Strich durch die Rechnung machen. Aber mit dem Widerstandsmessbereich des Multimeters kann man den Schrittmotor prüfen (beide Wicklungen müssen den selben Widerstand haben) und dann die Motorspannung mit dem Oszilloskop anschauen.
Wichtiger Hinweis am Rande:
Trenne NIEMALS die Verbindung zum Schrittmotor wenn der Treiber mit
Spannung versorgt wird!
Es ist generell schlecht, Schaltungen unter Spannung umzustecken, denn da können Ströme auf Wegen fließen, die nicht für den Stromfluss ausgelegt sind. Und mit den Steckbrettern passiert das wegen irgendwelchen Wackelkontakten auch ohne dass man da aktiv mitwirkt.
Und an der ganzen Uni gibt es natürlich kein einziges Oszi...
Versteht mich nicht falsch. Ich bin extrem dankbar für jeden Hinweis und werde auch versuchen, die Tipps nach und nach zu testen und die fehlenden nötigen Bauteile zu organisieren u.a. auch mit Absprache meiner Dozenten.
Es ist ja mitnichten so, dass ich all diese Fehler absichtlich oder aus reiner Faulheit mache sondern viel mehr aus (noch) Unwissenheit.
Wie gesagt, beschaff dir so einen TB6600 Steppertreiber. Das Teil kostet je nachdem wo knapp unter bis über nem Zehner. Die Dinger funktionieren, haben halt nicht den besten Ruf, besonders was Laufruhe und Kraft bei hohen Drehzahlen anbetrifft. Beides sollte für deine Zwecke aber kaum eine Rolle spielen. Ach so, du brauchst natürlich auch ein Netzteil das den Strom bei der gewünschten Betriebsspannung liefert.