Hallo zusammen, ich bin neu in diesem Forum und arbeite zum ersten Mal mit dem Arduino und benötige Hilfe. In meinem Projekt möchte ich mit einem Arduino Maga und einem 10KΩ Potentiometer einen Schrittmotor steuern. Das bedeutet das, wenn der Potentiometer in eine Richtung gedreht wird, sollte der Schrittmotor diese Schritte in dieser Richtung machen. Also anders gesagt eine Positionsteuerung mit einem Potentiometer. Als Treiber würde ich einen TB6600 benützen. Ich hätte aber auch einen A4988. Und der Schrittmotor ist ein Joy-it Nema 17. Wäre das überhaupt möglich und wie könnte der Sketch dafür aussehen? Vielen Dank für die Unterstützung.
Mein Tipp ist die Programmbibliothek MobaTools, wo Du verschiedene Beispielprogramme findest.
Das ist die mechanische Größe, wichtig sind die elektrischen Werte.
Diese Treiber möchten STEP, DIR und ggf. ENable als Signale verwenden. Sie benötigen eine höhere Spannung, beispielsweise 24 V aus einem Netzteil, das hinreichend Strom liefert.
Was genau möchtest du mit dem Poti machen ?
Ein Poti hat üblicherweise keine Schritte und dann ca. 270 Grad Drehbereich.
Wie soll das zum Motor passen ?
Der Poti sollte den Schrittmotor steuern. Auf YouTube habe ich ein Video von Circuit Digest gefunden. Ich möchte es in dieser Richtung, aber ich habe leider nicht dieselben Komponente.
Du könntest mit dem Beispiel back_ForthStepperPause.ino anfangen, damit sich der Motor erstmal dreht. Dann mapst Du den Potiwert auf den Sollwert des Motors.
Momentan kann ich den Schrittmotor in beiden Richtungen drehen. Aber sobald der Poti zum Einsatz kommt, komme ich nicht mehr draus. Wie muss ich überhaupt beginnen oder was ist ein Sollwert?
Um den Schrittmotor zu drehen, habe ich das geschrieben:
Teil eines Regelkreises. Du mußt die Position mitzählen, in der sich der Motor befindet, das ist der Istwert der Position. Den vergleichst Du mit dem durch das Potentiometer vorgegebenen Sollwert der Position. Die Differenz positiv oder negativ gibt die Drehrichtung vor, der Absolutwert die Anzahl der Schritte, den Stellwert.
potVal = map(analogRead(A0),0,1024,0,500);
if (potVal>Pval)
stepper.step(5);
if (potVal<Pval)
stepper.step(-5);
Pval = potVal;
Also wenn eine Änderung im gelesenen Wert ist, dann dreht sich der Motor um 5 Schritte. Ich finde diese Regelung aber sehr schlecht und eigentlich nur für Übungszwecke sinnvoll. Ansonsten könnte man mittels Potentiometer die Drehrichtung und Geschwindigkeit einstellen oder mittels Enkoder die Schritte bestimmen.
[EDIT]
Teil gelöscht weil falsch.
[/EDIT]
Ob der Treiber geeignet für den gewünschten Motor ist, kann ich Dir aus Mangel von Information bezüglich des Motors nicht sagen.
Prinzipiel wenn die Nennspannung des Motors so um 3-4V ist dann ist es ein Motor für Stromsteuerung und damit für den A4988 bzw TB6600