#define IN1 4
#define IN2 5
#define IN3 6
#define IN4 7
const int stepsPerRevolution = 200;
const int stepDelay = 5;
int stepSequence[4][4] = {
{1, 0, 0, 0},
{0, 1, 0, 0},
{0, 0, 1, 0},
{0, 0, 0, 1}
};
void setup() {
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
// Start with motor OFF
releaseMotor();
}
void loop() {
rotateForward();
delay(500);
rotateBackward();
delay(500);
}
// 🔁 Rotate Forward
void rotateForward() {
for (int step = 0; step < stepsPerRevolution; step++) {
for (int i = 0; i < 4; i++) {
setStep(i);
delay(stepDelay);
}
}
releaseMotor();
}
// 🔁 Rotate Backward
void rotateBackward() {
for (int step = 0; step < stepsPerRevolution; step++) {
for (int i = 3; i >= 0; i--) {
setStep(i);
delay(stepDelay);
}
}
releaseMotor();
}
// ⚙️ Apply step to motor
void setStep(int index) {
digitalWrite(IN1, stepSequence[index][0]);
digitalWrite(IN2, stepSequence[index][1]);
digitalWrite(IN3, stepSequence[index][2]);
digitalWrite(IN4, stepSequence[index][3]);
}
// ⛔ Turn off coils
void releaseMotor() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}Loading
esp32-s3-devkitc-1
esp32-s3-devkitc-1