[DEBUTANT] LEDS ne prennent pas en compte mon bouton-poussoir (RESOLU)

Salut tout le mode, j’ai un problème avec mon montage arduino : en fait je voudrais appuyer sur un bouton-poussoir pour allumer 3 leds (je suis débutant oui xD)
Vous pouvez voir mon montage sur l’image jointe :

et mon code est le suivant :

int EtatBouton = 0;

void setup() {
  pinMode(2,INPUT); //Bouton
  pinMode(8,OUTPUT); //LED rouge
  pinMode(9,OUTPUT); //LED blanche
  pinMode(10,OUTPUT); //LED bleu
}

void loop(){
  EtatBouton = digitalRead(2);

  if(EtatBouton == HIGH){
    digitalWrite(8,HIGH);
    digitalWrite(9,HIGH);
    digitalWrite(10,HIGH);
   }

   else{
    digitalWrite(8,LOW);
    digitalWrite(9,LOW);
    digitalWrite(10,LOW);


   }
}

Tout se passe bien sur simulateur mais sur mon montage ça ne fonctionne pas et les LEDS restent allumées et même quand je débranche le bouton elles restent allumées comme si elles n’avaient aucun rapport avec le bouton

Donc je viens vers vous pour vous demander de l’aide, merci d’avance :slight_smile:

publiez le montage. vous avez bien mis des résistances de limitation de courant pour les LEDs ?

vous avez bien mis le bouton en pin 2 et pas A2 ?

vous avez bien câblé le bouton ? (en diagonale si c'est un bouton momentané qui a 4 pattes)

Bonjour,

Et j’ajouterai, est ce qu’il y a bien une résistance de pulldown?

Utilises plutôt INPUT_PULLUP et fais le test à l’envers (état LOW actif).

Merci de vos réponses :slight_smile: ,
mon montage IRL est le suivant :
montage IRL

Les 3 résistances pour les LEDS sont des 220Ohms et la résistance pour le bouton est une 10K Ohms (bien sûr j'ai mis ces valeurs sur le simulateur)

Et qu'entends tu par "INPUT_PULLUP" ? je remplace INPUT dans le setup par "INPUT_PULLUP" ?

Au passage je remet le lien du montage simulateur car il n'a pas l'air d'apparaître dans mon premier message :
Montage simulateur

le montage:

vous avez un bouton à 4 pin, elles sont connectées entre elles 2 à 2. si vous l’avez mal enfiché vous avez en fait une connexion constante… c’est pour cela qu’on câble toujours en diagonal, comme ça vous êtes sûr de ne pas tomber sur les pins qui sont connectées entre elles

Et qu’entends tu par “INPUT_PULLUP” ? je remplace INPUT dans le setup par “INPUT_PULLUP” ?

oui et pas besoin de la résistance pour le bouton, on câble PIN ----- bouton ---- GND. mais c’est LOW quand le bouton est appuyé

Donc j'enlève ma résistance au niveau de mon bouton et dans mon code je remplace HIGH par LOW ?

commencez par vérifier le câblage du bouton, déplacez le fil rouge

(sinon c'est presque cela, il faut mettre à GND et pas à 5V un des côté du bouton)

Du coup j'ai remplacé INPUT par INPUT_PULLUP et mis LOW au lieu de HIGH comme tu m'as dit :

int EtatBouton = 0;

void setup() {
  pinMode(2,INPUT_PULLUP); //Bouton
  pinMode(8,OUTPUT); //LED rouge
  pinMode(9,OUTPUT); //LED blanche
  pinMode(10,OUTPUT); //LED bleu
}

void loop(){
  EtatBouton = digitalRead(2);

  if(EtatBouton == LOW){
    digitalWrite(8,HIGH);
    digitalWrite(9,HIGH);
    digitalWrite(10,HIGH);
   }

   else{
    digitalWrite(8,LOW);
    digitalWrite(9,LOW);
    digitalWrite(10,LOW);


   }
}

Et j'ai enlevé la résistance du bouton et passé le fil de 5V derrière le bouton comme sur ton image :

Montage IRL v2

Les LEDS sont éteintes mais rien ne se passe quand j'appuie sur le bouton :confused:

j'ai aussi dit de mettre à GND pas à 5V l'autre côté du bouton, non ? :slight_smile:

donc le fil rouge relié a 5V je le passe sur GND ? ou je rajoute un fil ? tu pourrais me faire un schéma rapide stp j'ai du mal à comprendre :confused:

Dans la photo on voit que le fil du bouton est branché sur le pin 5 et dans le code devrait être sur le pin 2

Ah oui c'est ma faute j'avais changé en 5 mais j'ai oublié de repasser le code en 5 donc je vais le remettre en 2 je vous redis

Pour les fils je laisse comme ça?

Bonjour,
verifie la continuite des liaisons bord de carte (bleu et rouge)
Elles sont souvent interrompues au milieu comme la serigraphie le laisse penser.
4 petits cavaliers devraient resoudre le probleme ou, comme je l'ai fait, souder un bout de fil a l'envers du breadboard.
Jacques

Cameron41:
Pour les fils je laisse comme ça?

comme dit plus haut:

Pin 2 --- bouton ---- GND

en sortant en croisé pour être sûr d'avoir des pins correctes

et oui, très bon point (et erreur fréquente) de JMe87 --> votre breadboard n'est pas continue au milieu, donc le GND de droite et celui de gauche ne sont pas connectés --> mettez 4 petits fils

Je vous remercie infiniment ça a fonctionné

Du coup c'était en fait dû a la continuité au milieu de la breadbord car j'ai réessayé mon premier montage ainsi que mon premier code (avec INPUT) et tout fonctionne normalement :slight_smile:

Mais le montage proposé par J-M-L fonctionne tout autant (avec dans le code INPUT_PULLUP au lieu de INPUT)

vous aviez eu de la chance en branchant le bouton ou vous aviez testé ? (c'est vite fait de se tromper, c'est pour cela que je câble toujours en croisé)

Comment ça avoir de la chance en branchant le bouton ? En fait votre montage avec les câbles croisés fonctionnait, mais en réessayant mon montage initial je me suis rendu compte que mon problème était du à un problème de continuité au milieu de la breadboard.

Cameron41:
Comment ça avoir de la chance en branchant le bouton ? En fait votre montage avec les câbles croisés fonctionnait, mais en réessayant mon montage initial je me suis rendu compte que mon problème était du à un problème de continuité au milieu de la breadboard.

dans votre montage initial vous aviez branché vos 2 fils sur le même côté du bouton, sans croiser.

En pratique c'est difficile de dire en regardant juste le boitier quelles sont les pins connectées entre elles (elles sont connectées deux à deux)
bouton.png
vous avez eu du bol que ces deux broches n'étaient pas connectées au sein du bouton. quand on câble en croisant, on est sûr de ne pas avoir la même broche.

bouton.png