Hilfe beim Accelstepper Sketch

Hey Leute,

auch wenn ich mich jetzt wahrscheinlich palmiere. Kann mir jemand kurz beim sketch helfen?
Ich würde gerne mit der Accelstepper lib. Meine Schrittmotor ansteuern ich bekomm es aber nicht hin.
Ich würde gerne folgendes einstellen ( 1 Umdrehung= 200 Stepps)

  1. Die Geschwindigkeit in Umdrehung pro min
  2. Die Anzahl der schritte ( die Anzahl der Umdrehungen)
  3. Und wenn es nicht zu viel aufwand ist ein Taster der alles aktiviert

PS: ich hab schon mit dem b.s.p. ConstantSpeed.pde rumgespielt der Motor dreht aber ich hab keine ahung wie es weiter geht

Schon mal vielen Herzlich dank Johannes

Versuche mal, das Beispiel Random zum Laufen zu bringen und zeige dann bitte das Ergebnis hier.

agmue:
Versuche mal, das Beispiel Random zum Laufen zu bringen und zeige dann bitte das Ergebnis hier.

Ich hab es jetzt ausprobiert er macht ein paar schritte und ändert 2 mal die Geschwindigkeit hat aber überhaupt keine Kraft.

Was sagt das aus? Der Motor funktioniert ja ich bin nur zu blöd den Sketch zu schreiben

JOHA2:
Was sagt das aus?

Da gibt es mehre Möglichkeiten:

Du hast falsche Erwartungen oder Dich beim Berechnen des Drehmoments vertan; der Motor liefert aufgrund seiner Spezifikation nicht das notwendige Drehmoment; die Steuerelektronik ist ungeeignet/nicht optimal für den Motor; die Stromversorgung liefert nicht genügend Spannung/Strom.

Der Sketch kann das Drehmoment nicht direkt beeinflussen. Wenn die Testprogramme auch nach Modifikation von Geschwindigkeit und Beschleunigung nicht zu zufriedenstellenden Ergebnissen führen, ist ein Sketch, der bestimmte Dinge tut, irrelevant.

Sind wir beim Thema Drehmoment? Dann wird nach dem notwendigen Drehmoment und dessen Ermittlung, dem verwendetem Motor, der Steuerelektronik und der Stromversorgung jeweils mit Bezugslink und Link zum Datenblatt gefragt werden.

Ein Testsketch mit Taster, so wie er meinen Schrittmotor (wegen Getriebe 4096 Schritte pro Umdrehung) bewegt:

#include <AccelStepper.h>
AccelStepper stepper; // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5
const byte tasterPin = 8;

void setup()
{
  stepper.setMaxSpeed(1000);
  stepper.setAcceleration(1000);
  pinMode(tasterPin, INPUT_PULLUP);
}

void loop()
{
  if (stepper.distanceToGo() == 0)
  {
    stepper.disableOutputs ();
    if (digitalRead(tasterPin))
    {
      stepper.move(4000);
    }
  } else {
    stepper.run();
  }
}

Hallo,

Wie schaut Dein Aufbau aus? Ich weiß eben nicht wie 'fit' du bist?
Es könnte auch an der Stromversorgung liegen? (edit: Wurde schon geschrieben)

Welchen Motor verwendest Du? (Bitte nicht nur NEMA17 schreiben). Welchen Motot Treiber (H-Brücke)?

lg dony

Motor, Treiber und Treibermodi, Stromversorgung sind die Minimumdaten um Dir helfen zu können.

Zu den Daten:
Schrittmotor ein Nema 23 24 Volt 2,5 A
Treiber ein TB6600 Einstellung 200 Schritte für eine Umdrehung und auf 2,2 A
Netzteil 12V 15 A

wenn ich das Beispiel ConstantSpeed nehme hat er den Drehmoment den ich brauche
https://pastebin.com/f6mutQxY

kann mir vieleicht jemand den Sketch schreiben und dahinter in // wofür der befehl gut ist vieleicht verstehe ich das denn.

schon mal vielen Dank

Die Wahrscheinlichkeit, dass Dir jemand Deinen Sketch schreibt (und zusätzlich noch jede Zeile erklärt) halte ich für extrem unwahrscheinlich.

Da wirst Du schon selbst die Grundlagen lernen müssen. Bei der Fehlersuche in Deinem Sketch sind wir gern behilflich.

Das Motto des Forums lautet: "Hilfe zur Selbsthilfe"

Gruß Tommy

JOHA2:
Zu den Daten:
Schrittmotor ein Nema 23 24 Volt 2,5 A
Treiber ein TB6600 Einstellung 200 Schritte für eine Umdrehung und auf 2,2 A
Netzteil 12V 15 A

TB6600 ist eine Stromsteuerung, bei der die Versorgungsspannung ein Mehrfaches der Motornennspannung (24V) sein sollte. Ein Netzteil 40V 2,5A wäre daher besser.

JOHA2:
kann mir vieleicht jemand den Sketch schreiben und dahinter in // wofür der befehl gut ist vieleicht verstehe ich das denn.

Funktioniert der Sketch in #3, angepaßt auf Deinen Motor?

Hi

Wenn der Motor nominal 2,5A bei 24V nimmt (immerhin 60W !!), wird Dieser bei 12V (halbe Spannung) auch nur den halben Strom nehmen - ergibt 1/4tel der Leistung.

Kann der TB6600 die 2,5A? (Jupp, ich werde gleich selber nach einem Datenblatt suchen)

Nema 23 sagt zu dem Motor ungefähr so viel wie 'Fiat' zum Thema 'welches Auto fährst Du denn?)
Nema 23 ist NUR das Lochbild, womit der Motor befestigt wird (indirekt natürlich auch die Größe) - durch Spannung und Strom wird's aber schon deutlich klarer.

Wenn Du noch weitere Stepper zukünftig befeuern willst: Nimm Welche mit möglichst geringer Spannung, dafür mit hohem Strom.
Der Strom wird im Treiber eingestellt (OHNE den Stepper - Der raucht nämlich ab, wenn zu viel Strom kommt).
Der kümmert sich dann auch darum, daß der Strom 'eingebremst' wird, deshalb sind hier (wesentlich) höhere Spannungen als die Motorspannung machbar.
Je höher die versorgende Spannung ist, desto schneller kann der Strom auf das Maximum ansteigen - der Motor ist (schneller) kräftiger und kann deshalb auch bei kürzer werdenden Impulsen 'kraftvoll zubeißen'.

So, dann lass Uns schauen, daß wir den Motor das Laufen beibringen.

Hätte ja vermutet, daß Du zwei der Drähte vertauscht hast - dann dürfte aber keines der Beispiele sauber laufen.

Woher weist Du, welche Drähte zu welcher Wicklung gehören? (Datenblatt vorhanden?)

So, genug erst Mal
MfG

JOHA2:
kann mir vieleicht jemand den Sketch schreiben und dahinter in // wofür der befehl gut ist vieleicht verstehe ich das denn.

Natürlich, ich fang sofort an, willst du vielleicht noch ne Fritzing Zeichnung und/oder einen Schaltplan? Das ganze macht dann xxx Euros. :smiling_imp:

Ich hab hier für einen 'Newbie' mal nen Code kommentiert... das mach ich sicher nicht mehr so schnell, aber vielleicht kann wer anderer was damit anfangen. Nichts für ungut. :wink:

lg dony

Zu erst vielen Dank für die Zahlreichen Kommentare.

Ja das Datenblatt ich vorhanden. Nach meiner Meinung auch richtig angeschlossen. Was mein Problem ist semtlichen erklärungen sind auf Englisch und da hört es bei mir meistens schon auf…
Mit den Zeilen hab ich ihn ja ans laufengrbracht
#include <AccelStepper.h>

AccelStepper stepper;

void setup()
{
stepper.setMaxSpeed(2500);
stepper.setSpeed(1000);
}

void loop()
{
stepper.runSpeed();
}
aber wo schreibe ich denn rein das er nur z.B. 200 Schritte machen soll

Dann teile mit uns das Datenblatt.

So das Datenblatt

Das ist ein Motor für Stromansteuerung und damit geeignet für den TB6600. Man erkennt es an dem Windungswiderstand zusammen mt dem Windungsnennstrom. Die Nennspannung ist etwas irreführend da sie nicht für den nackten Motor gilt sondern für die kombination Motor und Stromtreiber.
Die Nennspannung des Motors wäre ca 2,5A * 0,7Ohm = 1,75V. Der Treiber macht daß der Motor trotz Versorgung mit 24V nicht Durchbrennt weil er den Strom begrenzt.

Zu Drehmomentschwäche Deines Motors: Der Wicklungsstrom wird bei schnellen Schrittfolgen durch die Induktivität begrenzt. Da das Drehmoment vom Wicklungsstrom abhängig ist wird bei höheren Schrittfolgen das Drehmoment kleiner.
Bei Stillstand hat die Induktivität keinen Einfluß und somit müßte da das volle Drehmoment auch mit 12V statt24V Versorgung zur Verfügung stehen.

Hast Du den Motor mal auseinandergebaut (Rotor entfernt)? Das darf man nicht, da er dadurch kaputgeht (Kaum mehr Drehmoment hat).

Grüße Uwe

Das ist schon mal gut das der Motor zum Treiber passt. Nein die Motoren sind neu, und bei meinem Sketch haben die auch genügend Drehmoment für mein "Projekt"

Gruß Joh

Hi

Du kannst prüfen, welche Drähte zusammen gehören - wenn Du die Strippen des Motor lösen (und kurzschließen) kannst.

  • Alle Strippen gelöst, Keine untereinander verbunden: der Motor lässt sich frei drehen, ggf. läuft er auch aus der Drehung etwas nach
  • zwei der Strippen verbinden: beim Andrehen des Motor dreht Dieser nicht weiter, ist widerwillig -> diese beiden Strippen sind eine Spule (also Spule A oder Spule B). Gleicher passiert dann auch mit den anderen beiden Drähten.
    Wenn der Motor weiter leicht dreht, haben diese beiden Strippen Nichts miteinander zu tun, Du hast also einen Draht der Spule A und einen Draht der Spule B - einen der Drähte tauschen (das Verhalten kann identisch bleiben - wieder A und B verbunden, oder jetzt bremst der Motor - zusammengehörige Drähte zu der einen Spule gefunden - dadurch auch die Drähte der anderen Spule.

2,5A und (rechnerisch) 1,75V ist doch schon ein echter Brocken an Stepper - also sicher kein Schund!

MfG

Nun noch mal auf mein Problem zurück zu kommen was und wo mich ich in dem Sketch verändern das der Motor nur 400 Schritte macht?

Gruß Joh.

#include <AccelStepper.h>

AccelStepper stepper; // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5

void setup()
{  
  stepper.setMaxSpeed(3500);
  stepper.setSpeed(1500);  
}

void loop()
{  
  stepper.runSpeed();
}

Die Doku zu Accelstepper lesen.

Ansonsten setze Deinen Sketch bitte in Codetags (</> oben links im Forumseditor). Damit wird er für alle lesbar und Du hast mehr potentielle Helfende.

Gruß Tommy

Danke Tommy56 für die Info das habe ich schon versucht leider verstehe ich es nicht genau deshalb frage ich

Gruß Joh