Alarme multi-zone avec affichage lcd

Quelque chose comme ça.
Code non testé. J'ai mis le code remplacé en commentaire.

#include <LiquidCrystal.h>  //  library:

  LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7);  // Pin Parameters: (RS, E, D4, D5, D6, D7):

const int sensorPin[6] = { 40, 41, 42, 43, 44, 45 }; // capteur de porte
/*
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 etatsensor[6]; //Variable etat capteur
/*
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 ledPin[6] = { 26, 27, 28, 29, 30, 31 }; // led d'information porte ouverte
/*
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() {
  for (int i=0; i < 6; i++) {
    pinMode(sensorPin[i], INPUT_PULLUP);
  }
  /*
  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);

  for (int i=0; i < 6; i++) {
    pinMode(ledPin[i], OUTPUT);
  }
  /*
  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) {
    for (int i=0; i < 6; i++) {
      etatsensor[i] = etatsensor[i] == HIGH ? etatsensor[i] : digitalRead(sensorPin[i]);  // Lire la valeur du capteur
    }
    /*
  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", etatsensor[0], etatsensor[1], etatsensor[2]);
    lcd.setCursor(0, 0);  // Choix de la position et de la ligne (1)
    lcd.print(message);
    sprintf(message, "2GA=%1d 2P=%1d 2PA=%1d", etatsensor[3], etatsensor[4], etatsensor[5]);
    lcd.setCursor(0, 1);
    lcd.print(message);

    if (sensorsActive) {
      for (int i=0; i < 6; i++) {
        if (etatsensor[i] == HIGH) {      // Si le capteur est déclenché
          digitalWrite(ledPin[i], HIGH);  // Allumer la LED
          digitalWrite(lumiere2, LOW);    // Activer le relai
          digitalWrite(buzzer, HIGH);
          digitalWrite(ledLCD, HIGH);
          digitalWrite(lumiere1, LOW);
        }
      }
    }

    /*
  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) {
      for (int i=0; i < 6; i++) {
        digitalWrite(ledPin[i], LOW);
        etatsensor[i] = LOW;
      }
      digitalWrite(lumiere2, HIGH);
      digitalWrite(lumiere1, HIGH);
      digitalWrite(ledLCD, 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);
      for (int i=0; i < 6; i++) {
        digitalWrite(ledPin[i], 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();
      for (int i=0; i < 6; i++) {
        digitalWrite(ledPin[i], 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);
}