Appuie bouton poussoir, problème

Bonjour, je débute sur arduino et j'ai un problème, dans mon dispositif j'ai trois led. Je veux que la led A soit dans l'état allumé en premier, lorsque j'appui sur le bouton A, je veux que la led B s'allume en éteignant la led A et que si dans un temps impartit on appuie pas sur le bouton pour allumer la led B
(5 secondes) celle ci s'éteint en rallumant la led . Ci joint le code que j'utilise.

ARDUINO_Bouton.ino (2.04 KB)

Une remarque pour simplifier ton code :

Tu as souvent des lignes comme

     if(xx==1) xx=0;
     else      xx=1;

xx est un booléen (ou un int qui ne prend que 0 et 1 comme valeurs). Ça peut s'écrire plus simplement

xx = 1 - xx;

Au passage, lignes 94-95, il y a une erreur : ok20 à la place de ok2

      if(ok2==1) ok2=0;
      else            ok20=1;

J'en prend note merci et l'erreur du ok20 est modifier. :slight_smile:

Il y a plusieurs problèmes avec ton message :

  • Tu parles de 3 leds mais tu ne décris que le comportement de 2 leds
  • Tu parles des leds A & B, mais dans ton code c'est led, led1 et led2
  • Tu ne gères pas le rebond des boutons (je te suggère d'utiliser la bibliothèque bounce2 et de déclarer tes boutons en INPUT_PULLUP, voire ici, si nécessaire)
  • Je ne vois pas de gestion du temps (les 5 secondes dont tu parles).
    En final, je ne sais pas ce que tu veux : qu'on vérifie ton code ou qu'on ajoute quelque chose ? Si oui, quoi ?
    Du coup, pas facile de t'aider...

Commence par exprimer ce que tu attends, et fournis un code "propre" (bien indenté, grâce à la fonction d'auto-indentation de l'IDE --> CTRL T, simplifié notamment enlève les accolades non nécessaires et les lignes blanches qui ne servent pas, etc)

Accolades : un bloc if dans lequel il n'y a qu'une seule instruction n'a pas besoin d'accolades. Exemple :

if (x == 0) {
   y = y+1;
}

peut s'écrire

if (x == 0) ++y;

ce qui est plus facile à lire (notamment sur un smartphone, ce qui est le cas de certains ici).