Stepper Moter issue with torque when increasing speed

i am having trouble with my stepper motor and with driver i have DRV8825 driver and stepper motor heres moter description

|Brand|sunrobotics|
|Voltage|2.4 Volts|
|Horsepower|2.8 hp|
|Item Dimensions LxWxH|6.4 x 4.2 x 4.2 Centimeters|
|Item Weight|300 Grams|

  • Current (A): 1.56
  • Resistance (Ohms): 2.8
  • High accuracy of around 3 to 5% a step.

I am using 24 V power supply

when i run motor it is not gattng that much power and it is making so much noise (i am not using microsteps) i wan t midum speed and high torque heres my code

// Define pin connections & motor's steps per revolution
const int dirPin = 2;
const int stepPin = 3;
const int stepsPerRevolution = 20000;

void setup()
{
	// Declare pins as Outputs
	pinMode(stepPin, OUTPUT);
	pinMode(dirPin, OUTPUT);
}
void loop()
{
	// Set motor direction clockwise
	digitalWrite(dirPin, HIGH);

	// Spin motor slowly
	for(int x = 0; x < stepsPerRevolution; x++)
	{
		digitalWrite(stepPin, HIGH);
		delayMicroseconds(2000);
		digitalWrite(stepPin, LOW);
		delayMicroseconds(1000);
	}
	delay(100); // Wait a second
	
	// Set motor direction counterclockwise
	digitalWrite(dirPin, LOW);

	// Spin motor quickly
	for(int x = 0; x < stepsPerRevolution; x++)
	{
		digitalWrite(stepPin, HIGH);
		delayMicroseconds(2000);
		digitalWrite(stepPin, LOW);
		delayMicroseconds(2000);
	}
	delay(100); // Wait a second
}




// Include the AccelStepper Library
#include <AccelStepper.h>

// Define pin connections
const int dirPin = 2;
const int stepPin = 3;

// Define motor interface type
#define motorInterfaceType 1

// Creates an instance
AccelStepper myStepper(motorInterfaceType, stepPin, dirPin);

void setup() {
	// set the maximum speed, acceleration factor,
	// initial speed and the target position
	myStepper.setMaxSpeed(100);
	myStepper.setAcceleration(50);
	myStepper.setSpeed(200);
	myStepper.moveTo(200);
}

void loop() {
	// Change direction once the motor reaches target position
	if (myStepper.distanceToGo() == 0) 
		myStepper.moveTo(-myStepper.currentPosition());

	// Move the motor one step
	myStepper.run();
}

With all stepping motors the torque drops with speed. So at some point the torque is insufficient to turn the motor any more. That is a basic fact of physics.

The basic way to increase the torque at any given speed, is to use a higher voltage, so the current gets into the motor's windings quicker.

This is good, it is a switching regulator which will limit the current through the motor's winding to a set amount. But have you set what this current will be? There is a small pot on the regulator, and the instructions for how to adjust it will be on the manufacturer's web site. In your case you need to set it to 1.56 A.

So what is the current capacity of this power supply?

Current Capacity is 5A and i don't want high speed normal speed is enough

and one more thing my motor is vibrating so much

You know you are permitted to answer more than one of my questions you know.
Like

What is it attached to?
How is it wired up? You sometimes get a lot of vibration when you have the wiring wrong, but normally it will just vibrate and not move. Try swapping over the wiring to one phase and see if that helps. Although stepping motors do make a noise, it can be worse if you hit a resonant point of your mechanics.

sorry for that it is at 0.67 A so around 1.34 A and i am not using any microsteping

right now motor is not attached to any thing

this is my wiring i am using nano

Not sure I understand that. These things are normally specified per phase, so to get 1.56 A, I would set the regulator's current limit to 1.56A. Try doing that (if your driver can stand it) and see if it improves matters.

i have set current but nothing has change, if you have any other suggestions let me know and if you know any other drive in this price range also let me know

i will be running 3 motors

So have you tried swapping over one phase like I said?
Try swapping the red and blue wires.

i haven't try it i will do that