Ich habe eine Nema 17 mit einer Nennleistung von 0,8 Ampere und einem Schrittwinkel von 1,8 Grad .
Der Motor sieht so aus und hat sechs Drähte, die aus ihm herauskommen:
Die vier Drähte, die ich verwendet habe, sind die unten gekennzeichneten (ich wurde von meinem Verkäufer angewiesen, alles außer dem schwarzen und dem weißen zu verwenden):
Meine aktuelle Verkabelung:
Sowohl die Drähte A+ als auch B+ sind mit A1 bzw. B1 verbunden. Ebenso sind A- und B- mit A2 bzw. B2 verbunden.
Ich versuche, diesen Motor mit einem Arduino Uno und einem Polulu DRV 8825- Treiber zu verwenden. Die Stromversorgung des Motors beträgt 12 V, 500 mA über den Schritttreiber.
Ich treibe den Stepper-Treiber mit zwei Drähten (einer für den Schritt, einer für die Richtung). Meine gesamte Verkabelung wurde auf Korrektheit überprüft.
Ich versuche, diesen Motor für meinen Kameraschieber zu verwenden, aber ohne Glück.
Das Problem
Ich möchte mit meinem Stepper eine wirklich langsame, aber gleichmäßige Rotation erreichen, kann dies aber nicht. Idealerweise möchte ich so niedrige Geschwindigkeiten erreichen, wie in diesem YouTube-Video gezeigt .
Wenn ich versuche, die Geschwindigkeit der Schrittgeschwindigkeit durch meinen Code zu variieren, verringert sich die Geschwindigkeit nur geringfügig (definitiv nicht so langsam, wie ich möchte), und selbst wenn dies der Fall ist, gibt es bei diesen bestimmten Geschwindigkeiten viele Vibrationen. Allerdings gibt es nur einen (kleinen) Drehzahlbereich, in dem der Motor leise ist. Ich fürchte, diese Vibrationen können mein Slider-Setup völlig unbrauchbar machen.
Gearing ist aufgrund des Platzmangels auch keine wirkliche Option (ich möchte, dass dieser Slider leicht ist und ohne große Probleme in einen Reisekoffer passt.)
Ich habe auch versucht, Mikroschritte durch meinen Treiber (DRV 8825) zu machen - Bei gleichen Geschwindigkeitswerten (wie bei Vollschritten) kann die Motorspule vibrieren gehört werden. Und wenn ich die Werte anpasse, um den Motor drehen zu lassen, scheint es ein (ungefähres) Vielfaches der Werte zu sein, die ich zuvor für Vollschritte verwendet habe, wodurch der Motor wiederum nur in den gleichen Bereichen verwendbar ist wie im Vollschritt Modus. Andernfalls vibriert der Motor entweder stark oder leicht, aber ohne Drehung.
Versuchte Lösungen:
1) Mikroschritt (kein Glück)
2) Gearing (Erprobt und funktioniert, kann aber nicht für meinen Anwendungsfall verwendet werden)
3) Verschiedene Stepper-Bibliotheken (Accel, PWM usw.)
4) Variable Widerstandssteuerung (Kein Glück)
An diesem Punkt bin ich völlig verloren und ahnungslos. Könnte es etwas Einfaches sein, das ich vielleicht verpasse? Oder könnte es etwas Drastisches sein, wie das Ändern einer Hauptkomponente (wie des Motors selbst oder des Treibers)? Jede Hilfe wäre sehr willkommen, und wenn Erläuterungen erforderlich sind, werde ich sie sehr gerne zur Verfügung stellen.
Danke!
Mein aktueller Code als Referenz:
#include <AccelStepper.h>
AccelStepper stepper (1, 9, 8);
int MODE0 = 7;
int MODE1 = 6;
int MODE2 = 5;
void setup()
{
stepper.setMaxSpeed(15000);
stepper.setSpeed(12000);
pinMode(MODE0, OUTPUT);
pinMode(MODE1, OUTPUT);
pinMode(MODE2, OUTPUT);
//Motor is now running in Microstepping mode (1/16)
digitalWrite(MODE0, LOW);
digitalWrite(MODE1, LOW);
digitalWrite(MODE2, HIGH);
}
void loop()
{
stepper.runSpeed();
}
Okay, es stellte sich heraus, dass es auch ein Problem mit einer Verkabelung gab und die Beschriftung der Motoren tatsächlich falsch war. Ein großes Dankeschön an Andy, der seine kostbare Zeit damit verbracht hat, mir zu helfen.
Wie ich das Problem gelöst habe
Update: Nach einer Diskussion mit einem der folgenden Kommentatoren wurde festgestellt, dass es keinen Unterschied in der Reihenfolge der an den Treiber angeschlossenen Kabel gibt, daher spielt die Reihenfolge der in meiner Frage und in der folgenden Antwort gekennzeichneten Kabel keine so große Rolle als Einstellung des Werts am variablen Widerstand selbst.
Diese Treiber haben einen winzigen variablen Onboard-Widerstand, der den Strom zum Motor begrenzt. Ich musste es nur optimieren, damit alles funktionierte. Jetzt läuft der Motor mit extrem niedrigen Drehzahlen, wenn auch mit leichten Vibrationen (im Vollschrittmodus).
Nachdem ich den vom Chip bereitgestellten Mikroschrittmodus aktiviert hatte, konnte ich die Vibrationen erheblich dämpfen und alles funktionierte butterweich.
Für alle anderen, die diesen Motor haben könnten, hier sind einige Referenzen:
Orange und braune Drähte bilden eine Spule dieses Motors, wobei das Schwarze der Mittelabgriff ist.
Ebenso bilden Gelb und Rot die zweite Spule, wobei der weiße Draht der Mittelabgriff ist.
Die Art und Weise, wie Sie es an einen Polulu DRV8825 anschließen, ist wie folgt:
Ich hoffe, das hilft allen anderen, die das gleiche Problem haben.
Beifall.
Nur wie die Drähte aus dem vom OP gelieferten Bild in den Schrittmotor gelangen, besteht eine vernünftige Chance, dass A- und B + falsch benannt werden. So interpretiere ich die Verkabelung zu den beiden Spulen mit Mittelabgriff im Schrittmotor: -
Wenn dies der Fall ist, bin ich nicht überrascht, dass sich der Motor nicht richtig verhält. Ich begründe dies auf der Tatsache, dass Orange, Weiß und Gelb gruppiert zu sein scheinen, als ob sie zu einer der Spulen gehören und Braun, Schwarz und Rot für die andere Spule. Wenn dies der Fall ist, werden die Etiketten A- und B+ fälschlicherweise vertauscht.
Ihr Code kann den Mikroschrittmodus nur einstellen, wenn Sie die Befehlsausgänge Ihres Arduino (Pins 7, 6 und 5) mit den entsprechenden Eingängen auf dem DRV882x-Schild (Eingänge M0, M1 und M2) verbinden. Warum sollte der Chip sonst wissen, was Sie wollen?
Andi aka
Designer
Andi aka
Designer
Andi aka
Designer
Andi aka
Designer
Andi aka
Designer
Benutzer66114
Benutzer120707
Benutzer2943160
Chris Stratton
Designer