Salut, petit point sur le projet. Tout fonctionne correctement. J'ai essayé de raccourcir le code, je lutte un peu, mais je vais y arriver. Maintenant, je vais m'occuper de la modélisation 3D des panneaux de contrôle, car c'est pour les placer à deux endroits différents. Je pense que je peux mettre les deux en parallèle. Voici le code "barbare"
```cpp
#include <LiquidCrystal.h> // library:
LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7); // Pin Parameters: (RS, E, D4, D5, D6, D7):
const int sensorPin1 = 40; // capteur de porte
const int sensorPin2 = 41;
const int sensorPin3 = 42;
const int sensorPin4 = 43;
const int sensorPin5 = 44;
const int sensorPin6 = 45;
int etatsensor1; //Variable capteur
int etatsensor2;
int etatsensor3;
int etatsensor4;
int etatsensor5;
int etatsensor6;
const int ResetPin = 8; // boutton poussoir pour le reset
const int buttonOnOff = 9; // boutton poussoir pour le ON / OFF
const int ledPin1 = 26; // led d'information porte ouverte
const int ledPin2 = 27;
const int ledPin3 = 28;
const int ledPin4 = 29;
const int ledPin5 = 30;
const int ledPin6 = 31;
const int statusLed = 24;
const int buzzer = 10; // broche buzzer
const int ledLCD = 36; // broche lumiere (ecran lcd) broche A
const int lumiere2 = 38; // broche lumiere
const int lumiere1 = 39; // broche lumiere
bool sensorsActive = true; // condition alarme active ou pas (ligne 157)
char message[17] = "";
void setup() {
pinMode(sensorPin1, INPUT_PULLUP);
pinMode(sensorPin2, INPUT_PULLUP);
pinMode(sensorPin3, INPUT_PULLUP);
pinMode(sensorPin4, INPUT_PULLUP);
pinMode(sensorPin5, INPUT_PULLUP);
pinMode(sensorPin6, INPUT_PULLUP);
pinMode(ResetPin, INPUT_PULLUP);
pinMode(buttonOnOff, INPUT_PULLUP);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(statusLed, OUTPUT);
pinMode(buzzer, OUTPUT);
digitalWrite(buzzer, LOW); // Le buzzer est eteint au debut
pinMode(ledLCD, OUTPUT);
digitalWrite(ledLCD, LOW); // La affichage lcd éteint au début
pinMode(lumiere2, OUTPUT);
digitalWrite(lumiere2, HIGH); // La lumiere est éteinte au début
pinMode(lumiere1, OUTPUT);
digitalWrite(lumiere1, HIGH); // La lumiere est éteinte au début
lcd.begin(16, 2);
}
void loop() {
if (sensorsActive) {
etatsensor1 = etatsensor1==HIGH? etatsensor1 : digitalRead(sensorPin1); // Lire la valeur du capteur
etatsensor2 = etatsensor2==HIGH? etatsensor2 : digitalRead(sensorPin2);
etatsensor3 = etatsensor3==HIGH? etatsensor3 : digitalRead(sensorPin3);
etatsensor4 = etatsensor4==HIGH? etatsensor4 : digitalRead(sensorPin4);
etatsensor5 = etatsensor5==HIGH? etatsensor5 : digitalRead(sensorPin5);
etatsensor6 = etatsensor6==HIGH? etatsensor6 : digitalRead(sensorPin6);
lcd.clear();
sprintf(message, "3GA=%1d 3P=%1d 3PA=%1d", etatsensor1, etatsensor2, etatsensor3);
lcd.setCursor(0, 0); // Choix de la position et de la ligne (1)
lcd.print(message);
sprintf(message, "2GA=%1d 2P=%1d 2PA=%1d", etatsensor4, etatsensor5, etatsensor6);
lcd.setCursor(0, 1);
lcd.print(message);
if (etatsensor1 == HIGH) { // Si le capteur est déclenché
digitalWrite(ledPin1, HIGH); // Allumer la LED
digitalWrite(lumiere2, LOW); // Activer le relai
digitalWrite(buzzer, HIGH);
digitalWrite(ledLCD, HIGH);
digitalWrite(lumiere1, LOW);
}
if (etatsensor2 == HIGH) { // Si le capteur est déclenché
digitalWrite(ledPin2, HIGH); // Allumer la LED
digitalWrite(lumiere2, LOW); // Activer le relai
digitalWrite(buzzer, HIGH);
digitalWrite(ledLCD, HIGH);
digitalWrite(lumiere1, LOW);
}
if (etatsensor3 == HIGH) { // Si le capteur est déclenché
digitalWrite(ledPin3, HIGH); // Allumer la LED
digitalWrite(lumiere2, LOW); // Activer le relai
digitalWrite(buzzer, HIGH);
digitalWrite(ledLCD, HIGH);
digitalWrite(lumiere1, LOW);
}
if (etatsensor4 == HIGH) { // Si le capteur est déclenché
digitalWrite(ledPin4, HIGH); // Allumer la LED
digitalWrite(lumiere2, LOW); // Activer le relai
digitalWrite(buzzer, HIGH);
digitalWrite(ledLCD, HIGH);
digitalWrite(lumiere1, LOW);
}
if (etatsensor5 == HIGH) { // Si le capteur est déclenché
digitalWrite(ledPin5, HIGH); // Allumer la LED
digitalWrite(lumiere2, LOW); // Activer le relai
digitalWrite(buzzer, HIGH);
digitalWrite(ledLCD, HIGH);
digitalWrite(lumiere1, LOW);
}
if (etatsensor6 == HIGH) { // Si le capteur est déclenché
digitalWrite(ledPin6, HIGH); // Allumer la LED
digitalWrite(lumiere2, LOW); // Activer le relai
digitalWrite(buzzer, HIGH);
digitalWrite(ledLCD, HIGH);
digitalWrite(lumiere1, LOW);
}
if (digitalRead(ResetPin) == LOW) {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(buzzer, LOW);
digitalWrite(lumiere2, HIGH);
digitalWrite(lumiere1, HIGH);
etatsensor1 = etatsensor1==LOW? etatsensor1 : digitalRead(sensorPin1);
etatsensor2 = etatsensor2==LOW? etatsensor2 : digitalRead(sensorPin2);
etatsensor3 = etatsensor3==LOW? etatsensor3 : digitalRead(sensorPin3);
etatsensor4 = etatsensor4==LOW? etatsensor4 : digitalRead(sensorPin4);
etatsensor5 = etatsensor5==LOW? etatsensor5 : digitalRead(sensorPin5);
etatsensor6 = etatsensor6==LOW? etatsensor6 : digitalRead(sensorPin6);
digitalWrite(ledLCD, LOW);
}
if (digitalRead(buttonOnOff) == LOW) {
sensorsActive = false;
digitalWrite(statusLed, HIGH);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(buzzer, LOW);
digitalWrite(ledLCD, HIGH);
digitalWrite(lumiere2, HIGH);
digitalWrite(lumiere1, HIGH);
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("SYSTEME");
lcd.setCursor(4, 1);
lcd.print("INNACTIF");
delay(3000);
digitalWrite(ledLCD, LOW);
lcd.clear();
}
}else {
if (digitalRead(buttonOnOff) == LOW) {
sensorsActive = true;
digitalWrite(statusLed, LOW);
digitalWrite(ledLCD, HIGH);
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("SYSTEME");
lcd.setCursor(5, 1);
lcd.print("ACTIF");
delay(3000);
digitalWrite(ledLCD, LOW);
lcd.clear();
etatsensor1 = etatsensor1==LOW? etatsensor1 : digitalRead(sensorPin1);
etatsensor2 = etatsensor2==LOW? etatsensor2 : digitalRead(sensorPin2);
etatsensor3 = etatsensor3==LOW? etatsensor3 : digitalRead(sensorPin3);
etatsensor4 = etatsensor4==LOW? etatsensor4 : digitalRead(sensorPin4);
etatsensor5 = etatsensor5==LOW? etatsensor5 : digitalRead(sensorPin5);
etatsensor6 = etatsensor6==LOW? etatsensor6 : digitalRead(sensorPin6);
}
}
delay(200);
}