int Delay_OUT=500,Delay_IN=500;
unsigned long Count_OUT=0, Count_IN=0;
bool Last_OUT=0, Last_IN=0;
uint8_t Sensor_Pin=32;
uint8_t Button_Pin=53;
uint8_t SOLE_OUT_Pin=9;
uint8_t SOLE_IN_Pin=44;

typedef struct
  {
  bool Ac_Etat;
  bool Pr_Etat;
  unsigned long Time;
  uint32_t Point;
  uint8_t B_Bonus;
  uint8_t G_Bonus;
  } Struct_Capteurs;
Struct_Capteurs Capteur[2];

typedef struct
  {
  uint8_t pin;
  unsigned long tps;
  int duree;
  } Struct_Bobines;

Struct_Bobines Target_1_bobine={44,0,500};
//
void setup()
  {
  pinMode(Sensor_Pin,INPUT);    // Capteur
  pinMode(Button_Pin,INPUT);    // Capteur
  pinMode(SOLE_OUT_Pin,OUTPUT);    // Capteur
  pinMode(SOLE_IN_Pin,OUTPUT);
  Serial.begin(9600);
  }
//
void loop()
  {
  DETECTION();
  //Serial.println(Capteur[1].Ac_Etat);
  SOLENOID(&Target_1_bobine, &Capteur[1].Ac_Etat);

  }
//
void SOLENOID(Struct_Bobines *bob, bool *sensor)
  {
  if (*sensor==1) 
    {
    digitalWrite(bob->pin,1);
    bob->tps=millis();
    *sensor=0;
    Serial.println();
    Serial.println(bob->tps);
    Serial.println(bob->duree);
    Serial.println(bob->pin);
    }
  if (millis()-bob->tps>bob->duree) {digitalWrite(bob->pin,0);}
  }
//
void DETECTION()
  { 
  bool Lire;
  Lire=digitalRead(Button_Pin);
  if (Capteur[1].Pr_Etat != Lire)
    {
    if ((millis()-Capteur[1].Time) >= 1)
      {
      if (Lire==1) { Capteur[1].Ac_Etat=1;Serial.println(Capteur[1].Ac_Etat);}
      }
    Capteur[1].Time=millis();
    }
  Capteur[1].Pr_Etat=Lire;

  Lire=digitalRead(Sensor_Pin);
  if (Capteur[0].Pr_Etat != Lire)
    {
    if ((millis()-Capteur[0].Time) >= 1)
      {
      if (Lire==1) { Capteur[0].Ac_Etat=1;Serial.println(Capteur[0].Ac_Etat);}
      }
    Capteur[0].Time=millis();
    }
  Capteur[0].Pr_Etat=Lire;
  }