Bonsoir bricoelec
La première chose, est de définir une variable de comptage de INTER:
int cptINTER = 0; // Comptage des transitions d'INTER
Variable qui est incrémentée à la transition à HIGH de INTER:
digitalWrite(INTER, HIGH);
cptINTER ++; // Incrémentation du compteur
ensuite il ne reste plus qu'à afficher:
lcd.setCursor(0,0);
lcd.print("INTER=");
lcd.setCursor(7,0);
lcd.print(String(cptINTER) + " ");
Si tu mets la console de l'IDE à 115200, tu verras l'echo du comptage:
Le programme:
#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
digitalWrite(INTER, HIGH);
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));
// 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
//digitalWrite(INTER, 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);
}
N'hésites pas à poser des questions ![]()
PS: Je n'ai pas ce type d'affichage, donc pas pu essayer ![]()
A+
Bonne soirée
jpbbricole
