stepper demo contd

main
radex 2024-02-20 18:20:16 +01:00
parent 53d28add10
commit 0edfbe6a50
Signed by: radex
SSH Key Fingerprint: SHA256:hvqRXAGG1h89yqnS+cyFTLKQbzjWD4uXIqw7Y+0ws30
3 changed files with 39 additions and 0 deletions

View File

@ -27,6 +27,9 @@ void setup() {
splashScreen();
}
bool stepperDemo = false;
bool stepperDemoSlowing = false;
unsigned long lastStepperDemoMillis = 0;
void loop() {
debugScanI2C();
@ -42,6 +45,37 @@ void loop() {
setStepperDirection(RIGHT);
} else if (debugKey == '-') {
setTimerEnabled(!isTimerEnabled());
} else if (debugKey == 'k') {
setStepperEnabled(true);
setStepperDirection(RIGHT);
setTimerEnabled(true);
setTimerCadence(50);
stepperDemo = true;
stepperDemoSlowing = false;
lastStepperDemoMillis = millis();
}
if (stepperDemo) {
auto now = millis();
if (now - lastStepperDemoMillis >= 5) {
lastStepperDemoMillis = now;
auto cadence = getTimerCadence();
if (stepperDemoSlowing) {
if (cadence == 50) {
setStepperDirection(!getStepperDirection());
stepperDemoSlowing = false;
} else {
setTimerCadence(cadence + 1);
}
} else {
if (cadence == 8) {
stepperDemoSlowing = true;
} else {
setTimerCadence(cadence - 1);
}
}
}
}
auto key = handleKeyboard();

View File

@ -75,6 +75,10 @@ void setStepperEnabled(bool enabled) {
digitalWrite(STEPPER_ENABLE, !enabled);
}
bool getStepperDirection() {
return !digitalRead(STEPPER_DIR);
}
void setStepperDirection(bool dir) {
digitalWrite(STEPPER_DIR, !dir);
}

View File

@ -11,5 +11,6 @@ uint16_t getTimerCadence();
void setTimerCadence(uint16_t cadence);
void setStepperEnabled(bool enabled);
bool getStepperDirection();
void setStepperDirection(bool dir);
inline void step();