Bonsoir à tous
Je suppose qu'il n'y a pas de pull-down sur l'entrée. Donc l'entrée reste à High que le bouton soit pressé ou pas.
Le mieux c'est de brancher le bouton sur la masse au lieu de VCC, d'activer la pull-up interne et d'inverser le test.
Tu commences, tu devrais faire un peu mieux attention à la qualité du code!
buttonState = digitalRead(boutonp);
devrait être placé une seul fois juste avant le if.
Et vu que l'état de l'entrée n'est utilisé que pour le if, les lignes peuvent être combinées:
if (digitalRead(boutonp) == LOW)
le type doit être un boolean ou un int sur 8 bits (char, unsigned char ou byte), histoire de ne pas calculé sur 4 octets. Comme la valeur sera écrite avant la première lecture (en prenant en compte ma précédente remarque) l'affectation n'est pas nécessaire ici.
En l'état du code ces lignes ne servent à rien puisque temps n'est pas utilisé.
Dans le cas où on l'utilise, ces lignes devraient être retirée de la structure if et placée une seule fois après la structure if.
Au sujet de la remarque d'Auteur, parfaitement pertinente, je suppose que le compilo interprète le test comme étant l'instruction à effectuer en cas de else, puis le bloc else est effectué systématiquement. Normalement il devrait y avoir au moins un warning à la compilation.
Et encore le bloc du else, n'est pas indenté proprement, avec les trois dernières lignes qui sont pas assez décalée.
Bonne nuit
Delias
Partager