Go Down

Topic: Schrittmotor ausreichend? (Read 3110 times) previous topic - next topic

Hanz123

Sep 12, 2013, 06:59 pm Last Edit: Sep 12, 2013, 07:54 pm by uwefed Reason: 1
Hallo,

ich bin Arduino-Neuling und möchte gerne folgenden Aufbau betreiben. Ein Schrittmotor soll über eine Zahnstange ein Linearführungsschlitten auf einer Linearführung bewegen. Ich habe dann mal an die Linearführung eine Federwaage angehängt und den Motor mit einer Geschwindigkeit X1 laufen lassen. Ab ca. 6N stoppt der Motor und summt nur noch. Meine Frage ist, ob da noch mehr geht? Wenn ich die Geschwindigkeit des Motors erhöhe auf X2, dann stoppt der Motor bereits bei weniger als 6N

Ich habe einen Nema 17 Motor mit 42Ncm Haltemoment 42BYGHM810 Datenblatt: http://www.phidgets.com/documentation/Phidgets/3302_0_Datasheet.pdf

Ich nutze einen Easydriver und ein Arduino. An den Easydriver habe ich ein 24V 2A Netzteil drangehängt. Den Motor steuere ich mit folgenden Code an:

i
Code: [Select]
nt pinDir = 9;
int pinStep = 8;
int pinButton = 1;
int pinButton2 = 2;
int pinButton3 = 3;
int pinButton4 = 4;


void setup()
{
 pinMode(pinDir, OUTPUT);
 pinMode(pinStep, OUTPUT);
 pinMode(pinButton, INPUT);
 pinMode(pinButton2, INPUT);
 pinMode(pinButton3, INPUT);
 pinMode(pinButton4, INPUT);
 digitalWrite(pinDir, LOW);
 digitalWrite(pinStep, LOW);
}

void loop()
{
 while(digitalRead(pinButton2)==HIGH){
   digitalWrite(pinDir, LOW);
   if(digitalRead(pinButton3)==HIGH){
   digitalWrite(pinStep,HIGH);
   delayMicroseconds(90);
   digitalWrite(pinStep, LOW);
   delayMicroseconds(90);}
   else{
      digitalWrite(pinStep,HIGH);
   delayMicroseconds(400);
   digitalWrite(pinStep, LOW);
   delayMicroseconds(400);
 }}
while(digitalRead(pinButton)==HIGH){
   digitalWrite(pinDir, HIGH);
   digitalWrite(pinStep,HIGH);
   delayMicroseconds(260);
   digitalWrite(pinStep, LOW);
   delayMicroseconds(260);
   }
}


Wenn ich button2 gedrückthalte und dann den schalter button 3 umlege, dann soll der Motor mit einer Geschwindigkeit X2 fahren, wenn Button 3 nicht high ist, dann mit Gewschwindigkeit X1. Wenn button gedrückt wird, dann soll er rückwärts drehen...


Wichtig für mich wäre, dass der Motor schon etwas mehr Last ziehen kann und das mit einer gleichmäßigen Geschwindigkeit.
Ist das Netzteil für diesen Motor und den Easydriver richtig gewählt oder wo seht ihr da noch Potential, dass ich mehr als nur 6N schaffe... Der Easydriver läuft im 1/8 Schritt Betrieb. Wenn ich diesen Wert verändere, auf 1/2 Schritt...bringt das was?
Oder ist der Code vll. zu resourcenfressend? Oder geht einfach nicht mehr mit dem Schrittmotor? 6N sind ja gerademal 600g :-/

Für Hilfestellungen und Tipps wäre ich euch sehr dankbar.

uwefed

Der Easydriver ist ein Stromtreiber mit max 600mA. Der gewählte Motor kann 2,4A pro wicklung vertragen.
Ein Motortreiber mit dem A4988 kann 2A pro Wicklung treiben. Ich kenne Keinen Treiber den ich Dir für 2,4A raten könnte.

Um mehr Drehmoment am Motor zu haben:
1) mehr Strom dh anderer Treiber und anderes Netzteil.
2) eine geeignete Anlaufbeschleunigung.
3) ein kleineres Zahnrad an der Zahnstange oder/und ein Getriebe.
4) der Linear-Schlitten muß leichtläufig sein.
5) anderen Motor.

Grüße Uwe

Hanz123

Hallo,

vielen Dank für deine Antwort. Einen neuen Motor wollte ich eigtl nich kaufen, da der ja scheinbar genug Power hat? Oder siehst du eine Möglichkeite mit anderem Motor aber mit gleichem Netzteil und Easydriver mehr Power rauszuholen (ohne am Zahnrad etc. was zu verändern)

das mit dem Pololu Treiber klingt nicht schlecht... hat zumindest mehr als 3mal soviel Strom wie der Easydriver. Was für ein Netzteil würdest du da empfehlen? Laut Datenblatt macht der Pololu 35V max mit. Wieviel Ampere/Volt sollte das Netzteil da haben?

uwefed

Der Motor hat 2,4V nominal dann müßte bereits 12V/4A genügen damit die Stromsteuerung vernünftig funktioniert.
Grüße Uwe

Hanz123

#4
Sep 12, 2013, 09:50 pm Last Edit: Sep 12, 2013, 10:10 pm by Hanz123 Reason: 1
Hallo,

nochmal danke für deine Antwort.

Für mein Verständnis, wieso 12V? reichen nicht auch 6V oder so, wenn der Schrittmotor 2,4V braucht?

Würde dieses Netzteil dafür reichen? http://www.conrad.de/ce/de/product/513824/Manhattan-100854-Notebook-Netzteil-Laptop-Adapter-12V15V16V18V19V20V24V-4-A-70-Watt-Geeignet-fuer-Notebooks-von

Das ist ein Netzteil 12V 4A 70W ...(getaktet?)

Würde beispielsweise auch ein altes PC-Netzteil funktionieren? Das hat ja auch 12V Ausgänge und die liefern glaub ich 10A

uwefed

Damit die Micostepping-Ansteuerung funktioniert muß der Treiberbaustein den Strom begrenzen und nicht die Induktivität des Motors. Wenn Du dem Motor eine hohe Spannung gibst ist der Einfluß der Induktivität auf den Stromanstieg geringer und somit kann der Treiber besser arbeiten.

ATX Netzteile sind nicht geeignet da sie eine Grundlast auf den 5V voraussetzen.
Grüße Uwe

Hanz123

Nochmals danke für deine Antwort.

Ein paar Fragen hätte ich da noch. Du sagtest, ein ATX Netzteil brauch 5V Grundlast. Kann man da nicht dort das Arduino anschließen, sodass die Grundlast erreicht ist?

Weiterhin, meine Frage ob das Netzteil von dem Link ausreicht. Was wäre denn besser 12V oder 24V....was passiert mit der übrigen Spannung, wenn man das 24V NT nehmen würde. Würde die am Pololu-Treiber einfach verbraten werden...

Viele Grüße
Hanz

uwefed

Das PC-Netzteil braucht ca 1A Grundlast. Ein Arduino verbraucht nicht soviel Strom. Für erste Test kannst Du das PC-Netzteil nehmen und hängst einen alte Festplatte dran.
Das andere Netzteil geht gut.

Der A4988 Treiber auf den Schrittmototreiber verbrät nicht die Differenz (könnte ein 5x5 mm großes IC gar nicht). Es schaltet die Versorgungsspannung auf die Motorwicklung und wenn der Nennstrom erreicht wird schaltet es die Spannung ab um sie kurz darauf wieder anzuschalten usw.
http://www.pololu.com/file/download/a4988_DMOS_microstepping_driver_with_translator.pdf?file_id=0J450 Seite 11

Grüße Uwe

Hanz123

Hallo,

danke für deine Hilfe :-)

ich möchte mir jetzt ein neuen Schrittmotortreiber bestellen. Ich bin dabei auf folgende beide gestoßen:

das eine ist eine stepper motor driver carrier --> was bedeutet das carrier? Brauch man dazu noch irgendwas? Oder kann ich dadurch komplett meinen Easydriver ersetzen. http://www.exp-tech.de/Shields/A4988-Stepper-Motor-Driver-Carrier-Black-Edition.html

Ein anderer ist der Big Easy Driver. Der soll wohl auch 2A max bringen: http://www.exp-tech.de/Shields/Motorsteuerung/Schrittmotor/Big-Easy-Driver-ROB-11699.html

welchen würdet ihr mir empfehlen?

Für Antworten wäre ich euch sehr dankbar :-)

Go Up