Go Down

Topic: Stepper motor 103H548-0440 mit DRV8825 und Arduino ansteuern (Read 128 times) previous topic - next topic

Verena___

Hallo zusammen,

ich verwende derzeit folgenden Steppermotor:
http://www.farnell.com/datasheets/28108.pdf?_ga=2.5152563.1858074395.1569207185-851021850.1566885068

Diesen steuere ich mit dem DRV8825 an. Folgende Belegung:

VMOT: Netzteil (0-30V / 3A) Einstellung: 8.2V / 1.2A
GND: GND Power supply
B2:red
B1:yellow
A1:blue
A2:orange
FLT: n.c
GND: GND Arduino UNO


EN:n.c
M0:n.c
M1:n.c
M2:n.c
RST:5V Arduino
SLP:5V Arduino
STEP:Pin 3 Arduino
DIR: Pin 2 Arduino

Der Strom wurde mit dem Poti begrenzt. (Full step mode: 140% = 1.68A --> Vref=1.68/2)
Die Laute die der Motor von sich gibt, stimmen mit dem Program sozusagen ueberein, allerdings bewegt sich der Motor nicht - er vibriert nur.

Weis leider nicht mehr weiter - waer super, wenn mir jemand helfen koennte!

Vielen Dank im Voraus!
Verena

Habe es unter Anderem mit folgenden Code versucht:

Code: [Select]
// Include the AccelStepper library:
#include <AccelStepper.h>

// Define stepper motor connections and motor interface type.
// Motor interface type must be set to 1 when using a driver: Stepper driver, 2 driver pins required
#define dirPin 2
#define stepPin 3
#define motorInterfaceType 1

// Create a new instance of the AccelStepper class:
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);

void setup() {
  // Set the maximum speed in steps per second:
  stepper.setMaxSpeed(1000);
}

void loop() {
  // Set the speed in steps per second:
  stepper.setSpeed(200);
  // Step the motor with a constant speed as set by setSpeed():
  stepper.runSpeed();
}

Doc_Arduino

Hallo,

a) auf deinen Rechner haben wir keinen Zugriff, wenn wir es hätten, würde ich mir ernsthafte Sorgen machen

b)  Was kam hier raus?  https://forum.arduino.cc/index.php?topic=633352.0

c) so wird das nichts  https://forum.arduino.cc/index.php?topic=637294.0
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Verena___

Hallo,

a) ohje, das war der falsche Link - muesste jetzt ausgebessert sein. Danke fuer den Hinweis.
b) Hab mich jetzt, wie ersichtlich fuer den DRV8825 entschieden und auch noch die TMC2100 bestellt (aber nocht nicht ausprobiert - will ich morgen machen)
c) Tut mir leid. Wusste nicht, dass das verbunden ist - kann ich natuerlich wieder loeschen!

Also: Mittlerweile hab ich ihn zum Laufen bekommen - mit folgendem Code:

Code: [Select]

// Define stepper motor connections and steps per revolution
#define dirPin 2
#define stepPin 3
#define stepsPerRevolution 200

//all the motor control pins are declared as digital OUTPUT with the function pinMode()
// put setup code here, to run once
void setup() {
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);  
}

// put main code here, to run repeatedly
void loop() {

  //set the spinning direction clockwise
  digitalWrite(dirPin, HIGH);

  // spin the stepper motor 5 revolutions fast
  for (int i=0; i<20*stepsPerRevolution; i++){
    //these four lines result in 1 step
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
  }

  delay(500);
  
  //set the spinning direction counterclockwise
  digitalWrite(dirPin, LOW);

  // spin the stepper motor 5 revolutions fast
  for (int i=0; i<20*stepsPerRevolution; i++){
    //these four lines result in 1 step
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
  }

  delay(500);
}


Allerdings funktioniert das nur, wenn ich ein Delay von 1000 einstelle. Wenn ich die Frequenz erhoehe (z.B delayMicroseconds(500)) laeuft er zwar noch, allerdings sehr unruhig.
Bei niedriger Frequeny (z.B delayMicroseconds(1500)) dreht er gar nicht mehr…

Gibts dafuer eine Erklaerung?:)



Doc_Arduino

Hallo,

am Stepper ist noch keine Last dran? Kann im Leerlauf drehen?
Richtig angeschlossen ist er auch?
Die Masse (GND) ist überall mit allen verbunden?
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Verena___

Nein, da ist aktuell noch keine Last dran.
Die Masse ist ueberall verbunden und meiner Meinung nach muesste er auch richtig angeschlossen sein.

Rentner

Hallo,

versuche mal den Enable Eingang auf 0V zu legen , damit der Pegel nicht in der Luft hängt.

Heinz

MicroBahner

VMOT: Netzteil (0-30V / 3A) Einstellung: 8.2V / 1.2A
Was ist das denn für ein Netzteil? Ein Labornetzteil?
Das Netzteil sollte keine eingestellte Strombegrenzung haben. Die Stromregelung macht ja schon der DRV8825. Wenn Du das jetzt am Netzteil auch - und sogar kleiner - einstellst arbeiten die gegeneinander. Das kann nicht gut gehen. Und die Spannung kannst Du auch höher drehen. 8,2V ist schon sehr knapp. Der DRV8825 kann bis zu 45V. Da kannst Du dein Netzteil voll aufdrehen.

Den enable kannst Du offen lassen. Der hat einen internen pulldown ( LOW=Enable ).

Edit: Welche Motortype hast Du denn genau. Im Datenblatt sind ja verschiedene Typen mit unterschiedlcihen elektrischen Eigenschaften angegeben. Wenn Du die unipolare Variante bipolar betriebst, indem Du die Mittelanzapfung offen lässt, braucht der auch mehr Spannung. Denn dann betriebst Du 2 Wicklungen in Reihe, die entsprechend der Daten eigentlich einzeln betrieben werden.
Nochmal Edit: hab' gerade gesehen, dass die genaue Type ja im Titel steht...
D.h. dass pro Spule eine Nennspannung von 3,6V angegeben ist. In Reihenschaltung also bereits 7,2V. Bei 8,2V am Netzteil ist da nix mehr mit Stromsteuerung. Wobei ... wenn Du jetzt beide Spulenhälften gleichzeitig mit Nennstrom betreibst, steigt auch die Verlustleistung stark an. Wie warm wird der Stepper denn?
Gruß, Franz-Peter

Verena___

Hallo MicroBahner,

ich hab mich gestern noch eine Weile damit beschaeftigt und bin dann auch darauf gekommen, dass 8.2V natuerlich zu wenig sind. Nachdem ich jetzt alles mit 12V betreibe, dreht sich der Motor einwandfrei:)

Der Motor wird leider ziemlich warm, das stimmt ... Sollte bei mir normal keine Rolle spielen, da ich Ihn innerhalb einer Stunde wahrscheinlich immer nur fuer ein paar Minuten benoetige.

Ist jetzt vielleicht noch eine bloede Frage aber ich wuerd gern noch verstehen, warum der Motor so warm wird - kannst du mir das vielleicht erklaeren?


Vielen Dank fuer deine Hilfe!
Verena


uwefed

Da der Motor ein Unipolarmotor ist (er hat 6 Anschlüsse) weiß ich nicht wie Du ihn angeschlossen hast.

Schrittmotore werden immer sehr heiß.
Sie werden heiß weil immer Strom durch den Motor fließt, auch wenn der Motor steht.
Für den  103H548-0440 bei 1,2A und 3,6V sind das 1,2 * 3,6V *SQR(2) *2 = ca 12,2W
Die SQR(2) kommt von der Ansteuerung des Motors durch den Treiber. Die angegebene Nennspannung ist für die Unipolarwicklung.

Uwe

Go Up