[Résolu] Bug dans le code ??

Bonjour,

Mon programme a bien avancé, cependant je suis confronté à un bug…
Je n’ai gardé que l’essentiel du code pour représenter le bug.

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4); 



// Variables de la Navigation du Menu----------------------------------------
int Niveau_Menu = 2;                                                       // Incrémentation par le Btn_Enter, Décrémentation par le Btn_Back. Définie le niveau du Menu.
int Niveau_Pause = 0;                                                      // Incrémentation par le Btn_Up, Décrémentation par le Btn_Down. Définie le niveau de l'option Pause du menu.
int Niveau_Interval = 0;                                                   // Incrémentation par le Btn_Up, Décrémentation par le Btn_Down. Définie le niveau de l'option Interval du menu.
int Niveau_Speed = 0;                                                      // Incrémentation par le Btn_Up, Décrémentation par le Btn_Down. Définie le niveau de l'option Speed du menu.
int Niveau_Tspd = 0;                                                       // Incrémentation par le Btn_Up, Décrémentation par le Btn_Down. Définie le niveau de l'option Tspd du menu.



void setup() {
lcd.init();
lcd.backlight();
}



void loop() {
  
              switch (Niveau_Menu)                                                                            // Selon Niveau_Menu, on incrémente la variable qui clignote au LCD
              {
                case 0:               
                    if (Niveau_Pause < 100)                                                                   // Si Niveau_Pause < Limite Maxi
                    {
                    Niveau_Pause++;                                                                           // On incrémente de 1 Niveau_Pause
                    }
                    break;
                case 1:
                    if (Niveau_Interval < 100)                                                                // Si Niveau_Interval < Limite Maxi
                    {
                    Niveau_Interval++;                                                                        // On incrémente de 1 Niveau_Pause
                    }
                    break;
                case 2: 
                    if (Niveau_Speed < 100)                                                                    // Si Niveau_Speed < Limite Maxi
                    {
                    Niveau_Speed++;                                                                            // On incrémente de 1 Niveau_Speed
                    break;  
                    }
                case 3:
                    if (Niveau_Tspd < 100)                                                                     // Si Niveau_Tspd < Limite Maxi
                    {
                    Niveau_Tspd++;                                                                             // On incrémente de 1 Niveau_Tspd
                    }
                    break;
              }


// Affichage LCD
    lcd.setCursor(0,0);
    lcd.print("Duree");
    lcd.print(Niveau_Pause);
    lcd.print("%");
    lcd.setCursor(0,1);
    lcd.print("Duree");
    lcd.print(Niveau_Interval);
    lcd.print("%");
    lcd.setCursor(0,2);
    lcd.print("Duree");
    lcd.print(Niveau_Speed);
    lcd.print("%");
    lcd.setCursor(0,3);
    lcd.print("Duree");
    lcd.print(Niveau_Tspd);
    lcd.print("%");

}

J’ai un switch_case qui sert à incrémenter l’une des variables (Niveau_Pause, Niveau_Interval, Niveau_Speed, Niveau_Tspd) par rapport où l’on se situe dans le menu (variable “Niveau_Menu”).

Le bug se passe quand je suis à la “case 2:” de la fonction “switch (Niveau_Menu)”, si l’on se reporte au code il doit donc incrémenter “Niveau_Speed” de 1 à chaque tour tant qu’il est plus petit que 100.

En pratique il s’incrémente bien de 1 à chaque tour, mais dés que Niveau_Speed arrive à 100, c’est Niveau_Tspd qui s’incrémente. Je ne comprends pas vu que l’on est toujours dans la case 2 de la fonction Switch…?? Il n’y a donc aucune raison que Niveau_Tspd s’incrémente dés que Niveau_Speed est à 100 ??

Pouvez vous m’éclairer je ne comprends pas du tout.

hello
dans case 2 ton accolade devrait etre située avant le break

Merci Beaucoup

Rolalala, Et dire que ça fait 3heures que je planche dessus pour une connerie pareille ^^