control sens de rotation moteur brushless avec relais et arduino

bonjour,
je poste mon problème car depuis quelques jours je n'arrive pas à trouver une solution pour mon soucis pour l'utilisation d'un relais.
j'essaie de commander deux roues d'un rebot avec un joystick et une carte Arduino méga ADK, pour les commande de vitesse CA se fait a travers un contrôleur a multifonction ( voir la figure1), mais ce type de contrôleur ne permets pas d'inverser le sens d'orientation des roues , sauf si on court-circuite le fil vert (reset) au niveau du contrôleur, puis on enlève le court-circuit , le sens s'inverse, donc je me suis dit si j'utilise un relais qui court-circuite les deux fils puis les relâche je peut changer de sens et oui ça à marcher sauf que le relais ne s'arrête plus, et la boucle void loop ne s'arrête plus d'actionner le relais , je n'ai pas su comment faire pour le relais s'active une seule fois puis s'arrête, ainsi le changement vers marche avant aussi se fait une seule fois aussi.
s'il vous plait mon tuteur est malade en ce moment je ne trouve plus qui peut m'aider à régler ce soucis.
merci à vous

marche_arriere.ino (936 Bytes)

quand vous ne voulez faire une chose qu'une seule fois, on définit une variable booléenne qu'on met à vrai une fois l'action effectuée

bool sensInverseFait = false; // variable globale ou static si dans une fonction

....
if ( ! sensInverseFait) {
  // inverser le sens ici
  ...
  ... 
  sensInverseFait = true;
} else {
  // on l'a déjà fait
  ...
}

vous aviez demandé à ce que ça ne se fasse qu'une seule fois... si vous voulez que ça se fasse plusieurs fois, au moment de la détection de changement de sens il faut remettre la variable à faux.