Die grundlegenden Anforderungen an die Schrittmotorsteuerung sowie weitere Pins liegen in der Graviermaschine oder im 3D-Drucker. Auf diese gehen wir hier nicht näher ein. IO entspricht der Abbildung oben.
Erweiterungskarte UNO ----------------------
8 ------------------------ DE (Schrittmotorantrieb aktivieren, aktiv niedrig)
7--------- Z.DIR (Z-Achsen-Richtungssteuerung)
6--------- Y.DIR (Y-Achsen-Richtungssteuerung)
5-------- X.DIR (Steuerung der X-Achsenrichtung)
4 ---------------------- Z.STEP (Z-Achsen-Schrittmotorsteuerung)
3 ---------------------- Y.STEP (Y-Achsen-Schrittmotorsteuerung)
2 ---------------------- X.STEP (X-Achsen-Schrittmotorsteuerung)
// Hier ist eine einfache Schrittmotor-Steuerung Verfahren,
#define EN 8 // Schrittmotor aktivieren, aktiv niedrig
#define X_DIR 5 // Richtungssteuerung des Schrittmotors auf der X-Achse
#define Y_DIR 6 / / y-Achse Schrittmotor Richtungssteuerung
#define Z_DIR 7 / / z-Achse Schrittmotor Richtungssteuerung
#define X_STP 2 // Schrittmotorsteuerung für die X-Achse
#define Y_STP 3 // Schrittmotorsteuerung der Y-Achse
#define Z_STP 4 // Z-Achsen-Schrittmotorsteuerung
/ *
// Funktion: Schrittfunktion: um die Richtung des Schrittmotors und die Anzahl der Schritte zu steuern.
// Parameter: dir Richtungssteuerung, dirPin DIR-Pin entspricht dem Schrittmotor, stepperPin Schritt-Pin entspricht dem Schrittmotor, ein paar Schritte Schritte
// Kein Rückgabewert
* /
Void-Schritt (boolescher Verzeichnis, byte dirPin, byte stepperPin, int steps)
{
digitalSchreiben (dirPin, dir);
verzögern (50);
zum (int i = 0; ich
digitalSchreiben (stepperPin, HOCH);
VerzögerungMikrosekunden (800);
digitalSchreiben (stepperPin, NIEDRIG);
VerzögerungMikrosekunden (800);
}
}
void setup () {// der im IO-Pin verwendete Schrittmotor ist auf Ausgabe eingestellt
pinMode (X_DIR, AUSGABE); pinMode (X_STP, AUSGABE);
pinMode (Y_DIR, AUSGABE); pinMode (Y_STP, AUSGABE);
pinMode (Z_DIR, AUSGABE); pinMode (Z_STP, AUSGABE);
pinMode (EN, OUTPUT);
digitalSchreiben (DE, NIEDRIG);
}
leere Schleife () {
Schritt (falsch, X_DIR, X_STP, 200); // X-Achsen-Motorumkehrrunde, 200 Schritte für den Kreis
Schritt (falsch, Y_DIR, Y_STP, 200); // Y-Achsen-Motorumkehrrunde, 200 Schritte für den Kreis
Schritt (falsch, Z_DIR, Z_STP, 200); // Umkehrrunde des Z-Achsenmotors, 200 Schritte für den Kreis
verzögern (1000);
Schritt (Stimmt, X_DIR, X_STP, 200); // Der X-Achsenmotor wird um 200 Schritte auf einen Kreis übertragen.
Schritt (Stimmt, Y_DIR, Y_STP, 200); // Der Y-Achsenmotor wird um 200 Schritte pro Kreis gedreht
Schritt (Stimmt, Z_DIR, Z_STP, 200); // Z-Achsen-Motor wird um 200 Schritte auf Kreis übertragen
verzögern (1000);
}