Projet robot( on est débutant et pas très bon)

Bonjour, nous sommes des étudiants en première année de GEII et on est pas très bon en Arduino, on a fait un programme mais il y a plein d'erreurs qu'on arrive pas à régler, donc on vous demande votre aide

const int Capteurs_SW = 0; //Entrée des 4 switchs en face avant
const int Capt_Sol = A1; // Capteur sol sous le robot
const int Capteurs_IR1 = A2 ; //Entrée analogique capteur SHARP Gauche
const int Capteurs_IR2 = 2; //Entrée analogique capteur SHARP Centre
const int Capteurs_IR3 = A3; //Entrée analogique capteur SHARP Droit
const int ledpin = 13; //Led sur la carte YUN
const int PWMG = 10; // Signal PWM Gauche vers le pont en H
const int PWMD = 9 ; // Signal PWM Droit vers le pont en H
const int SENSG = 12; // Signal SENS Gauche vers le pont en H
const int SENSD = 11; // Signal SENS Droit vers le pont en H
const int jack = 4; // Entrer du Jack de démarrage du robot

unsigned char state; //Détermine l'état de la machine à états
#define State_1 1
#define State_2 2
#define State_3 3
#define State_4 4
unsigned char Jack_retire();
unsigned char Detect_obstacle_Devant();
void Arret_Moteur();
void Robot_Avance();
unsigned char A();
//=========================== Initialisation =========================
void setup()
{
pinMode (ledpin, OUTPUT);
pinMode (Capteurs_SW , INPUT );
pinMode (Capteurs_IR1, INPUT);
pinMode (Capteurs_IR2 , INPUT );
pinMode (Capteurs_IR3 , INPUT );
pinMode (jack , INPUT );
pinMode (SENSG, OUTPUT);
pinMode (PWMG , OUTPUT );
pinMode (SENSD, OUTPUT);
pinMode (PWMD , OUTPUT );
state = State_1;

}
//================= programme principal ===================
void loop()
{
switch(state) // Evolution de la machine à états en fonction des transitions
{
case State_1: { if (Jack_retire()==HIGH) state=State_2; break; }
case State_2: { if (Detect_obstacle_Devant()==HIGH) state=State_3; break; }
case State_3: { state=State_3; break; }
}
switch(state) // Commande des actions en fonction des états
{
case State_1: { Arret_Moteur(); break; } // arrêt des 2 moteurs
case State_2: { Robot_Avance(); break; } // Robot avance droit
case State_3: { Arret_Moteur(); break; } // arrêt des 2 moteurs
}
}
//================= Fonction Arret_Moteur ( Action) ===================

void Arret_Moteur(void)
{
analogWrite (PWMD, 0);
analogWrite (PWMD, 0);
}
//================= Fonction Robot_Avance ( Action) ===================
void Robot_Avance(void){
analogWrite (PWMD , 92 );
analogWrite (PWMG , 90 );
digitalWrite (SENSG, LOW) ; //Moteur Gauche en avant
digitalWrite (SENSD, HIGH) ; //Moteur Droit en avant
}
void droite(void){
analogWrite (PWMD , 20 );
analogWrite (PWMG , 90 );
digitalWrite (SENSG, LOW) ; //Moteur Gauche en avant
digitalWrite (SENSD, HIGH) ; //Moteur Droit en avant
}
void gauche(void){
analogWrite (PWMD , 92 );
analogWrite (PWMG , 20 );
digitalWrite (SENSG, LOW) ; //Moteur Gauche en avant
digitalWrite (SENSD, HIGH) ; //Moteur Droit en avant
}
void edroite(void){
analogWrite (PWMD , 20 );
analogWrite (PWMG , 130 );
digitalWrite (SENSG, LOW) ; //Moteur Gauche en avant
digitalWrite (SENSD, HIGH) ; //Moteur Droit en avant
}
void egauche(void){
analogWrite (PWMD , 130 );
analogWrite (PWMG , 20 );
digitalWrite (SENSG, LOW) ; //Moteur Gauche en avant
digitalWrite (SENSD, HIGH) ; //Moteur Droit en avant
}
void recule(void){
analogWrite (PWMD , 77 );
analogWrite (PWMG , 75 );
digitalWrite (SENSG, LOW) ; //Moteur Gauche en avant
digitalWrite (SENSD, HIGH) ; //Moteur Droit en avant
}
//==========================================================================
unsigned char A(void){
if (digitalRead(A2)==HIGH){
droite();
if (digitalRead(A3)==HIGH){
edroite();
delay(300);
Robot_Avance();
}
}
if (digitalRead(A3)==HIGH){
gauche();
if (digitalRead(A2)==HIGH){
recule();
delay(300);
egauche();
delay(300);
Robot_Avance();
}
}
if ((digitalRead(A2)==HIGH)&&(digitalRead(A3)==HIGH)&&(digitalRead(A4)==HIGH)){
recule();
delay(300);
egauche();
}
if((digitalRead(A2)==HIGH)&&(digitalRead(A3)==HIGH)){
edroite();
}
if((digitalRead(A4)==HIGH)&&(digitalRead(A3)==HIGH)){
egauche();
}
if (digitalRead(A4)==HIGH){
gauche();
if (digitalRead(A3)==HIGH){
egauche();
delay(300);
Robot_Avance();
}
}
if (digitalRead(A2)==HIGH){
edroite();
delay(300);
Robot_Avance();
}
if (digitalRead(A3)==HIGH){
recule();
delay(300);
egauche();
delay(300);
Robot_Avance();

}
if (digitalRead(A4)==HIGH){
  egauche();
  delay(300);
  Robot_Avance();
}
if ((digitalRead(A4)==HIGH)&& (digitalRead(A3)==HIGH)) {
  recule();
  delay(300);
  egauche();
  delay(300);
  Robot_Avance();
}

if ((digitalRead(A2)==HIGH) && (digitalRead(A3)==HIGH)){
  recule();
  delay(300);
  edroite();
  delay(300);
  Robot_Avance();
}

if ((digitalRead(A3)==HIGH)&& (digitalRead(A2)==HIGH) && (digitalRead(A4)==HIGH)) {
  recule();
  delay(300);
  egauche();
  delay(300);
  Robot_Avance();  
}

}
//==============Fonction Jack_Retiré (Transition)====================
unsigned char Jack_retire(void) //retourne 1 si le jack est retiré
{
if(jack==LOW)return 0;
else return 1;
}
//==========================================================================//
{
if ( analogRead (Capteurs_IR2) > 100 ) return 1;
else return 0;

if (analogRead (Capteurs_IR1) > 100 ) return 1;
else return 0;

if ( analogRead (Capteurs_IR3) > 100 ) return 1;
else return 0;}

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

dsl je suis nouveau sur le forum

Pas de souci - lisez les recommandations, puis clickez sur le petit crayon pour éditer votre premier post et mettre les balises de code et expliquez votre montage (un schéma c’est bien) et les soucis rencontrés