esp32 Problem mit Schrittmotor 28byj-48

Moin,
ich habe den Schrittmotor 28byj-48 über ULN2003An an meinen esp32 angeschlossen.
Pin 16 an IN1, 17 an IN2, 18 an IN3 und 19 an IN4.
Ich benutze die Arduino Stepper Library.
Das Problem ist, dass wenn Motor.step() ausgeführt wurde, die LED von A und B danach trotzdem weiter leuchtet, sprich Pin 16 und 17 sind weiterhin HIGH, was zur Folge hat das der Motor ziemlich heiß wird.
Nur mit digitalWrite(16, LOW) und digitalWrite(17, LOW) nach der Methode Motor.step() gehen alle LEDs am Motor Treiber aus und der Motor wird nicht heiß.

Das ist das Programm:

#include <Stepper.h>
#define Schalter 4

const int stepsPerRevolution = 32;  
const int RevolutionsPerMinute = 1000;        

Stepper myStepper(stepsPerRevolution, 16, 18, 17, 19);

void setup() {
  myStepper.setSpeed(RevolutionsPerMinute);
 pinMode(Schalter, INPUT_PULLUP);
  Serial.begin(115200);
}

void loop() {  
  
  Serial.println("Ueberpruefung");
  if(digitalRead(Schalter)==LOW)
  {
  myStepper.step(500);
  }
  delay(500);

  
}

Wenn ich also bei meinem Programm einen Taster drücke, dreht sich der Motor, und danach bleibt PIN 16 und 17 auf HIGH. Wie kann ich das Problem lösen?
Schonmal danke für jede Antwort.

silas13:
Wenn ich also bei meinem Programm einen Taster drücke, dreht sich der Motor, und danach bleibt PIN 16 und 17 auf HIGH. Wie kann ich das Problem lösen?

Das Problem ist keins, da ein Schrittmotor auch im Stillstand Strom benötigt, um ein Haltemoment zu erzeugen. Der von Dir verwendete Motortyp hat allerdings ein fast selbstsperrendes Getriebe, weshalb das Haltemoment nicht benötigt wird. Leider bietet die von Dir verwendete Bibliothek keine Methode, um den Strom im Ruhezustand abzuschalten. Daher kannst Du entweder

  • eine andere Bibliothek verwenden oder
  • die 5 V des Motors mit einem Relais unterbrechen.

Siehe auch Wemos D1 Mini – Schrittmotor 28BYJ-48 ruckelt, bleibt stehen

const int stepsPerRevolution = 32;

Meiner hat 4096!

Du hast die Lösung doch schon gefunden. An sich ist es bei einem Stepper normal, dass der im Stillstand warm/heiß wird, da die Spulen - bzw. ein Teil davon - immer unter Strom stehen.
Wenn Du das nicht willst, musst Du sie im Stillstand eben selbst abschalten. Allerdings hat der Motor dann auch kein Haltemoment mehr und kann leicht verdreht werden. Was bei dem von dir verwendeten Motor aufgrund des Getriebes allerdings etwas schwerer geht ( selbsthemmend ist es aber nicht ).

Ah ok danke dann weiß ich Bescheid.
Da der Motor ja einen ganzen Tag über ein Gewicht halten soll, und dabei wenig Strom verbauchen soll, schalte ich dann lieber die Pins auf LOW.
Zumal der Motor ja auch ziemlich heiß wird und nach einer halben minute sich schon nicht mehr richtig drehen konnte.

Zumal der Motor ja auch ziemlich heiß wird und nach einer halben minute sich schon nicht mehr richtig drehen konnte.

Was ist heiß?

Da der Motor ja einen ganzen Tag über ein Gewicht halten soll, und dabei wenig Strom verbauchen soll,

Sicher, dass du den richtigen Motortype gewählt hast?

Ist es doch gerade das kräftige halten im Schritt, und der Verzicht auf Drehencoder, bei exakter Positionierung, welches die größten Vorteile des Schrittmotors sind.

Diese wirfst du weg, wenn du den Motor stromfrei machst.