#include <Wire.h>
#include <SevSeg.h>
SevSeg sevseg; // Déclaration de l'objet SevSeg
const int buttonPin = 18; // Broche du bouton poussoir
int count = 0; // Variable pour stocker le comptage
bool buttonState = false; // État actuel du bouton poussoir
bool lastButtonState = false; // État précédent du bouton poussoir
void setup() {
byte numDigits = 4; // Nombre de digits de l'afficheur 7 segments
byte digitPins[] = {19, 2, 15, 5}; // Broches des digits de l'afficheur 7 segments
byte segmentPins[] = {P0, P1, P2, P3, P4, P5, P6, P7}; // Broches des segments (a,b,c,d,e,f,g,DP) de l'afficheur 7 segments sur le PCF8574
bool resistorsOnSegments = false; // Utilisation de résistances sur les segments
bool updateWithDelays = false; // Mise à jour avec délais
byte hardwareConfig = COMMON_CATHODE; // Configuration du type de l'afficheur (ANODE ou CATHODE)
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90); // Luminosité de l'afficheur
pinMode(buttonPin, INPUT_PULLUP); // Configurer la broche du bouton en entrée avec pull-up
}
void loop() {
// Lire l'état actuel du bouton
buttonState = digitalRead(buttonPin);
// Vérifier si le bouton vient d'être enfoncé (front montant)
if (buttonState != lastButtonState && buttonState == LOW) {
count++; // Incrémenter le compteur
// Si le compteur atteint 600, remettez-le à zéro
if (count >= 600) {
count = 0;
}
// Afficher le nouveau compteur sur l'afficheur 7 segments
sevseg.setNumber(count);
sevseg.refreshDisplay();
}
// Mettre à jour l'état précédent du bouton
lastButtonState = buttonState;
}