I tried your program everything is fine,
this is my program to test stepper motors
if you still have problems try to remove your dir wire
int cwccw = HIGH; //set to HIGH or LOW for clockwise, counter clockwise
int stp = 3; //connect pin 3 to step
int dir = 4; // connect pin 4 to dir
int Speed = 5000; //lower this number to find your best starting speed
int MaxSpeed = 500; //Lower this number to find your max speed
int accel = 1; //change this number to experiment different acceleration
//with 17HS4401 500=Speed and 100=MaxSpeed was my best result
void setup()
{
pinMode(stp, OUTPUT);
pinMode(dir, OUTPUT);
}
void loop()
{
if (Speed == MaxSpeed)
{
digitalWrite(dir, cwccw);
digitalWrite(stp, HIGH);
delayMicroseconds(Speed);
digitalWrite(stp, LOW);
delayMicroseconds(Speed);
}
if (Speed > MaxSpeed)
{
digitalWrite(dir, cwccw);
Speed = Speed - accel;
digitalWrite(stp, HIGH);
delayMicroseconds(Speed);
digitalWrite(stp, LOW);
delayMicroseconds(Speed);
}
else {
}
}