#include <Arduino.h>
// STM32 Nucleo-C031C6 pins
#define STEP_PIN D2
#define DIR_PIN D3
#define EN_PIN D4
void stepMotor(int steps, bool direction)
{
digitalWrite(DIR_PIN, direction ? HIGH : LOW);
for (int i = 0; i < steps; i++)
{
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(1000);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(1000);
}
}
void setup()
{
pinMode(STEP_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
pinMode(EN_PIN, OUTPUT);
// Enable A4988
digitalWrite(EN_PIN, LOW);
// Initial state
digitalWrite(STEP_PIN, LOW);
digitalWrite(DIR_PIN, LOW);
}
void loop()
{
// Clockwise: 200 steps = 1 revolution
stepMotor(200, true);
delay(1000);
// Counter-clockwise: 200 steps = 1 revolution
stepMotor(200, false);
delay(1000);
}