SM 28BYJ anschließen an Adafruit Motor Shield

Hallo zusammen,

habe einen Arduino Uno plus ein Adafruit Motorshield V2 welches ich mit einem Schrittmotor vom Typ 28BYJ verbinden möchte....

habe denke ich alle Kabel richtig mit einader verbunden bzw. in die richtigen Buchsen eingeklemmt am Shield.

Jedoch dreht sich nichts wenn ich es mit dem Test Sketch des Shields versuche...

Hat noch jmd außer mir solch ein Problem bzw. hat jmd einen Vorschlag parat für das ganze?

Wäre dankbar für jede Hilfe :slight_smile:

Gruß Tobias

TW1993:
habe denke ich alle Kabel richtig mit einader verbunden ...

Wie denn? Hast Du einen Treiber mit ULN2003 dabei?

Du hast einen unipolaren Motor. Also muss die Mittelanzapfung auf Masse

Hab ein Adafruit Shield V2.3

hab es so angeschlossen wie gesagt hattest jetzt.

hab auch mal das Beispiel Sketch aus der dazugehörigen library benutzt (musste paar Dinge anpassen, da die einen NEMA14 benutzen und nicht den selbigen wie ich)

wenn ich das sketch starte fängt der Motor mir an zu pfeifen und das nicht auf schöne Art und Weise ^^

muss ich noch was am Sketch ändern? Vllt die Frequenz?

#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_MS_PWMServoDriver.h"

// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield(); 
// Or, create it with a different I2C address (say for stacking)
// Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61); 

// Connect a stepper motor with 64 steps per revolution
// to motor port #1 (M1 and M2)
Adafruit_StepperMotor *myMotor = AFMS.getStepper(64, 1);


void setup() {
  Serial.begin(9600);           // Verbindung zwischen Programm und Arduino wird hergestellt
  Serial.println("Stepper test!");

                                //Verbindung zwischen Arduino und Shield
                        

  AFMS.begin();  // create with the default frequency 1.6KHz
  //AFMS.begin(1000);  // OR with a different frequency, say 1KHz
  
  myMotor->setSpeed(5);  // 10 rpm   
}

void loop() {
  
  //Motor wird zuerst 10 Schritte vorwärts und dann 10 Schritte rückwärts gedreht
  Serial.println("Single coil steps");
  myMotor->step(10, FORWARD, SINGLE); //nur eine Spule wird benutzt 
  myMotor->step(10 BACKWARD, SINGLE); 

  Serial.println("Double coil steps");
  myMotor->step(10, FORWARD, DOUBLE); //beide Spulen werden verwendet
  myMotor->step(10, BACKWARD, DOUBLE);
  
  Serial.println("Interleave coil steps");
  myMotor->step(10, FORWARD, INTERLEAVE); //wechseln zwischen einer und beiden Spulen, die Auflösung wird verdoppelt
  myMotor->step(10, BACKWARD, INTERLEAVE); 
  
  Serial.println("Microstep steps");
  myMotor->step(5, FORWARD, MICROSTEP); //PWM wird benutzt 
  myMotor->step(5, BACKWARD, MICROSTEP);
}

Versuche mal AFMS.getStepper(4096, 1), da der Motor ein Getriebe eingebaut hat.

Hi

Der Motor ist nicht sonderlich fix und auch das Getriebe-Verhältnis ist, gelinde gesagt, unschön.
Das Übersetzungsverhältnis ist 1:63,6839506173
Herleitung sehr gut in diesem Video (neben den Erklärungen, warum das Ding überhaupt läuft):
28BYJ auf YouTube
Um diese Motoren z.B. an einem CNC-Shield zu betreiben, muß der Mittel-Draht weg und unter der blauen Abdeckung die Verbindung zwischen beiden Spulen durchtrennt werden - dann hast Du einen Bi-polaren Mini-Stepper - das bescheidene Übersetzungsverhältnis bleibt davon natürlich unberührt.

MfG

postmaster-ino:
Um diese Motoren z.B. an einem CNC-Shield zu betreiben, muß der Mittel-Draht weg ...

Mich stört das Wort "muß", denn Adafruit schreibt (Quelle):

For unipolar motors: to connect up the stepper, first figure out which pins connected to which coil, and which pins are the center taps. If its a 5-wire motor then there will be 1 that is the center tap for both coils. ... The center taps should both be connected together to the GND terminal on the motor shield output block. then coil 1 should connect to one motor port (say M1 or M3) and coil 2 should connect to the other motor port (M2 or M4).

Der unipolare Motor sollte sich also auch ohne Umbau am Shield betreiben lassen, wobei es nur einen gemeinsamen Draht an GND anzuschließen gibt.

@TW1993
Mach mal ein Foto wie Du den Motor am Shield angeschlossen hast.
Grüße Uwe

Hi

agmue:
Der unipolare Motor sollte sich also auch ohne Umbau am Shield betreiben lassen, wobei es nur einen gemeinsamen Draht an GND anzuschließen gibt.

Geil - damit kann ich leben.
Meine Funde in den Tiefen des WWW hatten durch die Bank durch davor gewarnt, diesen Motor am CNC-Shield anzuschließen, da der gemeinsame Mittelanschluß bzw. schon nur die Verbindung der beiden Spulen einen Defekt nach sich ziehen würde.

Dann entschuldige ich mich für das dumme nachplappern nicht selbst gegengeprüfter Aussagen!
Wie gesagt, kommt mir sogar richtig entgegen, habe nämlich erst einen der Motoren auf bipolar 'umgebaut' - Der tut so aber erwartungsgemäß auch am CNC-Shield.
Dann werde ich Das doch Mal die Tage probieren müssen.

Wegen 'so was' mag ich Foren (vll. würde Es ja auch helfen, der englischen Sprache etwas mehr Herr zu sein ... wurde allerdings 6 Jahre mehr oder minder erfolglos bereits probiert :wink: )

MfG

postmaster-ino:
... nachplappern nicht selbst gegengeprüfter Aussagen!

An meiner vorsichtigen Formulierung kannst Du erkennen, daß ich kein solches CNC-Shield besitze und daher nur aus den normalerweise recht zuverlässigen Dokus von ladyada zitieren kann. Ich verwende diesen Motor mit ULN2003 und AccelStepper.

Eine praktische Bestätigung der Theorie durch Dich wäre mir daher willkommen :slight_smile: