[Besoin d'aide] Probléme bouton-led-LCD

Bonjour à tous,

voila en résumé le projet que souhaite faire:

Sur un planisphère (1500mm X 1000mm) j'ai disposé 12 leds sur 12 iles où je suis déjà allé.

J'ai mis 12 boutons avec pour chacun, une énigme écrite à la main juste dessus, et je souhaiterais que lorsque l'on clic sur un bouton, on éclaire la bonne led et on écrie sur le lcd le nom de l'ile... J'espère avoir été clair dans ma description sinon n’hésitè pas a me demander plus d'explications

Au niveau electrique c'est ok, je dispose d'une carte arduino mega afin de pouvoir mettre mes 12 boutons sur une entrée et mes 12 leds en sortie. De plus pour gérer le lcd j'utilise la librairie u8g avec seulement 3 fils de donnée.

Au niveau du code je bloque, voila se que j'ai fait pour l'instant mais ça ne marche pas, j'ai la led verte qui clignote quand je clique sur le bouton correspondant... Normal je suppose que lors de ma condition bt_rouge j'étaient ma led verte et lors de ma condition bt_vert je l'allume d'ou le clignotement?!

Pourriez vous m'aider SVP

PS: Après il faudra que je regarde comment ecrire la bonne capitale quand j'ai un bouton appuyé

#include "U8glib.h" // Inclut la librairie U8G
 
//U8GLIB_ST7920_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, U8G_PIN_NONE, U8G_PIN_NONE, 17, 16); // Câblage parallèle
U8GLIB_ST7920_128X64 u8g(13, 11, 10, U8G_PIN_NONE); // Câblage SPI
 
 //Definition des broches
  const int led_rouge = 2;
  const int led_vert = 3;
  
  const int bt_vert = 7;
 const int bt_rouge = 8;
 
 int etat_btrouge; //lecture de l'état des boutons
int etat_btvert;

/* setup() */
void setup(void) {
  u8g.setColorIndex(1); // Affichage en mode N&B (obligatoire vu que l'on a pas un écran couleur)
 
 //Initialisation de la broche led en tant que sortie
  pinMode(led_rouge, OUTPUT); 
  pinMode(led_vert, OUTPUT);
  
  pinMode(bt_rouge, INPUT);
  pinMode(bt_vert, INPUT);
}

/* Fonction permettant de redessiner TOUT l'écran */
void draw(void) {
  u8g.setFont(u8g_font_7x14B); // Utilise la police de caractère standard
u8g.drawStr(15,10,"Tu veux jouer?");
 u8g.setFont(u8g_font_6x12); // Utilise la police de caractère standard
u8g.drawStr(05,25, "Appuie sur un bouton");
u8g.drawStr(20,40,"es-tu sauras qui");
u8g.drawStr(40,55,"je suis!!!");
}

/* loop() */
void loop(void) {
  u8g.firstPage(); // Sélectionne la 1er page mémoire de l'écran
  do {
    draw(); // Redessine tout l'écran
  } while(u8g.nextPage()); // Sélectionne la page mémoire suivante
   
  /* Delai avant de recommencer */
 // delay(1000);
  etat_btrouge = digitalRead(bt_rouge);
  
  if (etat_btrouge == LOW)
  {
  //Allume la led etat bas
  digitalWrite(led_rouge, LOW);
  digitalWrite(led_vert, HIGH);
  }
  
    digitalWrite(led_rouge, HIGH);
    digitalWrite(led_vert, HIGH);
  
  
  etat_btvert = digitalRead(bt_vert);
  if (etat_btvert == LOW)
  {
  //Allume la led etat bas
  digitalWrite(led_vert, LOW);
  digitalWrite(led_rouge, HIGH);
  }

    digitalWrite(led_vert, HIGH);
    digitalWrite(led_rouge, HIGH);
 
}

hello
il te manque juste les else{} dans les conditions de lecture des 2 boutons

if (etat_btvert == LOW)
  {
    //Allume la led etat bas
    digitalWrite(led_vert, LOW);
    digitalWrite(led_rouge, HIGH);
  }
  else
  {
    digitalWrite(led_vert, HIGH);
    digitalWrite(led_rouge, HIGH);
  }