Problème boucle "if" a plusieurs conditions

Et on a demandé si vous aviez des pull down

Il faut des else if à la place des if autrement tu vas (presque) toujours passer dans le dernier cas 'aucune salle'.

Comme dit plus haut il faut des résistances de pulldown (ou INPUT_PULLUP et travailler en logique inverse).

En supposant que ceci a été fait, il y une autre source de problème: toutes les entrées ne basculent pas en même temps (à la vitesse du micro), sans compter les rebonds.
Ce qu'il faut faire:

  • surveiller que l'une des entrées (au moins) à changé d'état
  • quand on détecte un changement d'état, attendre 50ms pour que toutes les entrées soient stabilisées, puis lire les entrées pour afficher la salle.

Alors oui je l'ai vu mais je ne comprend absolument rien aux commandes que tu as taper...
Je suis juste un lycéen..

Oui j ai un pull down parce que j ai mis des résistance sur les différents branchements pour justement que quand par exemple le 1 n'est plus demander il descende a 0 volt et qu il reste pas a un état haut.

Le problème étant que je n ai que certaine valeurs qui s affichent sinon il me met
je suis dans aucune classe
les valeurs qui ne s affichent pas sont le : 1,3,5,7,9
La seul qui fonctionne normalement est la position 10.

Je ne comprend pas. Est ce que les valeurs 2,4,6,8 s'affichent?
Si c'est le cas, vérifies le câblage du bouton 1.

oui elles s affichent mon prof ma parler d une commande Switch qui serait bien pour regrouper les condition if
Et on a vérifier le câblage et y a pas de problème au niveau de ça
mais les valeurs qui ne s’affichent pas peuvent s'afficher...mais une fois tous les 10 ans :confused:

Ca semble bien confirmer que c'est un problème de câblage (faux contact).

L'instruction switch ne semble pas vraiment adaptée pour ce problème.
La meilleure solution me semble être celle que je t'ai donnée au post #8 ou celle de JML au post #13

oui ça marche votre code mais seul problème est que si il reste trop longtemps sur la position il met je suis dans aucune salle... mais je vais me contenter de ça ^^

Oui, alors là c'est vraiment pas glorieux comme réponse....

Le commutateur possède 10 positions, qui sont codées de 0 à 9. Donc le décodage devrait couvrir ces 10 cas là. Or l'état low-low-low-low, zéro, n'est jamais testé par contre l'état high-low-high-low, dix, est testé mais ce commutateur ne peut pas générer cette combinaison.

Autre chose, ces résultats erronés 9 fois sur 10 sont quand même assez bizarres et font vraiment penser à un problème de câblage ou de schéma.
Donc ce serait bien que tu nous présentes un schéma de ton montage et aussi une photo.

Oui, c'est le problème que je t'ai signalé au post #23. Il faut des «else if» à la place des «if»

oui j'ai vu ça Quand j'ai tester ça à marcher. Merci beaucoup a vous et aux autres pour m'avoir aidé ! :slight_smile: