Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h>
- #define X_STEP_PIN 54
- #define X_DIR_PIN 55
- #define X_ENABLE_PIN 38
- #define Y_STEP_PIN 60
- #define Y_DIR_PIN 61
- #define Y_ENABLE_PIN 56
- #define Z_STEP_PIN 46
- #define Z_DIR_PIN 48
- #define Z_ENABLE_PIN 62
- #define X_STEPPER_CLK 16
- #define X_STEPPER_DT 17
- #define Y_STEPPER_CLK 23
- #define Y_STEPPER_DT 25
- #define Z_STEPPER_CLK 27
- #define Z_STEPPER_DT 29
- int X_STEP_COUNT;
- int Y_STEP_COUNT;
- int Z_STEP_COUNT;
- int X_ANGLE;
- int Y_ANGLE;
- int Z_ANGLE;
- int X_STATE;
- int Y_STATE;
- int Z_STATE;
- int X_LAST_STATE;
- int Y_LAST_STATE;
- int Z_LAST_STATE;
- void setup()
- {
- pinMode(X_STEP_PIN, OUTPUT);
- pinMode(X_DIR_PIN, OUTPUT);
- pinMode(X_ENABLE_PIN, OUTPUT);
- pinMode(Y_STEP_PIN, OUTPUT);
- pinMode(Y_DIR_PIN, OUTPUT);
- pinMode(Y_ENABLE_PIN, OUTPUT);
- pinMode(Z_STEP_PIN, OUTPUT);
- pinMode(Z_DIR_PIN, OUTPUT);
- pinMode(Z_ENABLE_PIN, OUTPUT);
- digitalWrite(X_ENABLE_PIN, LOW);
- digitalWrite(Y_ENABLE_PIN, LOW);
- digitalWrite(Z_ENABLE_PIN, LOW);
- pinMode(X_STEPPER_DT, INPUT);
- pinMode(X_STEPPER_CLK, INPUT);
- pinMode(Y_STEPPER_DT, INPUT);
- pinMode(Y_STEPPER_CLK, INPUT);
- pinMode(Z_STEPPER_DT, INPUT);
- pinMode(Z_STEPPER_CLK, INPUT);
- X_LAST_STATE = digitalRead(X_STEPPER_CLK);
- Y_LAST_STATE = digitalRead(Y_STEPPER_CLK);
- Z_LAST_STATE = digitalRead(Z_STEPPER_CLK);
- }
- void loop()
- {
- X_STATE = digitalRead(X_STEPPER_CLK);
- Y_STATE = digitalRead(Y_STEPPER_CLK);
- Z_STATE = digitalRead(Z_STEPPER_CLK);
- if(X_STATE != X_LAST_STATE) {
- if(digitalRead(X_STEPPER_DT) != X_STATE) {
- X_STEP_COUNT++;
- X_ANGLE++;
- digitalWrite(X_DIR_PIN, LOW);
- digitalWrite(X_STEP_PIN, HIGH);
- delayMicroseconds(2000);
- digitalWrite(X_STEP_PIN, LOW);
- delayMicroseconds(2000);
- } else {
- X_STEP_COUNT--;
- X_ANGLE--;
- digitalWrite(X_DIR_PIN, HIGH);
- digitalWrite(X_STEP_PIN, HIGH);
- delayMicroseconds(2000);
- digitalWrite(X_STEP_PIN, LOW);
- delayMicroseconds(2000);
- }
- }
- if(Y_STATE != Y_LAST_STATE) {
- if(digitalRead(Y_STEPPER_DT) != Y_STATE) {
- Y_STEP_COUNT++;
- Y_ANGLE++;
- digitalWrite(Y_DIR_PIN, LOW);
- digitalWrite(Y_STEP_PIN, HIGH);
- delayMicroseconds(2000);
- digitalWrite(Y_STEP_PIN, LOW);
- delayMicroseconds(2000);
- } else {
- Y_STEP_COUNT--;
- Y_ANGLE--;
- digitalWrite(Y_DIR_PIN, HIGH);
- digitalWrite(Y_STEP_PIN, HIGH);
- delayMicroseconds(2000);
- digitalWrite(Y_STEP_PIN, LOW);
- delayMicroseconds(2000);
- }
- }
- if(Z_STATE != Z_LAST_STATE) {
- if(digitalRead(Z_STEPPER_DT) != Z_STATE) {
- Z_STEP_COUNT++;
- Z_ANGLE++;
- digitalWrite(Z_DIR_PIN, LOW);
- digitalWrite(Z_STEP_PIN, HIGH);
- delayMicroseconds(2000);
- digitalWrite(Z_STEP_PIN, LOW);
- delayMicroseconds(2000);
- } else {
- Z_STEP_COUNT--;
- Z_ANGLE--;
- digitalWrite(Z_DIR_PIN, HIGH);
- digitalWrite(Z_STEP_PIN, HIGH);
- delayMicroseconds(2000);
- digitalWrite(Z_STEP_PIN, LOW);
- delayMicroseconds(2000);
- }
- }
- X_LAST_STATE = X_STATE;
- Y_LAST_STATE = Y_STATE;
- Z_LAST_STATE = Z_STATE;
- delay(4);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement