//
// Globale Konstanten definieren
//
namespace gc {
constexpr byte DirPin {4};
constexpr byte StepPin {5};
constexpr byte ClockPin {2};
constexpr unsigned int StepperDelay_us {500};
} // namespace gc
bool edge {false};
void isrClock() { edge = !edge; }
//
// Den Schrittmotor um die errechnete Anzahl an Schritten CW oder CCW bewegen.
//
void driveStepper(byte Pin, unsigned int Delay_us) {
digitalWrite(Pin, HIGH);
delayMicroseconds(Delay_us);
digitalWrite(Pin, LOW);
delayMicroseconds(Delay_us);
}
void setup() {
pinMode(gc::StepPin, OUTPUT);
pinMode(gc::DirPin, OUTPUT);
pinMode(gc::ClockPin, INPUT_PULLUP);
digitalWrite(gc::DirPin, HIGH);
attachInterrupt(digitalPinToInterrupt(gc::ClockPin), isrClock, FALLING); // Takgeber 66,7 Hz = 200 Steps in drei Sekunden
}
void loop() {
if (edge) {
edge = false;
driveStepper(gc::StepPin, gc::StepperDelay_us);
}
}
V