#define EN_PIN 6
#define DIR_X 4
#define STEP_X 5
int step_rev = 6400; // 360/1.8 = 200
int dir = 1;
int i = 0;
bool STATE = LOW;
bool STATE_DIR = HIGH;
unsigned long previousMillis_1; // Store current timer
const unsigned long interval_1 = 1; // Create timer1 1ms
void setup() {
pinMode(EN_PIN, OUTPUT);
pinMode(DIR_X, OUTPUT);
pinMode(STEP_X, OUTPUT);
Serial.begin(115200);
}
void loop() {
unsigned long currentMillis = millis();
digitalWrite(EN_PIN, LOW);
if (dir > 0) {
if (currentMillis - previousMillis_1 >= interval_1) {
digitalWrite(DIR_X, STATE_DIR);
previousMillis_1 = currentMillis;
if (STATE) {
STATE = LOW;
} else {
STATE = HIGH;
}
digitalWrite(STEP_X, STATE);
if (i == step_rev) {
i = 0;
if (STATE_DIR) {
STATE_DIR = LOW;
} else {
STATE_DIR = HIGH;
}
}
i++;
Serial.println(i);
}
}
}