ich habe mal eine Frage zum Stepper Motor 28BYJ-48 5VDC im Betrieb mit dem ESP32.
Und zwar habe ich Ihn bei mir an folgenden Pins im Betrieb: 12, 25 ,14, 27
Soweit funktioniert der Stepper und dreht sich 1x360° nach vorne danach wieder 1x360° zurück.
Allerdings bekommt der Stepper Probleme wenn die setSpeed über 18 gesetzt wird. Danach dreht sich der Stepper nur noch in eine Richtung, wenn ich mit dem Speed noch höher gehe, dann steht er auf der Stelle und vibriert sozusagen nur noch...
Womit hängt das zusammen? Ich hätte eine Vermutung würde die aber gern von jemanden der sich noch etwas besser auskennt bestätigt haben. Für eine Umdrehung sind ca 2048 Steps erforderlich. Ich vermute nun das bei der Übersetzung ab setSpeed 19 Schritte übersprungen werden, wie man das aus dem 3D Druck kennt. Ich denke der Treiber kommt dann nicht hinterher und dann steht das Ding. Wobei setSpeed 18 ca 3 Sekunden für eine Umdrehung benötigt. Finde ich jetzt nicht schnell, aber in Anbetracht der abgearbeiten Stepps ggf. schon.
Hallo,
ich versuche das jetzt mal ganz einfach.
der Motor hat ja ein ziemliches Getriebe mit eingebaut. Ich hab mal eben nachgesehen und einen gefunden 1:85,25. oder auch 1:64 Das bedeutet das der eigentliche Motor mit
1/3x60x85,25 =1700U/min dreht.
Bei Schrittmotoren sinkt ab einer bestimmten Frequenz das Drehmoment weil der Strom einfach nicht mehr voll zum fließen kommt, weil die Induktivität der Spulen den Strom langsam ansteigen lässt. ( Verz. höherere Odrnung e-Funktion)
Die Frequenz kann man jetzt auch rechnen.
1/3x2048=682Hz
Das kann man kompensieren in dem man die Spannung anhebt, dann ist sozusagen mehr Druck dahinter und der Strom steigt wieder schneller an. Das geht dann bis 60V hoch. Der Motortreiber arbeitete dann allerdings als Konstantstromquelle und treibt so viel Strom in die Spule wie passend für den Motor (Typenschild) eingestellt wird. Aber auch das hat natürlich seine Grenzen. Schrittmotore sind eigentlich nicht für hohe Drehzahlen gebaut, da sind DC Motoren besser zu geeignet.
Aha Also 1700 UPM des Motors für eine Wellengeschwindigkeit von 3 UPS / 180UPM
Meist findet man diesen Motor aber mit einem ca 1:64 Getriebe.
Mal genauer geschrieben:
Bei Spannungsansteuerung (wie dieser Motor angesteuert wird) steigt der Strom wegen der Induktivität der Wicklungen des Motos nicht momentan sondern etwas langsamer. Dieser Anstieg vermindert den Mittelwert des Stromes durch die Wicklungen. Bei langsamen Drehungen kann er venachlässigt werden ab einer gewissen Schrittgeschwindigkeit ist die Absenkung aber so groß daß das Drehmoment des Motors die Reibung und das Lastmoment nicht mehr überweinden kann uns der Motor brummend stehen bleibt.
Es gint mehrere dieser Grenzfrequenzen:
Ansteuerung mit konstanter Stepgeschwindigkeit vom stand an. Da ist die Grenze viele kleiner als wenn der Motor mit einer Rampe angefahren wird.
/*
Stepper Motor Control - one revolution
This program drives a unipolar or bipolar stepper motor.
The motor is attached to digital pins 8 - 11 of the Arduino.
The motor should revolve one revolution in one direction, then
one revolution in the other direction.
Created 11 Mar. 2007
Modified 30 Nov. 2009
by Tom Igoe
*/
#include <Stepper.h>
const int stepsPerRevolution = 2048; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 12, 25, 14, 27);
void setup() {
// set the speed at 18 rpm:
myStepper.setSpeed(18);
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}
Soviel zum Sketch. Ok Ich lese da raus. Mehr Speed pro Umdrehung gehen dann wohl nur mit mehr Spannung? Vom Prinzip her reicht mit die aktuelle Geschwindigkeit wahrscheinlich auch aus. Ich habe mich nur gewundert, warum das Problem auftritt und woran das liegt. Denn im original Sketch sind stepsPerRevolution mit 200 angegeben und setSpeed(60) rpm. Das passt aber nicht zu meinem Stepper.
Du kannst keinen Hybridmotor mit 200 Schritte pro Umdrehung mit einem kleinen Permanentmagentmotor mit 64 Schritten und einem ca 1:64 Getriebe vergleichen.
Bei Spannungssteurung muß der Motor mit Nennspannung betrieben werden da er bei Stillstand (wenn keine Stromabsenkung durch die Induktivität da ist) der Strom sein wird und darum der Motor thermisch überlastet. Du macht ihn einfach kaputt.
Wenn Du mehr Kraft / Drehmoment bei einer gewissen Drehzahl brauchst dann brauchst Du einen größeren Motor.
Mir ist aufgefallen, sobald der Stepper einmal gelaufen ist bleibt Strom auf dem Stepper. Könnte wegen dem Rastmoment ggf sogar gewollt sein. Jedoch wird der schon ordentlich heiß und braucht nicht unbedingt dauerhaft bestromt zu werden.
Wie kann ich über den Sketch die Spannung ausschalten? Mir fällt sonst höchstens nur ein relais ein... Aber es müsste auch so gehen.
In diesem Thema konnte ich nirgendwo eine Angabe zum verwendeten Treiber finden, denn direkt am ESP32 geht ja wohl nicht.
Bei meinem Treiber geht das, indem ich alle Pins auf denselben Wert setze, weil dann mangels Spannungsunterschieden kein Strom fließt. Allerdings verliert er dann die Position.
Es ist normal Schrittmotore bestromt zu lassen auch wenn er steht.
Du kannst beim Motortreiber die Ausgänge abschalten.
Einfach alle Ausgänge des ULM2003 auf der mitgelieferten Treiberplatine ausschalten (Ausgänge des ESP auf LOW).
Die Motorversorgungsspannung einfach abzuschalten sehe ich als gefährlich an.
Grüße Uwe
Ich kann nicht genau sagen welcher Treiber dabei ist. Dieser Motor wurde mit dem Stepper im Paket verkauft. Aber es scheint der ULM2003 zu sein. Jedenfalls von den Bildern her.