const int DIR_PIN_LEFT = 3;
const int STEP_PIN_LEFT = 4;
const int DIR_PIN_RIGHT = 5;
const int STEP_PIN_RIGHT = 6;
const int ENABLE_PIN = 7;
const int BUTTON_PIN_1 = 8;
const int BUTTON_PIN_2 = 9;
const int BUTTON_PIN_3 = 10;
const int BUTTON_PIN_4 = 11;
const int motorDelay = 1000;
bool lastButtonState = HIGH;
bool ledState = LOW;
void setup() {
pinMode(DIR_PIN_LEFT, OUTPUT);
pinMode(STEP_PIN_LEFT, OUTPUT);
pinMode(DIR_PIN_RIGHT, OUTPUT);
pinMode(STEP_PIN_RIGHT, OUTPUT);
pinMode(ENABLE_PIN, OUTPUT);
pinMode(BUTTON_PIN_1, INPUT_PULLUP);
pinMode(BUTTON_PIN_2, INPUT_PULLUP);
pinMode(BUTTON_PIN_3, INPUT_PULLUP);
pinMode(BUTTON_PIN_4, INPUT_PULLUP);
digitalWrite(ENABLE_PIN, LOW);
}
void loop() {
if (digitalRead(BUTTON_PIN_1) == LOW) {
moveForward();
} else if (digitalRead(BUTTON_PIN_2) == LOW) {
moveBackward();
} else if (digitalRead(BUTTON_PIN_3) == LOW) {
turnRight();
} else if (digitalRead(BUTTON_PIN_4) == LOW) {
turnLeft();
}
}
void moveForward() {
digitalWrite(DIR_PIN_LEFT, HIGH);
digitalWrite(DIR_PIN_RIGHT, HIGH);
stepMotors();
}
void moveBackward() {
digitalWrite(DIR_PIN_LEFT, LOW);
digitalWrite(DIR_PIN_RIGHT, LOW);
stepMotors();
}
void turnRight() {
digitalWrite(DIR_PIN_LEFT, HIGH);
digitalWrite(DIR_PIN_RIGHT, LOW);
stepMotors();
}
void turnLeft() {
digitalWrite(DIR_PIN_LEFT, LOW);
digitalWrite(DIR_PIN_RIGHT, HIGH);
stepMotors();
}
void stepMotors() {
for (int i = 0; i < 200; i++) {
digitalWrite(STEP_PIN_LEFT, HIGH);
digitalWrite(STEP_PIN_RIGHT, HIGH);
delayMicroseconds(motorDelay);
digitalWrite(STEP_PIN_LEFT, LOW);
digitalWrite(STEP_PIN_RIGHT, LOW);
delayMicroseconds(motorDelay);
}
}