erreur de compilation ...

Bonjour à tous j'ai commencé depuis peu à utiliser l'arduino, je programmais avant des pics. En compilant pour vérifier mes erreurs, il fait erreur de compilation mais je n'arrive pas à voir mes erreurs, vous pouvez m'aider ?

merci de vôtres aide ! :wink:

LE CODE:
(le code tags!)

byte valeur1=0;
byte valeur2=0;
byte valeur3=0;
int valeur[]={valeur1,valeur2,valeur3};
const int led1=13;
const int led2=12;
const int led3=11;
int bouton1=10;
int bouton2=9;
int bouton3=8;

void setup()
{
  pinMode (led1, OUTPUT);
  pinMode (led2, OUTPUT);
  pinMode (led3, OUTPUT);
  pinMode (bouton1, INPUT);
  pinMode (bouton2, INPUT);
  pinMode (bouton3, INPUT);
  int valeur1=0;
  int valeur2=0;
  int valeur3=0;
 }
 
void loop()
{
  for (byte i=0;i=2;i++){
    if (valeur[i]=0){
      if (digitalRead(bouton1) == HIGH){  <<<< read the bouton
      valeur[i]=1;
      digitalWrite(led1,HIGH);
      delay (250);
      digitalWrite(led1,LOW);
      delay (250);}
      else (digitalRead(bouton2) == HIGH){   <<<<<<< else if (   )
          valeur[i]=2;
          digitalWrite(led2,HIGH);
          delay (250);
          digitalWrite(led2,LOW);
          delay (250);
        }
       else (digitalRead(bouton3) == HIGH){  <<<<<<<< else if (   )
          valeur[i]=3;
          digitalWrite(led3,HIGH);
          delay (250);
          digitalWrite(led3,LOW);
          delay (250);
        }
        return;
      }
      }
         for (int i=0;i=2;i++){
         switch(valeur[i]){
           case 1:
            digitalWrite(led1,HIGH);
            delay(500);
            digitalWrite(led1,LOW);
            delay(500);
           break;
           case 2:
            digitalWrite(led2,HIGH);
            delay(500);
            digitalWrite(led2,LOW);
            delay(500);
           break;
           case 3:
            digitalWrite(led3,HIGH);
            delay(500);
            digitalWrite(led3,LOW);
            delay(500);
           break;}}
        delay(2000) }

LE MESSAGE D'ERREUR:

aaa.ino: In function 'void loop()':
aaa.ino:35:29: error: expected ';' before '{' token
aaa.ino:42:8: error: expected '}' before 'else'
aaa.ino:42:30: error: expected ';' before '{' token
aaa.ino: At global scope:
aaa.ino:52:10: error: expected unqualified-id before 'for'
aaa.ino:52:23: error: 'i' does not name a type
aaa.ino:52:27: error: 'i' does not name a type
aaa.ino:72:14: error: expected constructor, destructor, or type conversion before '(' token
aaa.ino:72:21: error: expected declaration before '}' token
Erreur lors de la compilation.

Sur la dernière ligne delay(2000) doit être suivi d'un point-virgule, comme chaque instruction.

Christian_R:
Sur la dernière ligne delay(2000) doit être suivi d'un point-virgule, comme chaque instruction.

Merci pour votre réponse :smiley:

j'ai testé cela ne semble pas suffire ...
voila le nouveau message:

.ino: In function 'void loop()':
.ino:35:29: error: expected ';' before '{' token
.ino:42:8: error: expected '}' before 'else'
.ino:42:30: error: expected ';' before '{' token
.ino: At global scope:
.ino:52:10: error: expected unqualified-id before 'for'
.ino:52:23: error: 'i' does not name a type
: error: 'i' does not name a type
:72:14: error: expected constructor, destructor, or type conversion before '(' token
.ino:72:22: error: expected declaration before '}' token
Erreur lors de la compilation.

Il manque un if

else (digitalRead(bouton3) == HIGH){

Du point de vue de la syntaxe c'est correct mais ce n'est sans doute pas le fonctionnement attendu

for (byte i=0;i=2;i++){

essayer plutôt

for (byte i=0;i<2;i++){

Ne pas confondre = et ==

if (valeur[i]=0)

devrait s'écrire

if (valeur[i]==0)

Les commentaires commencent par //

<<<< read the bouton

devrait s'écrire

// <<<< read the bouton

Ah super merci pour ces conseils!!!
je l'ai appliqué
ce qui donne comme code:

byte valeur1=0;
byte valeur2=0;
byte valeur3=0;
int valeur[]={valeur1,valeur2,valeur3};
const int led1=13;
const int led2=12;
const int led3=11;
int bouton1=10;
int bouton2=9;
int bouton3=8;

void setup()
{
  pinMode (led1, OUTPUT);
  pinMode (led2, OUTPUT);
  pinMode (led3, OUTPUT);
  pinMode (bouton1, INPUT);
  pinMode (bouton2, INPUT);
  pinMode (bouton3, INPUT);
  int valeur1=0;
  int valeur2=0;
  int valeur3=0;
 }
 
void loop()
{
  for (byte i=0;i<2;i++){
    if (valeur[i]==0){
      if (digitalRead (bouton1) == HIGH){
      valeur[i]=1;
      digitalWrite(led1,HIGH);
      delay (250);
      digitalWrite(led1,LOW);
      delay (250);}
      else (digitalRead (bouton2) == HIGH){
          valeur[i]=2;
          digitalWrite(led2,HIGH);
          delay (250);
          digitalWrite(led2,LOW);
          delay (250);
        }
       else (digitalRead (bouton3) == HIGH){
          valeur[i]=3;
          digitalWrite(led3,HIGH);
          delay (250);
          digitalWrite(led3,LOW);
          delay (250);
        }
        return;
      }
      }
         for (int i=0;i<2;i++){
         switch(valeur[i]){
           case 1:
            digitalWrite(led1,HIGH);
            delay(500);
            digitalWrite(led1,LOW);
            delay(500);
           break;
           case 2:
            digitalWrite(led2,HIGH);
            delay(500);
            digitalWrite(led2,LOW);
            delay(500);
           break;
           case 3:
            digitalWrite(led3,HIGH);
            delay(500);
            digitalWrite(led3,LOW);
            delay(500);
           break;}}
        delay(2000); }

mais toujours un problème lors de la compilation..

aa.ino: In function 'void loop()':
aa.ino:35:43: error: expected ';' before '{' token
aa.ino:42:8: error: expected '}' before 'else'
aa.ino:42:44: error: expected ';' before '{' token
aa.ino: At global scope:
aa.ino:52:10: error: expected unqualified-id before 'for'
aa.ino:52:23: error: 'i' does not name a type
aa.ino:52:27: error: 'i' does not name a type
aa.ino:72:14: error: expected constructor, destructor, or type conversion before '(' token
aa.ino:72:22: error: expected declaration before '}' token
Erreur lors de la compilation.

bonjour,
si tes commentaires sont encore là, pas étonnant

 <<<< read the bouton

ca serait bon comme ca avec l'échappement

// read the bouton

Juste quelques petits conseils.

Le langage C est un langage très simple niveau syntaxe, mais très complexe à utiliser.
Le compilateur te donne la plupart des erreurs et l'endroit où elles se trouvent.
Par contre, il ne te dit pas si ton programme est juste, ni si ce que tu lui demandes est cohérent.

Concernant ton code, il est bien long, et je ne comprends pas comment tu as pu te retrouver avec un programme si long et contenant tant d'erreurs de syntaxe. Lorsqu'on programme, on passe beaucoup de temps à déboguer. Personnellement, je compile presque à chaque lignes ajoutées, ou plutôt blocs de codes (5 lignes max !), afin de ne pas me retrouver avec 50 erreurs à corriger après 15 minutes d'écriture.

Je te conseille de reprendre ton code depuis le départ, et d'ajouter au fur et à mesure quelques lignes, compiler, et ne pas écrire plus si ce que tu as déjà écrit ne compile et ne fonctionne pas comme tu l'attends. Et même comme ça, tu auras des surprises qui te feront perdre des heures au moment où tu t'y attendras le moins.

Merci vohu, je vais faire comme cela :slight_smile:

et merci à tous pour vos réponses !

Encore un petit détail que j'ai oublié. Soigne l'indentation de ton code, ça permet de voir certaines erreurs bien plus vite.
L'IDE arduino permet de faire ça très vite avec CTRL-T.

:wink:

Tu nas pas corrigé la première erreur que j'ai remontée.
On ne place pas une condition après un else, il manque un if.
Il faudrait lire la doc:

et plus particulièrement:
http://arduino.cc/en/Reference/Else

Bonjour à tous,

Je suis tout nouveau sur ce forum.
J'ai 57 ans, je suis bricoleur et ai des connaissances en électronique.
Mais je n'ai encore jamais touché aux microcontroleurs.

Je viens de me mettre à l'Arduino qui me semble genial et après avoir fait quelques essais en copiant/collant des exemples, je me lance dans la programmation de la première application que je voudrais faire : le pilotage d'une rampe d'eclairage d'aquarium.
Avant de venir avec des questions bien precises sur des bugs de mon application où je vous mettrai le code,...
J'ai d'abord une question générale au sujet des messages d'erreur de compilation,
Mais je n'ai jamais fait de C et les qq restes de programmation que j'ai appris à l'ecole sont plus que dépassés...

vohu:
Juste quelques petits conseils.

Le langage C est un langage très simple niveau syntaxe, mais très complexe à utiliser.
Le compilateur te donne la plupart des erreurs et l'endroit où elles se trouvent.

Comment localise-t-on les erreur dans le code à partir des infos dans le message d'erreur ?

Jcai bien noté le conseil de compiler toute les qq lignes...

D'avance merci et bon WE.

On se sert des numéros de ligne, mais l'erreur est parfois à un autre endroit du code (par effet de bord).
C'est surtout le message lui même qui suggère une piste pour corriger.

A noter que nos propres erreurs ne sont pas vues par le compilateur. :smiling_imp:
Dans ce cas, des Serial.print(...) permettent de visualiser les variables.

Merci.
Je me suis rendu compte entretemps Que je n'avais pas activé l'affichage des n° de ligne sur mon IDE... :blush:
C'est déjà bcp plus compréhensible... :wink:

Y'a plus ka pratiquer...

for (byte i=0;i<2;i++){

i prend combien de valeurs ?

0 1

ou 0 1 2

for (byte i=0;i<=2;i++){

idem ?

La condition est testée au début de chaque itération de la boucle for et on reste dans celle-ci tant que la condition est vrai.
Donc....

bonjour j'ai une erreur sil vous plait aider moi !!!

le code

Arduino : 1.8.10 (Windows 10), Carte : "Arduino/Genuino Uno"

C:\Users\pc\Documents\Arduino\Menu01\Menu01.ino:3:38: warning: large integer implicitly truncated to unsigned type [-Woverflow]

UTFTGLUE myGLCD(0x0154,A2,A1,A3,A4,A0);

^

C:\Users\pc\Documents\Arduino\Menu01\Menu01.ino: In function 'void setup()':

Menu01:32:3: error: expected ';' before 'myGLCD'

myGLCD.setBackColor(255,255,255);

^~~~~~

Plusieurs bibliothèque trouvées pour "Adafruit_GFX.h"
Utilisé : C:\Users\pc\Documents\Arduino\libraries\Adafruit_GFX_Library
Plusieurs bibliothèque trouvées pour "UTFTGLUE.h"
Utilisé : C:\Users\pc\Documents\Arduino\libraries\MCUFRIEND_kbv
Plusieurs bibliothèque trouvées pour "Wire.h"
Utilisé : E:\Arduino\hardware\arduino\avr\libraries\Wire
Plusieurs bibliothèque trouvées pour "RTClib.h"
Utilisé : C:\Users\pc\Documents\Arduino\libraries\RTClib
Plusieurs bibliothèque trouvées pour "SPI.h"
Utilisé : E:\Arduino\hardware\arduino\avr\libraries\SPI
exit status 1
expected ';' before 'myGLCD'

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Pourquoi déterrer un fil vieux de 4 ans au lieu de créer un nouveau fil avec ton problème.
Et tu ferais bien de lire les règles du forum épinglées sur la page d'accueil du forum français si tu veux que l'on réponde.