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