Ich würde gernen meinen 2D-Plotter mit Accelstepper betreiben.
Setup ist Arduino Uno + 3x Pololu A4988 Treiber + 3 Schrittmotoren aus alten DVD Laufwerken.
Problem ist dass ich die Anwendung der Accelstepper Library nicht verstehe. Die Syntax kann ich einfach nicht umsetzen.
Zum Beispiel:
Wie kommt man von dieser Syntax....:
Beispielsweise ist vom "::" nix mehr zu sehen. Dann wird der Motor mit stepperX definiert, wovon in der Syntax auch nix steht. Ich weiss dass 1 für Motortreiber steht, 33 und 35 sind Pin Ausgänge für Step und Dir.
Könnte mir das bitte jemand erklären? Muss ich mir Kenntnisse in Umgang mit Objekten aneignen?
Das erste AccelStepper vor dem :: ist der Klassenname. Den braucht man beim Aufruf der Methoden nicht mehr. Nur bei deren Implementierung. Das kannst du also ignorieren.
Das ist nötig, weil die Definition der Klasse selbst im Header steht. In der .cpp Datei sind nur einzelne Methoden. Durch den Klassen Namen davor werden also die Methoden der Klasse zugeordnet. Bei anderen Sprachen ohne getrennte Header hat man das nicht und die Methoden stehen direkt in der Klassen-Definition.
Das zweite AccelStepper ist der Name des Konstruktors. Der ist wie bei anderen Sprachen identisch mit dem Namen der Klasse. Deshalb das zweimal. Sind aber zwei verschiedene Dinge.
Die Parameter haben alle Default Werte. Also wenn man weniger als die Anzahl der Parameter übergibt werden die Standardwerte verwendet. Man könnte den Konstruktor auch mit () aufrufen wenn die Standardwerte ok wären.
Hier:
AccelStepper stepperX(1, 33, 35);
Ist AccelStepper das Klassen-Name. stepperX ist der Objekte-Name. Und es wird wie üblich bei der Instantiierung eines Objektes der Konstruktor aufgerufen.