Motors moving

This commit is contained in:
Holger Weber
2026-02-12 23:32:32 +01:00
parent 50430b050e
commit 098c577142
7 changed files with 316 additions and 1467 deletions

View File

@@ -29,51 +29,114 @@
//-----------------------------------------------------------------------------------------------------------
//make Objects
// AccelStepper rotMotor(AccelStepper::DRIVER, step1, dir1);
// AccelStepper penMotor(AccelStepper::DRIVER, step2, dir2);
// Servo penServo;
// SerialCommand SCmd;
//create Buttons
FastAccelStepperEngine g_stepEngine = FastAccelStepperEngine();
FastAccelStepper *g_pStepperRotate = NULL;
FastAccelStepper *g_pStepperPen = NULL;
// make Objects
// FastAccelStepper rotMotor(FastAccelStepper::DRIVER, step1, dir1);
// FastAccelStepper penMotor(FastAccelStepper::DRIVER, step2, dir2);
Servo penServo;
SerialCommand SCmd;
// create Buttons
#ifdef prgButton
Button prgButtonToggle(prgButton, setprgButtonState);
Button prgButtonToggle(prgButton, setprgButtonState);
#endif
#ifdef penToggleButton
Button penToggle(penToggleButton, doTogglePen);
Button penToggle(penToggleButton, doTogglePen);
#endif
#ifdef motorsButton
Button motorsToggle(motorsButton, toggleMotors);
Button motorsToggle(motorsButton, toggleMotors);
#endif
// Variables... be careful, by messing around here, everything has a reason and crossrelations...
int penMin=0;
int penMax=0;
int penUpPos=5; //can be overwritten from EBB-Command SC
int penDownPos=20; //can be overwritten from EBB-Command SC
int servoRateUp=0; //from EBB-Protocol not implemented on machine-side
int servoRateDown=0; //from EBB-Protocol not implemented on machine-side
long rotStepError=0;
long penStepError=0;
int penState=penUpPos;
uint32_t nodeCount=0;
unsigned int layer=0;
boolean prgButtonState=0;
uint8_t rotStepCorrection = 16/rotMicrostep ; //devide EBB-Coordinates by this factor to get EGGduino-Steps
uint8_t penStepCorrection = 16/penMicrostep ; //devide EBB-Coordinates by this factor to get EGGduino-Steps
float rotSpeed=0;
float penSpeed=0; // these are local variables for Function SteppermotorMove-Command, but for performance-reasons it will be initialized here
int penMin = 0;
int penMax = 0;
int penUpPos = 5; // can be overwritten from EBB-Command SC
int penDownPos = 20; // can be overwritten from EBB-Command SC
int servoRateUp = 0; // from EBB-Protocol not implemented on machine-side
int servoRateDown = 0; // from EBB-Protocol not implemented on machine-side
long rotStepError = 0;
long penStepError = 0;
int penState = penUpPos;
uint32_t nodeCount = 0;
unsigned int layer = 0;
boolean prgButtonState = 0;
uint8_t rotStepCorrection = 16 / rotMicrostep; // devide EBB-Coordinates by this factor to get EGGduino-Steps
uint8_t penStepCorrection = 16 / penMicrostep; // devide EBB-Coordinates by this factor to get EGGduino-Steps
float rotSpeed = 0;
float penSpeed = 0; // these are local variables for Function SteppermotorMove-Command, but for performance-reasons it will be initialized here
boolean motorsEnabled = 0;
void setup() {
Serial.begin(115200);
Serial.print("Starting...");
//makeComInterface();
//initHardware();
// Stepper Test
// #define dirPinStepper 16
// #define enablePinStepper 12
// #define stepPinStepper 26
void setup()
{
Serial.begin(9600);
Serial.println("Starting...");
makeComInterface();
initHardware();
startWebInterface();
}
void loop() {
// moveOneStep();
// SCmd.readSerial();
uint8_t g_uiState = 0;
unsigned long g_uiLastTim = millis();
void loop()
{
#ifdef TEST
unsigned long uiNow = millis();
motorsOn();
if (uiNow - g_uiLastTim > 500)
{
g_uiLastTim = uiNow;
switch (g_uiState)
{
case 0:
Serial.println(g_uiState);
g_pStepperRotate->setSpeedInUs(10); // the parameter is us/step !!!
g_pStepperRotate->setAcceleration(10000);
g_pStepperRotate->move(1000);
g_uiState++;
break;
case 1:
Serial.println(g_uiState);
g_pStepperRotate->setSpeedInUs(10); // the parameter is us/step !!!
g_pStepperRotate->setAcceleration(10000);
g_pStepperRotate->move(-1000);
g_uiState++;
break;
case 2:
Serial.println(g_uiState);
g_pStepperPen->setSpeedInUs(10); // the parameter is us/step !!!
g_pStepperPen->setAcceleration(10000);
g_pStepperPen->move(1000);
g_uiState++;
break;
case 3:
Serial.println(g_uiState);
g_pStepperPen->setSpeedInUs(10); // the parameter is us/step !!!
g_pStepperPen->setAcceleration(10000);
g_pStepperPen->move(-1000);
g_uiState = 0;
break;
default:
break;
}
}
#endif
//moveOneStep();
SCmd.readSerial();
handleWebInterface();
#ifdef penToggleButton