Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 15 additions & 44 deletions CheapStepper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -209,91 +209,62 @@ void CheapStepper::seqCCW (){
}
}

void CheapStepper::seq (int seqNum){
void CheapStepper::seq (byte seqNum){

int pattern[4];
byte pattern;
// A,B,C,D HIGH/LOW pattern to write to driver board
switch(seqNum){

switch (seqNum) {
case 0:
{
pattern[0] = 1;
pattern[1] = 0;
pattern[2] = 0;
pattern[3] = 0;
pattern = 0b1000;
break;
}
case 1:
{
pattern[0] = 1;
pattern[1] = 1;
pattern[2] = 0;
pattern[3] = 0;
pattern = 0b1100;
break;
}
case 2:
{
pattern[0] = 0;
pattern[1] = 1;
pattern[2] = 0;
pattern[3] = 0;
pattern = 0b0100;
break;
}
case 3:
{
pattern[0] = 0;
pattern[1] = 1;
pattern[2] = 1;
pattern[3] = 0;
pattern = 0b0110;
break;
}
}
case 4:
{
pattern[0] = 0;
pattern[1] = 0;
pattern[2] = 1;
pattern[3] = 0;
pattern = 0b0010;
break;
}
case 5:
{
pattern[0] = 0;
pattern[1] = 0;
pattern[2] = 1;
pattern[3] = 1;
pattern = 0b0011;
break;
}
case 6:
{
pattern[0] = 0;
pattern[1] = 0;
pattern[2] = 0;
pattern[3] = 1;
pattern = 0b0001;
break;
}
case 7:
{
pattern[0] = 1;
pattern[1] = 0;
pattern[2] = 0;
pattern[3] = 1;
pattern = 0b1001;
break;
}
default:
{
pattern[0] = 0;
pattern[1] = 0;
pattern[2] = 0;
pattern[3] = 0;
pattern = 0b000;
break;
}
}

// write pattern to pins
for (int p=0; p<4; p++){
digitalWrite(pins[p], pattern[p]);
digitalWrite(pins[p], (pattern & (1 << 3-p)) >> 3-p);
}
delayMicroseconds(delay);
}


4 changes: 2 additions & 2 deletions CheapStepper.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ class CheapStepper

void seqCW();
void seqCCW();
void seq(int seqNum); // send specific sequence num to driver
void seq(byte seqNum); // send specific sequence num to driver

int pins[4]; // defaults to pins {8,9,10,11} (in1,in2,in3,in4 on the driver board)

Expand All @@ -118,7 +118,7 @@ class CheapStepper
// low speed (high torque) = 1465 ~= 1 rpm
// high speed (low torque) = 600 ~= 24 rpm

int seqN = -1; // keeps track of sequence number
byte seqN = -1; // keeps track of sequence number

// variables for non-blocking moves:
unsigned long lastStepTime; // time in microseconds that last step happened
Expand Down