mirror of
https://github.com/usatiuk/EggbotWireless.git
synced 2025-10-26 16:57:48 +01:00
make it work with drv8825 driver
This commit is contained in:
@@ -12,14 +12,14 @@
|
|||||||
#define EGG_LENGTH 50.0
|
#define EGG_LENGTH 50.0
|
||||||
#define X_DEGREES_PER_MM (X_LIMIT / EGG_LENGTH)
|
#define X_DEGREES_PER_MM (X_LIMIT / EGG_LENGTH)
|
||||||
|
|
||||||
#define STEPS_PER_REVOLUTION 4076
|
#define STEPS_PER_REVOLUTION (360/1.8) * 32
|
||||||
#define DEF_RPM 2
|
#define DEF_RPM 2
|
||||||
|
|
||||||
Stepper eggStepper(28, 29, 30, 31, STEPS_PER_REVOLUTION, 0, Y_DEGREES_PER_MM);
|
Stepper eggStepper(24, 25, STEPS_PER_REVOLUTION, 0, Y_DEGREES_PER_MM);
|
||||||
Stepper servoStepper(24, 25, 26, 27, -STEPS_PER_REVOLUTION, X_LIMIT,
|
Stepper servoStepper(28, 29, -STEPS_PER_REVOLUTION, X_LIMIT,
|
||||||
X_DEGREES_PER_MM);
|
X_DEGREES_PER_MM);
|
||||||
|
|
||||||
Pen pen(23, 100, 150);
|
Pen pen(23, 100, 180);
|
||||||
|
|
||||||
float eggStepperDelay;
|
float eggStepperDelay;
|
||||||
float servoStepperDelay;
|
float servoStepperDelay;
|
||||||
|
|||||||
@@ -4,11 +4,8 @@
|
|||||||
class Stepper {
|
class Stepper {
|
||||||
private:
|
private:
|
||||||
int stepsPerRevolution;
|
int stepsPerRevolution;
|
||||||
unsigned int pin1;
|
unsigned int stepPin;
|
||||||
unsigned int pin2;
|
unsigned int dirPin;
|
||||||
unsigned int pin3;
|
|
||||||
unsigned int pin4;
|
|
||||||
unsigned int curStep = 1;
|
|
||||||
unsigned int remainingSteps;
|
unsigned int remainingSteps;
|
||||||
float degreesPerMM;
|
float degreesPerMM;
|
||||||
bool direction;
|
bool direction;
|
||||||
@@ -18,7 +15,7 @@ class Stepper {
|
|||||||
int limit;
|
int limit;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stepper(int pin1, int pin2, int pin3, int pin4, int stepsPerRevolution,
|
Stepper(int stepPin, int dirPin, int stepsPerRevolution,
|
||||||
int limit, float degreesPerMM);
|
int limit, float degreesPerMM);
|
||||||
void step(int steps);
|
void step(int steps);
|
||||||
int getRemainingSteps();
|
int getRemainingSteps();
|
||||||
|
|||||||
@@ -1,142 +1,23 @@
|
|||||||
#include "Stepper.h"
|
#include "Stepper.h"
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
void Stepper::clockwise() {
|
Stepper::Stepper(int stepPin, int dirPin,
|
||||||
switch (curStep) {
|
int stepsPerRevolution, int limit, float degreesPerMM)
|
||||||
case 1:
|
: dirPin(dirPin),
|
||||||
digitalWrite(pin4, HIGH);
|
stepPin(stepPin),
|
||||||
digitalWrite(pin3, LOW);
|
|
||||||
digitalWrite(pin2, LOW);
|
|
||||||
digitalWrite(pin1, LOW);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
digitalWrite(pin4, HIGH);
|
|
||||||
digitalWrite(pin3, HIGH);
|
|
||||||
digitalWrite(pin2, LOW);
|
|
||||||
digitalWrite(pin1, LOW);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
digitalWrite(pin4, LOW);
|
|
||||||
digitalWrite(pin3, HIGH);
|
|
||||||
digitalWrite(pin2, LOW);
|
|
||||||
digitalWrite(pin1, LOW);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
digitalWrite(pin4, LOW);
|
|
||||||
digitalWrite(pin3, HIGH);
|
|
||||||
digitalWrite(pin2, HIGH);
|
|
||||||
digitalWrite(pin1, LOW);
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
digitalWrite(pin4, LOW);
|
|
||||||
digitalWrite(pin3, LOW);
|
|
||||||
digitalWrite(pin2, HIGH);
|
|
||||||
digitalWrite(pin1, LOW);
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
digitalWrite(pin4, LOW);
|
|
||||||
digitalWrite(pin3, LOW);
|
|
||||||
digitalWrite(pin2, HIGH);
|
|
||||||
digitalWrite(pin1, HIGH);
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
digitalWrite(pin4, LOW);
|
|
||||||
digitalWrite(pin3, LOW);
|
|
||||||
digitalWrite(pin2, LOW);
|
|
||||||
digitalWrite(pin1, HIGH);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
digitalWrite(pin4, HIGH);
|
|
||||||
digitalWrite(pin3, LOW);
|
|
||||||
digitalWrite(pin2, LOW);
|
|
||||||
digitalWrite(pin1, HIGH);
|
|
||||||
}
|
|
||||||
if (curStep == 8) {
|
|
||||||
curStep = 1;
|
|
||||||
} else {
|
|
||||||
curStep++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Stepper::counterClockwise() {
|
|
||||||
switch (curStep) {
|
|
||||||
case 1:
|
|
||||||
digitalWrite(pin1, HIGH);
|
|
||||||
digitalWrite(pin2, LOW);
|
|
||||||
digitalWrite(pin3, LOW);
|
|
||||||
digitalWrite(pin4, LOW);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
digitalWrite(pin1, HIGH);
|
|
||||||
digitalWrite(pin2, HIGH);
|
|
||||||
digitalWrite(pin3, LOW);
|
|
||||||
digitalWrite(pin4, LOW);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
digitalWrite(pin1, LOW);
|
|
||||||
digitalWrite(pin2, HIGH);
|
|
||||||
digitalWrite(pin3, LOW);
|
|
||||||
digitalWrite(pin4, LOW);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
digitalWrite(pin1, LOW);
|
|
||||||
digitalWrite(pin2, HIGH);
|
|
||||||
digitalWrite(pin3, HIGH);
|
|
||||||
digitalWrite(pin4, LOW);
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
digitalWrite(pin1, LOW);
|
|
||||||
digitalWrite(pin2, LOW);
|
|
||||||
digitalWrite(pin3, HIGH);
|
|
||||||
digitalWrite(pin4, LOW);
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
digitalWrite(pin1, LOW);
|
|
||||||
digitalWrite(pin2, LOW);
|
|
||||||
digitalWrite(pin3, HIGH);
|
|
||||||
digitalWrite(pin4, HIGH);
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
digitalWrite(pin1, LOW);
|
|
||||||
digitalWrite(pin2, LOW);
|
|
||||||
digitalWrite(pin3, LOW);
|
|
||||||
digitalWrite(pin4, HIGH);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
digitalWrite(pin1, HIGH);
|
|
||||||
digitalWrite(pin2, LOW);
|
|
||||||
digitalWrite(pin3, LOW);
|
|
||||||
digitalWrite(pin4, HIGH);
|
|
||||||
}
|
|
||||||
if (curStep == 8) {
|
|
||||||
curStep = 1;
|
|
||||||
} else {
|
|
||||||
curStep++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Stepper::Stepper(int pin1, int pin2, int pin3, int pin4, int stepsPerRevolution,
|
|
||||||
int limit, float degreesPerMM)
|
|
||||||
: pin1(pin1),
|
|
||||||
pin2(pin2),
|
|
||||||
pin3(pin3),
|
|
||||||
pin4(pin4),
|
|
||||||
stepsPerRevolution(stepsPerRevolution),
|
stepsPerRevolution(stepsPerRevolution),
|
||||||
limit(limit),
|
limit(limit),
|
||||||
degreesPerMM(degreesPerMM) {
|
degreesPerMM(degreesPerMM) {
|
||||||
pinMode(pin1, OUTPUT);
|
pinMode(dirPin, OUTPUT);
|
||||||
pinMode(pin2, OUTPUT);
|
pinMode(stepPin, OUTPUT);
|
||||||
pinMode(pin3, OUTPUT);
|
|
||||||
pinMode(pin4, OUTPUT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Stepper::doStep() {
|
void Stepper::doStep() {
|
||||||
if (remainingSteps > 0) {
|
if (remainingSteps > 0) {
|
||||||
if (direction) {
|
digitalWrite(dirPin, direction);
|
||||||
clockwise();
|
digitalWrite(stepPin, 1);
|
||||||
} else {
|
delayMicroseconds(2);
|
||||||
counterClockwise();
|
digitalWrite(stepPin, 0);
|
||||||
}
|
|
||||||
remainingSteps--;
|
remainingSteps--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user