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 =)














