Compteur et affichage lcd

Comme les 2 changements provoquent les mêmes actions (incrément et affichage), pour éviter la répétition de lignes de code, j'ai ajouté une fonction qui regroupe le tout et qui est appelée avec l'état de INTER:

void changeINTER(int etat) // Change l'état de INTER

Essaies ça (je n'ai pas pu essayer en vrai) et inspires t'en pour la suite :wink:

#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 10, d5 = 9, d6 = 8, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// La commande de l'interrupteur se fait par la broche 2 de l'Arduino
#define INTER 2
int cptINTER = 0; // Comptage des transitions d'INTER

// Le contrôl de l'alim 120V se fait avec la broche 4 de l'Arduino connectée à l'entrée du driver de MOSFET
#define ALIM_120V 4

void setup() {
	Serial.begin(115200);
	lcd.begin(16, 2);
	
	// Déclaration des broches 2 et 4 de l'arduino comme sorties
	pinMode(INTER, OUTPUT);
	pinMode(ALIM_120V, OUTPUT);
}

void loop() {


	// Passer la sortie 4 de l'Arduino à l'état HAUT pour avoir 0 en sortie du driver afin de ne pas piloter le MOSFET
	digitalWrite(ALIM_120V, HIGH);

	// Attendre 1 seconde avant de passer aux instructions suivantes
	delay(1000);
	
	// Passer la sortie 2 de l'Arduino à l'état HAUT pour fermer l'interrupteur
  changeINTER(HIGH);
	
	// Après fermeture de l'interrupteur, attendre 3 secondes avant d'activer le MOS et envoyer du 120V
	delay(3000);
	
	// Passer la sortie 4 de l'Arduino à l'état BAS pour envoyer le 120V
	digitalWrite(ALIM_120V, LOW);

	// Après envoi du 120V, attendre 9 seconde avant d'arrêter cette tension
	delay(9000);

	// Passer la sortie 4 de l'Arduino à l'état HAUT pour arrêter le 120V
	digitalWrite(ALIM_120V, HIGH);
	
	// Après arrêt du 120V, attendre 1 seconde avant d'ouvrir l'interrupteur
	delay(1000);

	// Passer la sortie 2 de l'Arduino à l'état BAS pour ouvrir l'interrupteur
  changeINTER(LOW);
	// Après ouverture de l'interrupteur, attendre 3 seconde avant d'envoyer du 120V
	delay(3000);

	// Passer la sortie 4 de l'Arduino à l'état BAS pour envoyer le 120V
	digitalWrite(ALIM_120V, LOW);

	// Après envoi du 120V, attendre 9 seconde avant d'arrêter cette tension
	delay(9000);
	
}

void changeINTER(int etat) // Change l'état de INTER
{
	digitalWrite(INTER, etat);

	cptINTER ++; // Incrémentation du compteur

	lcd.setCursor(0,0);
	lcd.print("INTER=");
	lcd.setCursor(7,0);
	lcd.print(String(cptINTER) + " ");
	Serial.println("INTER = " + String(cptINTER));
}

Bonne soirée
jpbbricole