int switchState = 0;
int var1 = 0;
int var2 = 0;
int tapis14 = 0;
int cellule_haute = 0;
int switchState13 = 0;
int cellule_haute13 = 0;
int tapis13 = 0;
int var3 = 0;
int var4 = 0;
unsigned long tempsDebutBlocage13 = 0;
unsigned long tempsDebutBlocage14 = 0;
bool blocage13 = false;
bool blocage14 = false;
void setup() {
Serial.begin(9600);
pinMode (2, INPUT); // switchState
pinMode (3, INPUT); // tapis14
pinMode (4, OUTPUT); // Sortie tapis14
pinMode (6, INPUT); // cellule_haute
pinMode (7, OUTPUT); // Sortie tapis13
pinMode (9, INPUT); // cellule_haute13
pinMode (10, INPUT); // switchState13
pinMode (11, INPUT); // tapis13
pinMode (13, INPUT); //cellule porte 13
pinMode (5, INPUT); //cellule porte 14
}
void loop() {
switchState = digitalRead(2);
tapis14 = digitalRead(3);
cellule_haute = digitalRead(6);
switchState13 = digitalRead(10);
tapis13 = digitalRead(11);
cellule_haute13 = digitalRead(9);
// Incrémentation des compteurs uniquement si pas en blocage
if (!blocage13) {
if (switchState13 == 1 && tapis13 == 0) {
var3++;
Serial.println(var3);
}
if (cellule_haute13 == 1 && tapis13 == 0) {
var4++;
Serial.println(var4);
}
}
if (!blocage14) {
if (switchState == 1 && tapis14 == 0) {
var1++;
Serial.println(var1);
}
if (cellule_haute == 1 && tapis14 == 0) {
var2++;
Serial.println(var2);
}
}
delay(100); // Pour lisibilité, peut être supprimé ou remplacé si besoin
// Réinitialisation des compteurs si capteurs désactivés
if (!blocage13) {
if (switchState13 == 0 && tapis13 == 0) var3 = 0;
if (cellule_haute13 == 0 && tapis13 == 0) var4 = 0;
}
if (!blocage14) {
if (switchState == 0 && tapis14 == 0) var1 = 0;
if (cellule_haute == 0 && tapis14 == 0) var2 = 0;
}
// Blocage tapis13
if (!blocage13 && tapis13 == 0 && (var3 >= 55 || var4 >= 35)) {
digitalWrite(7, HIGH);
Serial.println(var3 >= 55 ? "Blocage13_1" : "Blocage13_2");
tempsDebutBlocage13 = millis();
blocage13 = true;
var3 = 0;
var4 = 0;
Serial.println("0");
}
// Blocage tapis14
if (!blocage14 && tapis14 == 0 && (var1 >= 55 || var2 >= 35)) {
digitalWrite(4, HIGH);
Serial.println(var1 >= 55 ? "Blocage14_1" : "Blocage14_2");
tempsDebutBlocage14 = millis();
blocage14 = true;
var1 = 0;
var2 = 0;
Serial.println("0");
}
// Fin du blocage 13 après 6s
if (blocage13 && millis() - tempsDebutBlocage13 >= 6000) {
digitalWrite(7, LOW);
blocage13 = false;
}
// Fin du blocage 14 après 6s
if (blocage14 && millis() - tempsDebutBlocage14 >= 6000) {
digitalWrite(4, LOW);
blocage14 = false;
}
}