Also I can attach code If it will be of any help...
// Libraries
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Wire.h>
const int stepPin = 3;
const int dirPin = 2;
#include <AccelStepper.h>
AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin); // STEP, DIR pin
Adafruit_SSD1306 display(128, 64, &Wire, -1);
// Define pins
#define BTN_33 5
#define BTN_45 4
#define POT_PIN A2
int btn_33_value;
int btn_45_value;
bool spin = false;
int stepsPerRevolution = 200; // full steos
int microstepping = 16; // TMC2209 DIP switches (or UART)
int rpm = 1200;
void setup() {
//pinMode(stepPin, OUTPUT);
//pinMode(dirPin, OUTPUT);
pinMode(POT_PIN, OUTPUT);
//stepper.setMaxSpeed(3200); // steps per second
//stepper.setSpeed(3200); // This gives 60 RPM if 3200 steps per rotation
stepper.setMaxSpeed(25600); // 480RPM = 25600 steps per second
stepper.setSpeed(25600); // 480RPM = 25600 steps per second
// 480RPM = 25600 steps per second
pinMode(BTN_33, INPUT);
pinMode(BTN_45, INPUT);
digitalWrite(POT_PIN, LOW);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) for(;;);
display.clearDisplay();
display.setCursor(40, 0);
display.setTextSize(1);
display.setTextColor(WHITE);
display.print("Hello Nema 2");
display.display();
delay(2000);
// Set direction (HIGH or LOW)
//digitalWrite(dirPin, HIGH); // or LOW
}
void loop() {
btn_33_value = digitalRead(BTN_33);
btn_45_value = digitalRead(BTN_45);
int stepsPerSec = (stepsPerRevolution * microstepping * rpm) / 60;
float delayMicro = (1.0 / stepsPerSec) * 1e6;
if (btn_33_value == LOW) {
digitalWrite(POT_PIN, HIGH); // Here we just used it for test to turn ON LED
spin = true;
} else if (btn_45_value == LOW) {
digitalWrite(POT_PIN, LOW); // Here we just used it for test to turn OFF LED
spin = false;
}
// Move 200 steps (1 revolution for 1.8° motor)
if (spin) {
//digitalWrite(stepPin, HIGH);
//delayMicroseconds(delayMicro);
//digitalWrite(stepPin, LOW);
//delayMicroseconds(delayMicro);
stepper.runSpeed();
}
/*
for (int i = 0; i < 2200; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(300); // Step pulse width
digitalWrite(stepPin, LOW);
delayMicroseconds(300);
}*/
//delay(1000); // Wait 1 second
// Reverse direction
//digitalWrite(dirPin, !digitalRead(dirPin));
}
This version of code is with AccelStepper library and Motor just vibrates without moving, it seems that 7000 steps is maximum everything above it just vibrates...