const int stepPin = 3;
const int dirPin = 2;
int forwardButton = 7;
int reverseButton = 6;
int leftLimitSwitch = 5;
int rightLimitSwitch = 4;
int setSpeed = 800;
int forwardButtonState, reverseButtonState;
void setup() {
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(forwardButton, INPUT_PULLUP);
pinMode(reverseButton, INPUT_PULLUP);
pinMode(leftLimitSwitch, INPUT_PULLUP);
pinMode(rightLimitSwitch, INPUT_PULLUP);
digitalWrite(dirPin, LOW);
}
void loop() {
forwardButtonState = digitalRead(forwardButton);
reverseButtonState = digitalRead(reverseButton);
delay(100);
if (forwardButtonState == LOW) {
digitalWrite(dirPin, LOW);
while (digitalRead(leftLimitSwitch) == LOW) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(setSpeed);
digitalWrite(stepPin, LOW);
delayMicroseconds(setSpeed);
}
}
else if (reverseButtonState == LOW) {
digitalWrite(dirPin, HIGH);
while (digitalRead(rightLimitSwitch) == LOW) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(setSpeed);
digitalWrite(stepPin, LOW);
delayMicroseconds(setSpeed);
}
}
}