Duda con digitalWrite();

Hola a todos, soy nuevo en este foro y también en la programación con arduino. Bueno estoy trabajando en un proyecto y quiero hacer funcionar tres motores paso a paso bipolares con el arduino, por lo cuál he estado realizando diversas pruebas, desde la librería stepper, hasta llegar a hacerlo con digitalWrite() para ir activando las bobinas secuencialmente con delays. El problema es que si lo hago de esta última forma, al probar los tres motores al mismo tiempo, estos presentan grandes vibraciones, mientras que si solo dejo funcionando uno de ellos no hay ningún problema; a lo que viene mi pregunta, ¿se puede usar la función digitalWrite() más de una vez al mismo tiempo? porque cuando lo hago mas de una vez tal y como ven en el código que les presento, me pasa el problema de las vibraciones.

int ENX = 5;
int ENY = 4;
int ENZ = 3;
int mSecPaso=2000;

void setup()
{
  //Enables
  pinMode(ENX, OUTPUT);
  pinMode(ENY, OUTPUT);
  pinMode(ENZ, OUTPUT);
  
  //Salidas motor 1
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  
  //Salidas motor 2
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  
  //Salidas motor 3
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  
  digitalWrite(ENX, HIGH);
  digitalWrite(ENY, LOW);
  digitalWrite(ENZ, LOW);
  
  
 
}

void loop()
{

 digitalWrite(8, LOW);
 digitalWrite(9, LOW);
 delayMicroseconds(mSecPaso);
 digitalWrite(8, HIGH);
 digitalWrite(9, LOW);
 delayMicroseconds(mSecPaso);
 digitalWrite(8, HIGH);
 digitalWrite(9, HIGH);
 delayMicroseconds(mSecPaso);
 digitalWrite(8, LOW);
 digitalWrite(9, HIGH);
 delayMicroseconds(mSecPaso);


 //Motor 2 
 /*
 digitalWrite(10, LOW);
 digitalWrite(11, LOW);
 delayMicroseconds(mSecPaso);
 digitalWrite(10, HIGH);
 digitalWrite(11, LOW);
 delayMicroseconds(mSecPaso);
 digitalWrite(10, HIGH);
 digitalWrite(11, HIGH);
 delayMicroseconds(mSecPaso);
 digitalWrite(10, LOW);
 digitalWrite(11, HIGH);
 delayMicroseconds(mSecPaso);

 //digitalWrite(ENZ, HIGH);
 //Motor 3 
 digitalWrite(6, LOW);
 digitalWrite(7, LOW);
 delayMicroseconds(mSecPaso);
 digitalWrite(6, HIGH);
 digitalWrite(7, LOW);
 delayMicroseconds(mSecPaso);
 digitalWrite(6, HIGH);
 digitalWrite(7, HIGH);
 delayMicroseconds(mSecPaso);
 digitalWrite(6, LOW);
 digitalWrite(7, HIGH);
 delayMicroseconds(mSecPaso);
*/
 
}

Moderator edit:
</mark> <mark>[code]</mark> <mark>

</mark> <mark>[/code]</mark> <mark>
tags added.

Avisadme tipo de motor de su uso con la hoja de respeto. Para el control es posible utilizando Volver al controlador del motor. , También comparte ¿Qué tipo de controlador que está utilizando??? Dependerá de pinout podamos qué puerto se puede utilizar. Por lo general, utilizamos digitalWrite ()

Hola muchas gracias por responder tan rápido, el driver que estoy utilizando es el L298N, el circuito es este (utilizo tres de estos circuitos para controlar cada uno de los tres motores):

.

Los motores que uso son NEMA 57HS13 y sus especificaciones son estas: - Step angle: 1.8 deg - Step per revolution: 200 - Phases: 2 - No. wires: 4 - Current: 2.8A - Holding Torque: 1.3 N.M (184oz*in) - Single shaft, 6.35mm - Inductance: 2.1 mH - Phase resistance: 1.0 ohms - Detente torque: 700 gcm - Rotor Inertia: 460 g-cm2 - Weight: 1.0KG (2.2lb) - Length: 76mm