Erreurs difficile à comprendre..., surtout quand on débute

Bonjour, je ne comprend pas les erreurs que m’affichent Arduino quand je compile mon programme. (Si il y a des fonctions qui ne sont pas déclarées c’est normal,ce n’est qu’une partie d’un programme plus gros) C’est les fonctions pour un écran et différents menus et sous-options. Quand on appuie sur 1 bouton poussoir, cela change le menu principal (3 menus), et sur un 2ème, cela change la sous-option en fonction du menu dans lequel on se trouve. Si vous voyez quelque chose qui ne fait pas de sens, n’hésitez pas à le dire.

#include <LiquidCrystal.h> // on importe la bibliothèque pour LCD

LiquidCrystal monEcran(12, 11, 5, 4, 3, 2); // on crée un objet LCD nommé monEcran en mode 4 bits

const byte bout1 = 8; //constante du pin bouton 1
const byte bout2 = 9; //constante du pin bouton 2
const byte buzzer = 4;    // Broche BUZZER

int posMenu[3] = {0, 0, 0}; //variable de position dans menu principal

int posSousMenu[2] = {0, 0}; // tableau pour stocker les positions de chaque sous-menu

int modeES = 0;
int modeCB = 0;
int modeDG = 0;

String ligne1[3] = {"Droite/Gauche :        ","Entrée/Sortie :        ","Créneau/Bataille :    "}; //tableau de titre du menu principal

String ligne2 = "Droite";//chaîne pour la ligne 2 (dépend du menu 1)




void setup() {

  /* Initialise le port série */
  Serial.begin(115200);
 
 pinMode(bout1, INPUT);

  pinMode(bout2, INPUT);

  monEcran.begin(16, 2); //on initialise la communication avec 16 colonnes et 2 lignes

  monEcran.clear(); // on efface l'écran

}

void loop() {
 

}



//fonction de navigation dans le menu

void navigation() {

  //création de variables d'état pour les boutons

  boolean etatBout1 = digitalRead(bout1);

  boolean etatBout2 = digitalRead(bout2);

  //Boucle pour naviguer dans les menus

  if (etatBout1 || etatBout2) { //si l'un des deux boutons est appuyé

    if (etatBout1) { // si bouton 1

      posMenu = (posMenu + 1) % 3; //on change le menu principal (3 positions)

    

    if (etatBout2) { // si bouton 2

      switch (posMenu) { //l'action dépend du menu 1

        case 0: //si menu DG

          modeDG = (modeDG + 1) % 2; 

          break;

        case 1 : //si menu ES

          modeES = (modeES + 1) % 2; 

          break;

        case 2 : // si menu CB

          modeCB = (modeCB + 1) % 2;  
        

         

      }

    }


    delay(200); //attente pour éviter les répétitions

  }

}
}


//fonction de rafraîchissement de l'écran LCD

void affichage() {

  monEcran.setCursor(0, 0); // on positionne le curseur en haut à gauche

  monEcran.print(ligne1[posMenu]); // on écrit le menu de la ligne 1

  monEcran.setCursor(0, 1); // on passe à la ligne suivante

 

  String mDG[2] = {

    "Droite             ",

    "Gauche           ",

  };

   String mES[2] = {
    

    "Entrée            ",

    "Sortie          ",
   };

   String mCB[2] = {

    "Créneau            ",

    "Bataille          ",

   };

    switch (posMenu) { // en fonction du menu 1

    case 0: // si menu  Droite ou gauche

      ligne2 = mDG[modeDG]; //titre pris dans tableau mDG

      break;

    case 1: // si menu entrée ou sortie

      ligne2 = mES[modeES]; // appel de la construction de l'affichage

      break;

    case 2: 

      ligne2 = mCB[modeCB];

      break;

  }

  monEcran.print(ligne2); // on affiche la ligne du menu 2 

  }

  

 

void affichageavancerreculer() {
  
  monEcran.setCursor(0, 0);
  monEcran.print("Stationnement possible, avancez");
  delayMicroseconds(2000000);
  monEcran.clear ();
  monEcran.setCursor(0, 0);
  monEcran.print("Stationnement possible, reculez");
  delay(5000);
  monEcran.clear();
  monEcran.setCursor(0,0);
  monEcran.print("Stationnement en cours");
  
  if (modeDG == 0) {
    volantdc ();
    if (modeDG == 1) {
      volantgc (); 
    }
  }
    
  
}

void affichagetermine() {
  tone(buzzer,1000);
  delay(1000);
  noTone(buzzer);
  monEcran.clear ();
  monEcran.setCursor(0,0);
  monEcran.print("Stationnement terminé");
}

hello

"Bonjour, je ne comprend pas les erreurs que m'affichent Arduino quand je compile mon programme."

Bonjour, moi je ne les vois pas.

tu as des erreurs à la compilation, tu nous donnes un bout de prg et pas de schéma

il nous faut au moins les messages d'erreur

et mets ton IDE en mode bavard:

"fichiers" "préférences" et coche la case "afficher les résultats détaillés pendant la compilation"

tu auras beaucoup d'informations dans la partie noire de la fenêtre de l'IDE.
c'est le début de la liste des messages qui sera à poster. car une erreur peut en provoquer de nombreuses ensuite. il faut donc commencer à solutionner les problèmes par le début

bonjour,
sans les erreurs détaillées, plus difficile de répondre

Envoie le programme complet mais au premier coup d' œil il semble manquer pas mal de { et de }.

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\ROG\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10805 -build-path C:\Users\ROG\AppData\Local\Temp\arduino_build_682418 -warnings=none -build-cache C:\Users\ROG\AppData\Local\Temp\arduino_cache_534322 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose G:\SI\Projet SI\Programme\Programme.ino\Programme2\Ecran\Ecran.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\ROG\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10805 -build-path C:\Users\ROG\AppData\Local\Temp\arduino_build_682418 -warnings=none -build-cache C:\Users\ROG\AppData\Local\Temp\arduino_cache_534322 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose G:\SI\Projet SI\Programme\Programme.ino\Programme2\Ecran\Ecran.ino
Using board 'uno' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\ROG\AppData\Local\Temp\arduino_build_682418\sketch\Ecran.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Users\ROG\AppData\Local\Temp\arduino_build_682418\sketch\Ecran.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src\LiquidCrystal.cpp" -o "nul"
Generating function prototypes...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Users\ROG\AppData\Local\Temp\arduino_build_682418\sketch\Ecran.ino.cpp" -o "C:\Users\ROG\AppData\Local\Temp\arduino_build_682418\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\ROG\AppData\Local\Temp\arduino_build_682418\preproc\ctags_target_for_gcc_minus_e.cpp"
Compilation du croquis...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Users\ROG\AppData\Local\Temp\arduino_build_682418\sketch\Ecran.ino.cpp" -o "C:\Users\ROG\AppData\Local\Temp\arduino_build_682418\sketch\Ecran.ino.cpp.o"
G:\SI\Projet SI\Programme\Programme.ino\Programme2\Ecran\Ecran.ino: In function 'void navigation()':

Ecran:62: error: invalid operands of types 'int*' and 'int' to binary 'operator%'

       posMenu = (posMenu + 1) % 3; //on change le menu principal (3 positions)

                                 ^

Ecran:68: error: switch quantity not an integer

       switch (posMenu) { //l'action dépend du menu 1

                      ^

G:\SI\Projet SI\Programme\Programme.ino\Programme2\Ecran\Ecran.ino: In function 'void affichage()':

Ecran:108: error: invalid types 'String [3][int [3]]' for array subscript

   monEcran.print(ligne1[posMenu]); // on écrit le menu de la ligne 1

                                ^

Ecran:138: error: switch quantity not an integer

     switch (posMenu) { // en fonction du menu 1

                    ^

G:\SI\Projet SI\Programme\Programme.ino\Programme2\Ecran\Ecran.ino: In function 'void affichageavancerreculer()':

Ecran:182: error: 'volantdc' was not declared in this scope

     volantdc ();

               ^

Ecran:184: error: 'volantgc' was not declared in this scope

       volantgc (); 

                 ^

Utilisation de la bibliothèque LiquidCrystal version 1.0.7 dans le dossier: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal 
exit status 1
invalid operands of types 'int*' and 'int' to binary 'operator%'

Bonjour,

Ecran:62: error: invalid operands of types 'int*' and 'int' to binary 'operator%'

et toutes les erreurs sur posMenu viennent du fait que posMenu doit être un entier et non un tableau d'entiers

Ecran:182: error: 'volantdc' was not declared in this scope

vient du fait qu'il n'y a pas de fonction volantdc

Ecran:184: error: 'volantgc' was not declared in this scope

idem