a function definition is not allowed beafore "{" token

Bonjour, je réalise ce programme pour un projet sur mon arduino mega2560 et j’ai le message d’erreur suivant qui apparaît au niveau de la première accolade:
a function-definition is not allowed here before “{” token

Si quelqu’un peux me venir en aide, je dois absolument finir ce programme aujourd’hui /=

#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>



int m = 0;//variable compteur 1
int n = 0;//variable compteur 2

int Capteur1=A1; // Capteur 1
int Capteur2=A2; // Capteur 2

//définition écran lcd
LiquidCrystal_I2C lcd1(0x27, 20, 4);
LiquidCrystal lcd2(53, 52, 51, 50, 49, 48);
LiquidCrystal lcd3(47, 46, 45, 44, 43, 42);


//définition 7seg-4digits
int digit1 = 14; //Afficheur le plus à gauche - chiffre 1000
int digit2 = 15; //Afficheur centre gauche - chiffre 100
int digit3 = 16; //Afficheur centre droit - chiffre 10
int digit4 = 17; //Afficheur le plus à droite - chiffre 1

int digit21 = 18;
int digit22 = 19;
int digit23 = 20;
int digit24 = 21;

int segA = 6;
int segB = 7;
int segC = 8;
int segD = 9;
int segE = 10;
int segF = 11;
int segG = 12;
int dp = 13;//dp = digital point

int segA2 = 22;
int segB2 = 23;
int segC2 = 24;
int segD2 = 25;
int segE2 = 26;
int segF2 = 27;
int segG2 = 28;
int dp2 = 29;
int num2;
int num;
//void = fonction, contient le programme
//setup : configuration

void setup()
{ 

 lcd1.init();
 lcd2.begin(16,2);
 lcd3.begin(16,2);

 pinMode (Capteur1, INPUT);
 pinMode (Capteur2, INPUT);
 
 pinMode(segA, OUTPUT);
 pinMode(segB, OUTPUT);
 pinMode(segC, OUTPUT);
 pinMode(segD, OUTPUT);
 pinMode(segE, OUTPUT);
 pinMode(segF, OUTPUT);
 pinMode(segG, OUTPUT);
 pinMode(dp, OUTPUT);

 pinMode(segA2, OUTPUT);
 pinMode(segB2, OUTPUT);
 pinMode(segC2, OUTPUT);
 pinMode(segD2, OUTPUT);
 pinMode(segE2, OUTPUT);
 pinMode(segF2, OUTPUT);
 pinMode(segG2, OUTPUT);
 pinMode(dp2, OUTPUT);

pinMode(digit1, OUTPUT);
pinMode(digit2, OUTPUT);
pinMode(digit3, OUTPUT);
pinMode(digit4, OUTPUT);

pinMode(digit21, OUTPUT);
pinMode(digit22, OUTPUT);
pinMode(digit23, OUTPUT);
pinMode(digit24, OUTPUT);

digitalWrite(digit1, LOW);
digitalWrite(digit2, LOW);
digitalWrite(digit3, LOW);
digitalWrite(digit4, LOW);

digitalWrite(digit21, LOW);
digitalWrite(digit22, LOW);
digitalWrite(digit23, LOW);
digitalWrite(digit24, LOW);
//on commence par tout éteindre
}


void afficheDigit(int num)
// == égalité entre 2 variables , signifie "est égal à"
{
 if (num==0)
   {
   digitalWrite(segA, HIGH); //allumer a
   digitalWrite(segB, HIGH);
   digitalWrite(segC, HIGH);
   digitalWrite(segD, HIGH);
   digitalWrite(segE, HIGH);
   digitalWrite(segF, HIGH);
   digitalWrite(segG, LOW); //éteindre g
   digitalWrite(dp, LOW);
   }

 if (num==1)
   {
   digitalWrite(segA, LOW);
   digitalWrite(segB, HIGH);
   digitalWrite(segC, HIGH);
   digitalWrite(segD, LOW);
   digitalWrite(segE, LOW);
   digitalWrite(segF, LOW);
   digitalWrite(segG, LOW);
   digitalWrite(dp, LOW);
   }

 if (num==2)
   {
   digitalWrite(segA, HIGH);
   digitalWrite(segB, HIGH);
   digitalWrite(segC, LOW);
   digitalWrite(segD, HIGH);
   digitalWrite(segE, HIGH);
   digitalWrite(segF, LOW);
   digitalWrite(segG, HIGH);
   digitalWrite(dp, LOW);
   }

 if (num==3)
   {
   digitalWrite(segA, HIGH);
   digitalWrite(segB, HIGH);
   digitalWrite(segC, HIGH);
   digitalWrite(segD, HIGH);
   digitalWrite(segE, LOW);
   digitalWrite(segF, LOW);
   digitalWrite(segG, HIGH);
   digitalWrite(dp, LOW);
   }

 if (num==4)
   {
   digitalWrite(segA, LOW);
   digitalWrite(segB, HIGH);
   digitalWrite(segC, HIGH);
   digitalWrite(segD, LOW);
   digitalWrite(segE, LOW);
   digitalWrite(segF, HIGH);
   digitalWrite(segG, HIGH);
   digitalWrite(dp, LOW);
   }

 if (num==5)
   {
   digitalWrite(segA, HIGH);
   digitalWrite(segB, LOW);
   digitalWrite(segC, HIGH);
   digitalWrite(segD, HIGH);
   digitalWrite(segE, LOW);
   digitalWrite(segF, HIGH);
   digitalWrite(segG, HIGH);
   digitalWrite(dp, LOW);
   }

 if (num==6)
   {
   digitalWrite(segA, HIGH);
   digitalWrite(segB, LOW);
   digitalWrite(segC, HIGH);
   digitalWrite(segD, HIGH);
   digitalWrite(segE, HIGH);
   digitalWrite(segF, HIGH);
   digitalWrite(segG, HIGH);
   digitalWrite(dp, LOW);
   }

 if (num==7)
   {
   digitalWrite(segA, HIGH);
   digitalWrite(segB, HIGH);
   digitalWrite(segC, HIGH);
   digitalWrite(segD, LOW);
   digitalWrite(segE, LOW);
   digitalWrite(segF, LOW);
   digitalWrite(segG, LOW);
   digitalWrite(dp, LOW);
   }

 if (num==8)
   {
   digitalWrite(segA, HIGH);
   digitalWrite(segB, HIGH);
   digitalWrite(segC, HIGH);
   digitalWrite(segD, HIGH);
   digitalWrite(segE, HIGH);
   digitalWrite(segF, HIGH);
   digitalWrite(segG, HIGH);
   digitalWrite(dp, LOW);
   }

 if (num==9)
   {
   digitalWrite(segA, HIGH);
   digitalWrite(segB, HIGH);
   digitalWrite(segC, HIGH);
   digitalWrite(segD, HIGH);
   digitalWrite(segE, LOW);
   digitalWrite(segF, HIGH);
   digitalWrite(segG, HIGH);
   digitalWrite(dp, LOW);
   }
}

void afficheDigit2(int num2)
// == égalité entre 2 variables , signifie "est égal à"
{
 if (num2==0)
   {
   digitalWrite(segA2, HIGH); //allumer a
   digitalWrite(segB2, HIGH);
   digitalWrite(segC2, HIGH);
   digitalWrite(segD2, HIGH);
   digitalWrite(segE2, HIGH);
   digitalWrite(segF2, HIGH);
   digitalWrite(segG2, LOW); //éteindre g
   digitalWrite(dp2, LOW);
   }

 if (num2==1)
   {
   digitalWrite(segA2, LOW);
   digitalWrite(segB2, HIGH);
   digitalWrite(segC2, HIGH);
   digitalWrite(segD2, LOW);
   digitalWrite(segE2, LOW);
   digitalWrite(segF2, LOW);
   digitalWrite(segG2, LOW);
   digitalWrite(dp2, LOW);
   }

 if (num2==2)
   {
   digitalWrite(segA2, HIGH);
   digitalWrite(segB2, HIGH);
   digitalWrite(segC2, LOW);
   digitalWrite(segD2, HIGH);
   digitalWrite(segE2, HIGH);
   digitalWrite(segF2, LOW);
   digitalWrite(segG2, HIGH);
   digitalWrite(dp2, LOW);
   }

 if (num2==3)
   {
   digitalWrite(segA2, HIGH);
   digitalWrite(segB2, HIGH);
   digitalWrite(segC2, HIGH);
   digitalWrite(segD2, HIGH);
   digitalWrite(segE2, LOW);
   digitalWrite(segF2, LOW);
   digitalWrite(segG2, HIGH);
   digitalWrite(dp2, LOW);
   }

 if (num2==4)
   {
   digitalWrite(segA2, LOW);
   digitalWrite(segB2, HIGH);
   digitalWrite(segC2, HIGH);
   digitalWrite(segD2, LOW);
   digitalWrite(segE2, LOW);
   digitalWrite(segF2, HIGH);
   digitalWrite(segG2, HIGH);
   digitalWrite(dp2, LOW);
   }

 if (num2==5)
   {
   digitalWrite(segA2, HIGH);
   digitalWrite(segB2, LOW);
   digitalWrite(segC2, HIGH);
   digitalWrite(segD2, HIGH);
   digitalWrite(segE2, LOW);
   digitalWrite(segF2, HIGH);
   digitalWrite(segG2, HIGH);
   digitalWrite(dp2, LOW);
   }

 if (num2==6)
   {
   digitalWrite(segA2, HIGH);
   digitalWrite(segB2, LOW);
   digitalWrite(segC2, HIGH);
   digitalWrite(segD2, HIGH);
   digitalWrite(segE2, HIGH);
   digitalWrite(segF2, HIGH);
   digitalWrite(segG2, HIGH);
   digitalWrite(dp2, LOW);
   }

 if (num2==7)
   {
   digitalWrite(segA2, HIGH);
   digitalWrite(segB2, HIGH);
   digitalWrite(segC2, HIGH);
   digitalWrite(segD2, LOW);
   digitalWrite(segE2, LOW);
   digitalWrite(segF2, LOW);
   digitalWrite(segG2, LOW);
   digitalWrite(dp2, LOW);
   }

 if (num2==8)
   {
   digitalWrite(segA2, HIGH);
   digitalWrite(segB2, HIGH);
   digitalWrite(segC2, HIGH);
   digitalWrite(segD2, HIGH);
   digitalWrite(segE2, HIGH);
   digitalWrite(segF2, HIGH);
   digitalWrite(segG2, HIGH);
   digitalWrite(dp2, LOW);
   }

 if (num2==9)
   {
   digitalWrite(segA2, HIGH);
   digitalWrite(segB2, HIGH);
   digitalWrite(segC2, HIGH);
   digitalWrite(segD2, HIGH);
   digitalWrite(segE2, LOW);
   digitalWrite(segF2, HIGH);
   digitalWrite(segG2, HIGH);
   digitalWrite(dp2, LOW);
   }



void affiche4digits(int num)
//Affiche un nb à 4 chiffres

{
  int nb;

// arduino calcule des entiers

//affiche le chiffre des 1000
nb=num/1000;
digitalWrite(digit4, HIGH);
digitalWrite(digit1, LOW);
afficheDigit(nb);

delay(1);

//affiche le chiffre des 100
num=num-nb*1000;
nb=num/100;
digitalWrite(digit1, HIGH);
digitalWrite(digit2, LOW);

afficheDigit(nb);

delay(1);  

//affiche le chiffre des 10
num=num-nb*100;
nb=num/10;
digitalWrite(digit2, HIGH);
digitalWrite(digit3, LOW);
afficheDigit(nb);

delay(1);  

//affiche le chiffre des 1
num=num-nb*10;
nb=num;
digitalWrite(digit3, HIGH);
digitalWrite(digit4, LOW);
afficheDigit(nb);

delay(1);  
}

void affiche4digit2(num2)
{

int nb2;
// arduino calcule des entiers

//affiche le chiffre des 1000
nb2=num2/1000;
digitalWrite(digit24, HIGH);
digitalWrite(digit21, LOW);
afficheDigit2(nb2);

delay(1);

//affiche le chiffre des 100
num2=num2-nb2*1000;
nb2=num2/100;
digitalWrite(digit21, HIGH);
digitalWrite(digit22, LOW);

afficheDigit2(nb2);

delay(1);  

//affiche le chiffre des 10
num2=num2-nb2*100;
nb2=num2/10;
digitalWrite(digit22, HIGH);
digitalWrite(digit23, LOW);
afficheDigit2(nb2);

delay(1);  

//affiche le chiffre des 1
num2=num2-nb2*10;
nb2=num2;
digitalWrite(digit23, HIGH);
digitalWrite(digit24, LOW);
afficheDigit2(nb2);

delay(1);  
}

hello
le bout de code que tu donnes est correct

programme en entier ?

Bonjour,

Mets ton programme en entier, l'erreur se situe sans doute avant la fonction.
Vérifies la concordance des {}

J'ai remis tout le programme sauf le loop (manque de caractères) et j'ai cherché avec les accolades et j'ai pas trouvé. Le problème est donc au niveau des deux void affiche4digits et void affiche4digit2.

P.S: je suis débutant.

Merci j'ai relu encore et encore et j'ai trouvé l'accolade manquante. ^^

Faite CTRL+A puis CTRL+T pour formater le code automatiquement, cela vous permettra de voir les problèmes d’oubli de caractères de fermeture ), } etc…