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