Alarme multi-zone avec affichage lcd

La fonction snprintf permet de créer une chaine que tu pourras passer ensuite en argument à lcd.print()
Pour un code plus clair et plus pratique je te recommanderai de découper ton code différemment et de garder l'état des capteurs dans des variables.

Dans loop()

  • tu crées une variable par capteur pour stocker leur état
  • tu lis tous les capteurs d'un coup en plaçant leur état dans les variables créées
  • tu fais tes tests tels que tu les fais actuellement en testant les variables et non plus en faisant un digitlRead()
  • à la fin tu construis les chaines à afficher

Pour utiliser snprintf() il faut faire quelque chose dans ce genre
Les variables etatSenseurxx étant les variables qui stockent l'état des capteurs dont j'ai parlé juste au-dessus

char tampon[17]; // tampon pour stocker une ligne d'affichage + un terminateur

snprintf(tampon, 17,"3GA=%1d 3P=%1d 3PA=%1d", etatSenseur3GA, etatSenseur3P, etatSenseur3PA,);
lcd.setCursor(0, 0); // Choix de la position et de la ligne (1) 
lcd.print(tampon);
snprintf(tampon, 17,"2GA=%1d 2P=%1d 2PA=%1d", etatSenseur2GA, etatSenseur2P, etatSenseur2PA,);
lcd.setCursor(0, 1); // Choix de la position et de la ligne (1) 
lcd.print(tampon);