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;
}