Motor NEMA 17 no invierte el sentido

Buenos días, llevo un par de días probando mi motor nema17 conectado a un Pololu A4988 y a Arduino UNO.

Mi problema es el siguiente, una vez con todo conectado y con el código que dejo en la parte de abajo, el motor únicamente gira en un sentido correctamente, cuando lo invierte, no consigue girar, produciendo una gran vibración. Según la velocidad que ponga en Arduino consigue girar al final o no, y después, vuelve a cambiar el sentido sin problemas, hasta que se repite el bucle y vuelve a cometer el fallo.

Únicamente falla en un sentido, he invertido el código, probado otros pololu y otro motor, y no entiendo dónde puede estar el fallo, ya que en un principio tengo todo bien conectado. He buscado por internet pero nada, no he dado con la solución. Gracias de antemano y un saludo, aquí os dejo el cógido.

#define VELOCIDAD 1000
int steps = 2;
int direccion = 3;
int reset = 9;
int pasos = 3500;

void setup() {                

  pinMode(steps, OUTPUT); 
  pinMode(reset, OUTPUT);     
  pinMode(pasos, OUTPUT);     
  
}

void loop() {
 digitalWrite(reset, LOW);
 delay(100); 
 digitalWrite(reset, HIGH);
 digitalWrite(direccion, HIGH);
         

   for (int i = 0; i<pasos; i++)
   {
     digitalWrite(steps, HIGH);
     digitalWrite(steps, LOW);
     delayMicroseconds(VELOCIDAD);
   }
 
 digitalWrite(reset, LOW);
 delay(100); 
 digitalWrite(reset, HIGH);
 digitalWrite(direccion, LOW);
 
    for (int i = 0; i<pasos; i++)
   {
     digitalWrite(steps, LOW);
     digitalWrite(steps, HIGH);
     delayMicroseconds(VELOCIDAD);
   }
}

que tal si muestras como lo tienes conectado. Si tiene 4 o 6 cables, etc etc, si has probado continuidad entre los bobinados como para identificarlos o si tienes la hoja de datos de modo que nada de lo que he dicho anteriormente hace falta.

Las conexiones del motor están medidas con polímetro y me indica que el cable rojo y azul 1.8 Omnios, y están conectados en el B2 A2 del Pololu. Los cables verde y negro me dan 1.6 Omnios y están conectados al A1 B1. En un sentido gira bien, pero al invertir polaridad vibra de forma inestable y no gira. Al invertir los cables del motor, gira bien en el sentido que antes no lo hacia, y gira mal en el sentido que antes giraba bien.

El Pololu está conectado el DIR al pin 2, y STEP al pin 5. RESET está conectado al pin 9 de Arduino. Medido el consumo del motor está ajustado a 250 mA.

Un saludo y gracias por la atención.

No tienes otro Pololu no? Luce como que una rama del puente H estaría dañada.
Puedes ver el comportamiento del puente en un Osciloscopio?
Si no. Intenta poner el motor en el sentido que funciona bien
Mide la tensión en DIR.
MIde la tensión en cada uno de los extremos de la bobina, anotalos.

Luego modifca el sketch y hazlo girar en el sentido opuesto. Sin cambiar bobinas.
Mide la tensión en DIR.
MIde la tensión en cada uno de los extremos de la bobina, anotalos.

Y publica los valores acá.
Veremos si ayuda.

Cuando el motor gira en el sentido que funciona bien;
La tensión en DIR es 5 V
La tensión en cada uno de los extremos de la bobina es 7.3 V

Cuando el motor gira en el sentido que funciona mal;
La tensión en DIR es 2.2 V
La tensión en cada uno de los extremos de la bobina es 5.3 V

Llevo ya dos pololus probados y con los dos pasa exactamente lo mismo. Voy a probar un tercero ahora.

EDITO: Acabo de probar una resistencia de 100k desde GND a DIR consiguiendo los siguientes valores:
Valor high = 3.7 V
Valor Low = 0.19 V

Funcionando el motor perfectamente. ¿A qué es debido tener que poner una resistencia para conseguir que el valor LOW sea el adecuado?

Bien.. ese 2.2V no me gusta mucho para un valor que le indique al POLOLU que gire en sentido opuesto.
Porque como me imaginaba, DIR no estaba recibiendo bien el nivel bajo que requiere.

Lo he solucionado metiendo una resistencia de 200k desde GND a DIR y me da:
Valor high = 4.7 V
Valor Low = 0.09 V

De momento lo voy a montar así, que veo que funciona bien. ¿Parece ser problema de Arduino, no?

Muchas gracias por la atención y la información.