Presentación y duda.

Hola, buenas noches a todos. Me llamo Toño y estoy ,o al menos lo intento, aprendiendo a realizar por mi mismo pequeños proyectos.
Soy nuevo en esto del Arduino, disculpad si mis dudas son chorradas, pero de errores y de preguntar se aprende.

Tengo este sketch, y la duda me surge porque no entiendo donde va el pin 4 en la placa easydriver (es la primera que poseo), cuando quiero mover un pequeño motor lo coloco en el MS1, y empieza a funcionar, pero el motor emite un pitido leve pero constante.
No creo que sea normal. Por eso quisiera que alguien me dijera si estoy haciéndolo correctamente o este pin va en otro sitio del modulo easydriver.

int DIR_PIN = 2;
int STEP_PIN = 3;
int POWER_PIN = 4;
int FilterPos[5] = {0, 1360, 2710, 4065, 5410};

int CurrentFilter = 0; //Holds the Current Filter position
int Direction = HIGH;

long NoOfSteps = 0; //required number of steps to make
long Position = 0; //used to keep track of the current motorposition

String cmdString;
String cmd;
String arg;

void setup() {

Serial.begin(9600);
Serial.flush();
pinMode(DIR_PIN, OUTPUT);
pinMode(STEP_PIN, OUTPUT);
pinMode(POWER_PIN, OUTPUT);

digitalWrite(POWER_PIN, LOW);

}
void loop() {

String cmd;
if (Serial.available() > 0)
{
Serial.flush();
cmdString=Serial.readStringUntil('#'); // Read the serial buffer until we encounter #
cmd = cmdString.substring(0,1); // The driver will pass all 1-character commands
arg = cmdString.substring(1); // Everything else will be the position or distance to move.

if (cmd=="m")
{
// Serial.print("Who asks for a return value before completion?");
// Serial.println("#");
NoOfSteps = FilterPos[CurrentFilter] - FilterPos[arg.toInt()];
if (NoOfSteps < 0)
{
Direction = LOW;
EasyDriverStep(Direction, abs(NoOfSteps));
Position = Position - NoOfSteps;
}
else
{
Direction = HIGH;
EasyDriverStep(Direction, abs(NoOfSteps));
Position = Position - NoOfSteps;
}

CurrentFilter = arg.toInt(); //Set CurrentFilter to the position we just moved to
Serial.print(Position);
Serial.println("#");
}

else if (cmd=="n")
{
NoOfSteps = arg.toInt();

if (NoOfSteps < 0)
{
Direction = HIGH;
EasyDriverStep(Direction, abs(NoOfSteps));
Position = Position + NoOfSteps;
}
else
{
Direction = LOW;
EasyDriverStep(Direction, abs(NoOfSteps));
Position = Position + NoOfSteps;
}
Serial.print(Position);
Serial.println("#");
}

else if (cmd=="g")
{
Serial.print(CurrentFilter);
Serial.println("#");
}

}
}

void EasyDriverStep(int dir,long steps){

digitalWrite(DIR_PIN,dir);
delay(100);
for(int i=0;i<steps;i++){
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(1000);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(1000);

if (Serial.available() > 0)
{
cmdString=Serial.readStringUntil('#'); // Read the serial buffer until we encounter #
cmd = cmdString.substring(0,1); // The driver will pass all 1-character commands
if (cmd=="g")
{
Serial.print(-1);
Serial.println("#");
}
else
{
Serial.print(999);
Serial.println("#");
}
}
}
}

Gracias de antemano y saludos a todos.