Coucou à tous !
Je me lance dans la programmation arduino.
J'ai donc un arduino uno R3, avec une shield lcd + boutons.
J'ai juste un petit problème que je n'arrive pas à comprendre.
La fonction void loop, et-elle bien toujours exécuter ? on dirait qu'elle arrête de marcher dès que je suis dans le void menu.
Voila mon code, pour le moment je cherche a crée un menu simple.
Merci de votre aide !!!!!Code:// include the library code: #include <LiquidCrystal.h> // Lcd + pinout LiquidCrystal lcd(8, 9, 4, 5, 6, 7); #define AnalogBtnPin A0 int AnalogBtn =0; int ButtonUP =0; int ButtonDOWN =0; int ButtonLEFT =0; int ButtonRIGHT =0; int ButtonSELECT =0; void setup() { lcd.begin(16, 2); lcd.setCursor(4, 0); lcd.print("Bienvenue"); lcd.setCursor(5, 1); lcd.print("Welcome"); delay(2000); lcd.clear(); menu(); // renvoie vers menu } void loop() { // Lectur boutons AnalogBtn = analogRead(AnalogBtnPin); if(AnalogBtn >= 90 && AnalogBtn <= 110) { ButtonUP +=1;} if(AnalogBtn >= 247 && AnalogBtn <= 267) {ButtonDOWN +=1;} if(AnalogBtn >= 399 && AnalogBtn <= 419) {ButtonLEFT +=1;} if(AnalogBtn >= 0 && AnalogBtn <= 10) { ButtonRIGHT +=1;} if(AnalogBtn >= 630 && AnalogBtn <= 650) { ButtonSELECT +=1;} if (AnalogBtn == 1023) {lcd.clear(); AnalogBtn =0; ButtonUP =0; ButtonDOWN =0; ButtonLEFT =0; ButtonRIGHT =0; ButtonSELECT =0;} /* // Test boutons if (ButtonUP == 1 ) {lcd.setCursor(5,1); lcd.print("UP");} if (ButtonDOWN == 1 ) {lcd.setCursor(5,1); lcd.print("DOWN");} if (ButtonLEFT == 1 ) {lcd.setCursor(5,1); lcd.print("LEFT");} if (ButtonRIGHT == 1 ) {lcd.setCursor(5,1); lcd.print("RIGHT");} if (ButtonSELECT == 1 ) {menu();} */ } //fin loop void menu(){ lcd.clear(); lcd.setCursor(6, 0 ); lcd.write("MENU"); delay (1500); lcd.clear(); while (1) { lcd.setCursor(0, 0 );lcd.write("Choix 1 --> UP"); lcd.setCursor(0, 1 );lcd.write("Choix 2 --> Down"); if (ButtonUP == 1 ) {choix1();} //renvoie vers choix1 si boutons UP appuyé if (ButtonDOWN == 1 ){choix2();} //renvoie vers choix2 si boutons DOWN appuyé } lcd.clear(); } void choix1(){ lcd.clear(); lcd.setCursor(6, 0 ); lcd.write("Choix 1"); } void choix2(){ lcd.clear(); lcd.setCursor(6, 0 ); lcd.write("Choix 2"); }
-----