Code arduino motor shield V3 avec '4 capteur de pressence 2 moteurs

Bonjours, je suis en classe de terminale S Si et je réalise un projet avec 4 capteur de mouvement et Deux moteur. On souhaite realisé une trepier automatisé pour les tetraplegique et pour cela il faut que le tableau puisse aller au haut, en bas, à droite et à gauche. Problème mon code si dessus me fonctionne pas, il y a que un moteur qui marche .

const int vitesseMotA=3; // Constante pour la broche 3
const int sensMotA=12; // Constante pour la broche 12
const int freinMotA=9; // Constante pour la broche 9
const int vitesseMotB=11;
const int sensMotB=13; // Constante pour la broche 12
const int freinMotB=8;
int presence1=7;// capteur 1
int etatpresence1;
int presence2=6;// capteur 2
int etatpresence2;
int presence3=5;// capteur 3
int etatpresence3;
int presence4=4;// capteur 4
int etatpresence4;
void setup()   { 
Serial.begin(9600); 

// ------- Broches en sorties numériques -------  
 pinMode (vitesseMotA,OUTPUT); // Broche vitesseMotA configurée en sortie
 pinMode (freinMotA,OUTPUT); // Broche freinMotA configurée en sortie
 pinMode (sensMotA,OUTPUT); // Broche sensMotA configurée en sortie
 pinMode (presence1,INPUT); // capteur de pressence1
 pinMode (presence2,INPUT); // capteur de pressence2

  pinMode (vitesseMotB,OUTPUT); // Broche vitesseMotB configurée en sortie
 pinMode (freinMotB,OUTPUT); // Broche freinMotB configurée en sortie
 pinMode (sensMotB,OUTPUT); // Broche sensMotB configurée en sortie
 pinMode (presence3,INPUT); // capteur de pressence3
 pinMode (presence4,INPUT); // capteur de pressence4

// ------- Initialisation des variables utilisées -------  

// ------- Codes d'initialisation utile -------  
digitalWrite(vitesseMotA,LOW); // a l'arret
digitalWrite(sensMotA,LOW); 
digitalWrite(freinMotA,LOW); // frein off 

digitalWrite(vitesseMotB,LOW); // a l'arret
digitalWrite(sensMotB,LOW); 
digitalWrite(freinMotB,LOW); // frein off

}

void loop(){ // debut de la fonction loop()
  
etatpresence1 = digitalRead(presence1);
etatpresence2 = digitalRead(presence2);
etatpresence3 = digitalRead(presence3);
etatpresence4 = digitalRead(presence4);

if (etatpresence1 == HIGH && etatpresence2 == HIGH) {
//arrêt 
digitalWrite(vitesseMotA,LOW); // a l'arret
digitalWrite(sensMotA,LOW); 
digitalWrite(freinMotA,LOW); // frein off 
}
else if (etatpresence1 == HIGH && etatpresence2 == LOW) {
// sens 1
digitalWrite(sensMotA,LOW); // sens 1
digitalWrite(vitesseMotA, HIGH); // vitesse maximale
}
else if (etatpresence1 ==LOW && etatpresence2 ==HIGH) {
// sens 2
digitalWrite(sensMotA,HIGH); // sens 2
digitalWrite(vitesseMotA, HIGH); // vitesse maximale
}
 else if (etatpresence1 == LOW && etatpresence2 == LOW) {
//arrêt
digitalWrite(vitesseMotA,LOW); // a l'arret
digitalWrite(sensMotA,LOW); 
digitalWrite(freinMotA,LOW); // frein off 
}

else if (etatpresence3= HIGH && etatpresence4 == HIGH) {
//arrêt 
digitalWrite(vitesseMotB,LOW); // a l'arret
digitalWrite(sensMotB,LOW); 
digitalWrite(freinMotB,LOW); // frein off 
}
else if (etatpresence3 == HIGH && etatpresence4 == LOW) {
// sens 1
digitalWrite(sensMotB,LOW); // sens 1
digitalWrite(vitesseMotB, HIGH); // vitesse maximale
}
else if (etatpresence3 ==LOW && etatpresence4 ==HIGH) {
// sens 2
digitalWrite(sensMotB,HIGH); // sens 2
digitalWrite(vitesseMotB, HIGH); // vitesse maximale
}
 else if (etatpresence3 == LOW && etatpresence4 == LOW) {
//arrêt
digitalWrite(vitesseMotB,LOW); // a l'arret
digitalWrite(sensMotB,LOW); 
digitalWrite(freinMotB,LOW); // frein off 
}
}

Merci de votre aide.

Vous avez un else en trop:

Si le pilotage du second moteur est indépendant les tests sur etatpresence3 et etatpresence4 doivent se faire indépendamment de de qu'il s'est passé sur le premier moteur, non?