NEMA 17 Schrittmotor vibriert stark

Hallo,

folgendes Problem.

Der Nema 17 Schrittmotor dreht sich zwar wie gewollt, jedoch vibriert er dabei sehr stark. Man kann den Motor nicht auf eine Fläche legen, ohne das es sehr laute Geräusche macht.

#define EN 8

// Pins für den Motortreiber Step pin und Direction pin
#define STEP_PIN 2
#define X_DIR 5

// Pins für Schritteinstellung (Vollschritt / Viertelschritt usw.)
const int MS1_PIN = 8; 
const int MS2_PIN = 9;
const int MS3_PIN = 10;

// Schrittmotor A4988 Parameter
#define STEPS_PER_REVOLUTION 200
#define SPEED 1 //Umdrehungen pro Sekunde

void step(boolean dir, byte dirPin, byte stepperPin)
{
  digitalWrite(dirPin, dir);
  digitalWrite(stepperPin, HIGH);
  delayMicroseconds(250); // Haltezeit für den Schritt
  digitalWrite(stepperPin, LOW);
  delayMicroseconds(250); // Haltezeit zwischen den Schritten
}

void setup() 
{
  // Setzen der Pins als Ausgänge
  pinMode(STEP_PIN, OUTPUT);
  pinMode(X_DIR, OUTPUT);
  pinMode(EN, OUTPUT);
  digitalWrite(EN, LOW);

  pinMode(MS1_PIN, OUTPUT);
  pinMode(MS2_PIN, OUTPUT);
  pinMode(MS3_PIN, OUTPUT);

  digitalWrite(MS1_PIN, LOW);
  digitalWrite(MS2_PIN, HIGH);
  digitalWrite(MS3_PIN, LOW);
}

void loop() 
{  
  for (int i = 0; i < STEPS_PER_REVOLUTION * 1; i++) 
  {
   step(false, X_DIR, STEP_PIN);
   delay(500 / (STEPS_PER_REVOLUTION * SPEED)); // Berechnung der Verzögerung basierend auf der gewünschten Geschwindigkeit
  }
} 

Schaut euch gerne meinen Code an.

Vielen Dank

Im Code zu sehen ist, wie ich vergeblich versucht habe, von Vollschritt auf Mikroschritt zu wechseln.

Ist normal, wenn Du den Motor Im Vollschritt / im Quarter Step betreibst.
Vieleicht ist die Motrversorgungsspannung zu niedrig und darum funktioniert das Microstepping nicht richtig.

Wenn Du einen Silent Stick mit einem TMC2208 /TMC2209 oder anderen TMC Treiber nimmst, wird der Motor wesentlich leiser.

Grüße Uwe

Die Motore liegen zwar auf einer gitarre:

oder auf einer alten Lautsprecherbox:

Danke für die Antwort, Wie schaffe ich es denn nur mit dem Programmcode, MS1, MS2 und MS3 auf HIgh zu setzen?

Ich weiß gar nicht auf welche Pin ich MS1, MS2 und MS3 Konfigurieren soll, weil auf schaltplänen, Datenblättern nie die Pins angegeben sind.

Eigentlich ist es nicht notwendig im Betrieb die Einstellung der Microschritte zu ändern. Darum werden diese normalerweise per Jumper oder dip-Schalter auf der Trägerplatine (Breakout) eingestellt.

images

oder.

Grüße Uwe

Das bild nach dem oder, wie genau haben die da m2 auf High geschaltet?

Gibt es echt keine möglichkeit, dies im Programmcode zu definieren?

Hier.
Einfach nach Belieben nach dem Komma HIGH oder LOW schreiben

Sicher gibts die!
Wenn du auch die Kabel dahin ziehst!
Und dann, kannst du dir deinen eigenen Schaltplan malen.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.