Here is the current code, should anyone be interested. I intend to document this project in case anyone is interested or has a similar problem.
int input1a = 8;
int input1b = 9;
int input2a = 10;
int input2b = 11;
int enable1 = 6;
int enable2 = 7;
int rpm = A0;
int enable = 5000;
int stepdelay = 1;
void setup() {
Serial.begin(9600);
pinMode(input1a, OUTPUT);
pinMode(input1b, OUTPUT);
pinMode(input2a, OUTPUT);
pinMode(input2b, OUTPUT);
pinMode(enable1, OUTPUT);
pinMode(enable2, OUTPUT);
digitalWrite(input1a, LOW);
digitalWrite(input1b, LOW);
digitalWrite(input2a, LOW);
digitalWrite(input2b, LOW);
digitalWrite(enable1, LOW);
digitalWrite(enable2, LOW);
delay(1000);
}
void loop() {
rpm = analogRead(A0);
enable = map(rpm, 0, 1023, 2500, 890);
// Step 1
digitalWrite(input1a, HIGH);
digitalWrite(input1b, LOW);
digitalWrite(input2a, LOW);
digitalWrite(input2b, HIGH);
digitalWrite(enable1, HIGH);
digitalWrite(enable2, HIGH);
delayMicroseconds(enable);
digitalWrite(enable1, LOW);
digitalWrite(enable2, LOW);
delayMicroseconds(stepdelay);
// Step 2
digitalWrite(input1a, HIGH);
digitalWrite(input1b, LOW);
digitalWrite(input2a, HIGH);
digitalWrite(input2b, LOW);
digitalWrite(enable1, HIGH);
digitalWrite(enable2, HIGH);
delayMicroseconds(enable);
digitalWrite(enable1, LOW);
digitalWrite(enable2, LOW);
delayMicroseconds(stepdelay);
// Step 3
digitalWrite(input1a, LOW);
digitalWrite(input1b, HIGH);
digitalWrite(input2a, HIGH);
digitalWrite(input2b, LOW);
digitalWrite(enable1, HIGH);
digitalWrite(enable2, HIGH);
delayMicroseconds(enable);
digitalWrite(enable1, LOW);
digitalWrite(enable2, LOW);
delayMicroseconds(stepdelay);
// Step 4
digitalWrite(input1a, LOW);
digitalWrite(input1b, HIGH);
digitalWrite(input2a, LOW);
digitalWrite(input2b, HIGH);
digitalWrite(enable1, HIGH);
digitalWrite(enable2, HIGH);
delayMicroseconds(enable);
digitalWrite(enable1, LOW);
digitalWrite(enable2, LOW);
delayMicroseconds(stepdelay);
Serial.println(enable);
}
stepper_mk1.ino (1.92 KB)