Schrittmotorwechsel

Umstieg von Schrittmotor 28BYJ-48 (+5V) auf 55SI-25D-AWC (12V) mit MobaTools.Librairy.

Ich benutze das gleiche Shield.

Was muss ich in der Software ändern?

Wenn Du ihn nach dieser Anleitung als unipolaren Motor anschließt, solltest Du in der Software gar nichts ändern müssen.

P.S. Du hättest keinen 2. Thread aufmachen müssen, @UKHeliBob hat den ursprünglichen Beitrag schon nach 'deutsch' verschoben. Einer von beiden sollte geschlossen werden.

Hab den zweiten Tread geschlossen.

Beim 55SI-25D-AWC einfach die beiden weißen Kabel zusammenschließen (entspricht dem roten Kabel des 28BYJ-48) und dann gleich anschließen. Statt 5V mit 12V versorgen .

Den 28BYJ-48 gibt es auch als 12V Version.
grafik
oder

Grüße Uwe

Danke Uwe,

Der Schrittmotor ist so angeschlossen wie Du geschrieben hast. Soweit dreht er sich,
aber ruckelt stark und nur gegen den Uhrzeigersinn. Ich habe es nicht geschafft ihn im Uhrzeigersinn drehen zu lassen. Woran kann es wohl liegen?

Ist eine Spule unterbrochen oder nicht richtig angeschlossen?
Miß mal den Widerstand zwischen gemeinsamen Pol und den einzelnen 4 Anschlüssen (Treiber ohne Spannungsversorgung)

Grüße Uwe

Das ist meisten der Grund für diese Effekte. Da muss dann oft ein Anschlusspaar vertauscht werden. Kann man in der Software oder der HW machen.

ich habe den Motor durchgemessen, alle Anschlüsse geprüft und keinen Fehler festgestellt. Ich habe die Librairy auf den neusten Stand gebracht.

Hier ist meine Software:

#include <MobaTools.h>
int stepsPerRevolution = 2038;
MoToStepper Stepper1(stepsPerRevolution);          // HALFSTEP ist default
//-----------------------------------------------
void setup() {
  Serial.begin(9600);
  Serial.println("Begin");
  Stepper1.attach(3,4,5,6); // Anschluß an digitalen Ausgängen; Treiber IN1,IN2,IN3,IN4
  Stepper1.setSpeed(20);    
 }
//-----------------------------------------------
void loop() {
  int zahl;
  if(Serial.available()>0){
    zahl = Serial.read();
    Serial.println(zahl);
    switch(zahl){
      case 'a': // Stepper1 360° rechts
        Stepper1.doSteps((stepsPerRevolution));
        break;
      case 'b':// Stepper1 360° links
        Stepper1.doSteps(-stepsPerRevolution);
        break;
    }
  }
}

Was soll uns dieser Beitrag sagen? Funktioniert es oder nicht?

Gruß Tommy

Der Fehler bleibt: der Stepper dreht sich nur gegen Uhrzeigersinn.

Dann versuch mal 2 Anschlüsse zu wechseln.
Um da nicht Kabel aus und einlöten kannst Du auch die Pinnumern in

Stepper1.attach(3,4,5,6);

vertauschen.

Welche ? ausprobieren.
Mehrmals probieren.

Grüße Uwe

Ich habe alle 24 Möglichkeiten ausgetestet.
Es ruckelt nicht mehr bei 8 dieser Einstellungen.

Bei einer (Stepper1.attach(6,4,3,5)) funktioniert es ab und zu wie erwartet, erst vorwärts, Pause, rückwärts, Pause.
Aber meist falsch (vorwärts, vorwärts oder rückwärts rückwärts oder rückwärts vorwärts.

Kann es sein dass die letzte Position ausschlaggebend ist...?

Nein.

und die anderen 7?

Es müßte immer richtig funktionieren., nicht nur ab und zu.

Grüße Uwe

die anderen 7 statt vorwärts und dann rückwärts, zweimal vorwärts.

Natürlich erwarte ich dass es immer gleich funktioniert, leider ist es noch nicht der Fall.

Um bequemer testen zu können, habe ich die software so verändert:
sie arbeitet genauso unzuverlässig: kein Verlass auf die Drehrichtung, Mal so mal so...!

void loop() {
int zahl;
if(Serial.available()>0){
zahl = Serial.read();
Serial.println(zahl);
switch(zahl){
case 'a': // Stepper1 360° rechts
Stepper1.rotate(1);//rückwärts bis stop
break;
case 'b':// Stepper1 360° links
Stepper1.rotate(-1);//vorwärts bis stop
break;
case 'c':// Stop
Stepper1.stop();
break;
}
}
}

Stell mall alles hier, erstmal Strg+T in der IDE drücken danach gehe auf Bearbeiten --> Für Forum kopieren und hier mit Strg +C einfügen

Hast Du ein OHMMeter?
Nicht das sich irgendein Spassvogel mal nicht an den Farbcode gehalten hat.
@MicroBahner hat Dir die Vorlage doch schon geliefert.
Da ist ein Kurzsketch bei, incl. bebilderter Belegung - wenn denn die Messwerte stimmen....

Ich habe den Motor und die Verbindungen mit dem Ohmmeter gemessen 36 Ohm füe jede Spulenhälfte.

#include <MobaTools.h>
int stepsPerRevolution = 400;
MoToStepper Stepper1(stepsPerRevolution);          // HALFSTEP ist default
//-----------------------------------------------
void setup() {
  Serial.begin(9600);
  Serial.println("Begin");
  Stepper1.setSpeed(20);
  Stepper1.attach(6, 4, 3, 5);
}
//-----------------------------------------------
void loop() {
  int zahl;
  if (Serial.available() > 0) {
    zahl = Serial.read();
    Serial.println(zahl);
    switch (zahl) {
      case 'a':
        Stepper1.rotate(1);//rückwärts bis stop
        break;
      case 'b':
        Stepper1.rotate(-1);//vorwärts bis stop
        break;
      case 'c':// Stop
        Stepper1.stop();
        break;
    }
  }
}

Anscheinend findet sich keine Lösung, aber da mein Projekt weiterlaufen soll, hatte ich die Idee mit einem anderen Motor zu probieren (obwohl ich nicht der Überzeugung bin dass es nicht am Motor liegt). Aber welcher Schrittmotor, der selbst nicht mehr als 250gr wiegt und vom Drehmoment her ein Gewicht von 300gr auf ca. 50cm hochzuziehen, und das innerhalb von max. 2 Minuten. Es ist ein Fischertechnik Projekt.
Hättest Du vielleicht eine Idee welcher Schrittmotor, evtl. über Amazon bestellbar, geeignet wäre?
LG,
Yannick.

Was mir jetzt einfällt:
Mit welcher Schrittgeschwindigkeit steuerst Du den Motor denn an? Sehr langsam oder ordentlich schnell.
Grüße Uwe

Hier ist die Geschwindigkeit:

Stepper1.setSpeed(20);

LG,
Yannick