Controller 2 NEMA à heures fixes (MEGA 2560 + Ramps 1.4 + A4988)

Bonjour à tous et à toutes,

je suis plus que débutant en programmation mais cela m’intéresse beaucoup.
J’ai commencé à réaliser de la domotique avec un Rasperry avec succés mais avec beaucoup de recherches.

Aujourd’hui je souhaite réaliser la commande de pompe péristaltiques. Avant de venir poser beaucoup de questions bêtes, je me suis documenté autant que je pouvais pour m’initier à l’Arduino notamment à travers ce type de tutoriel pour débutant :

https://openclassrooms.com/fr/courses/2778161-programmez-vos-premiers-montages-avec-arduino

J’ai donc (je pense) compris certaines notions de base et j’ai commencé quelques montages à l’aide de matériels récupérés d’une ancienne imprimante 3D en pièces détachées dont :
Un Arduino méga 2560
Un ramps 1.4
Un shield A4988
Des NEMA 177
Une alimentation 12V de PC

J’arrive déjà à faire tourner un moteur en faisant varier la vitesse avec la fonction Delay() tel que :

#define X_STEP_PIN         54
#define X_DIR_PIN          55
#define X_ENABLE_PIN       38
#define X_MIN_PIN           3
#define X_MAX_PIN           2

void setup() {

pinMode(X_STEP_PIN  , OUTPUT);
pinMode(X_DIR_PIN    , OUTPUT);
pinMode(X_ENABLE_PIN    , OUTPUT);

digitalWrite(X_ENABLE_PIN    , LOW);

}
void loop () 
{

digitalWrite(X_DIR_PIN, HIGH);
delayMicroseconds(50);
digitalWrite(X_DIR_PIN, LOW);
delayMicroseconds(50);
digitalWrite(X_STEP_PIN, HIGH); 
delayMicroseconds(50);  
digitalWrite(X_STEP_PIN, LOW);

}

PREMIERE QUESTION :
Mais le problème c est pour faire tourner un second moteur donc je voudrais utiliser la fonction Millis () qui semble plus appropriée mais que je maîtrise mal. Comment puis je intégrer cette fonction convenablement?
J’ai essayé ceci mais le moteur change de sens et je ne peux plus contrôler de fait la vitesse :

#define X_STEP_PIN         54
#define X_DIR_PIN          55
#define X_ENABLE_PIN       38
#define X_MIN_PIN           3
#define X_MAX_PIN           2

void setup() {

pinMode(X_STEP_PIN  , OUTPUT);
pinMode(X_DIR_PIN    , OUTPUT);
pinMode(X_ENABLE_PIN    , OUTPUT);

digitalWrite(X_ENABLE_PIN    , LOW);

}
void loop () 
{
if (millis() %10000 <5000) {
digitalWrite(X_DIR_PIN, HIGH);

}

else {
digitalWrite(X_DIR_PIN, LOW);
}
digitalWrite(X_STEP_PIN, HIGH);

delay(1);

digitalWrite(X_STEP_PIN    , LOW);
}

DEUXIEME QUESTION :
J’aimerai intégrer une programmation journalière, il semblerait que je dois passer par un module RTC mais dans ce cas comment l’intégrer au RAMPS 1.4 convenablement?

D’avance j’insiste sur le fait que j’ai parcouru pendant des heures bon nombres de forums, j’ai essayé beaucoup de choses, j’ai essayé de comprendre mais c’est un domaine vaste alors je demande de l’aide pour correctement m’aiguiller dés le début.

Merci d’avance pour votre participation.

Bonjour,

visiblement mon sujet n'attise pas les foules ;) Je continue en parallèle mes recherches et essais. Toute participation sera la bienvenue. Bonne journée...en confinement ;)