Presque tout bon ...
Mais
a) tu as toujours des variables globales alors que tu n'en as pas besoin.... => il faut prendre l'habitude dès le départ d'en avoir quasiment pas =) surtout que " contact buté est affiché mais même pas modifié dans ton code ^^
b ) ensuite sur le principe il y a un petit truc qui ne va pas par rapport à ce que j'attendais à savoir :
"
Elle teste le bouton et si le bouton est appuyé alors
afficher Initialisation en cours " et attendre en continu que la butée soit appuyée
Quand la butée est enfin appuyée => Afficher "Initialisation terminée " .
Fin si
Fin de la fonction
"
du coup je te propose ce code à tester pour voir la différence =)
void initMoteur () { bool BoutonInit = digitalRead(PinBoutonInit); if (BoutonInit == 0) { Serial.println (" Initialisation en cours " ); while (digitalRead(PinContactButé) == 1) { // on ne fait rien en attendant ... } Serial.println ("Initialisation terminée " ); } }
Pour ce qui est de ton problème avec la pull up tu peux te faire des fonctions du genre
bool appuisBoutonInit() { return !digitalRead(PinBoutonInit); }
Ainsi tu pourras faire
if( appuisBoutonInit() )
pour un if quand le bouton est appuyé
ou
if ( !appuisBoutonInit() )
pour un if quand le bouton n'est pas appuyé ...
Je te laisse proposer une dernière version de code avec l'utilisation des fonctions comme " solution " pour augmenter la lisibilité du code ? =) Et ensuite on passe soit à l'affichage sur l'écran LCD, soit au moteur, choisit en un des deux =)