// VARIABLES //
uint8_t digit_centaine;
uint8_t digit_dizaine;
uint8_t digit_unite;
unsigned long tempo;
uint16_t compteur;
bool etat_button = false;
byte seven_seg_digits[10][7] = {
{ 0,1,1,1,1,1,1},//0
{0,0,0,0,1,1,0}, //1
{1,0,1,1,0,1,1},//2
{1,0,0,1,1,1,1}, // 3
{1,1,0,0,1,1,0}, // 4
{1,1,0,1,1,0,1}, // 5
{1,1,1,1,1,0,1}, // 6
{0,0,0,0,1,1,1}, // 7
{1,1,1,1,1,1,1}, // 8
{1,1,0,1,1,1,1} // 9
};
void sevenSegWrite(byte digit)
{
byte pin = 8;
for (byte segCount = 0; segCount < 7; ++segCount)
{
digitalWrite(pin, seven_seg_digits[digit][segCount]);
pin--;
}
}
void getDigital(byte digit)
{
digit_centaine = digit / 100;
digit_dizaine = ( digit % 100 ) / 10;
digit_unite = ( digit % 100) % 10;
}
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT); // Broche A
pinMode(3, OUTPUT); // Broche B
pinMode(4, OUTPUT); // Broche C
pinMode(5, OUTPUT); // Broche D
pinMode(6, OUTPUT); // Broche E
pinMode(7, OUTPUT); // Broche F
pinMode(8, OUTPUT); // Broche G
pinMode(11, OUTPUT); // DIG1
pinMode(12, OUTPUT); // DIG2
pinMode(13, OUTPUT); // DIG3
pinMode(10, INPUT_PULLUP); // Button START
pinMode(9, INPUT_PULLUP); // Button STOP
}
void loop() {
bool button_on = digitalRead(10);
bool button_off = digitalRead(9);
//compteur = millis() / 1000;
if((millis() > tempo ) && etat_button){
compteur++;
tempo = millis() + 500;
}
if(!button_on){
compteur = 0;
etat_button = true;
Serial.println(etat_button);
}
if(!button_off){
etat_button = false;
Serial.println(etat_button);
}
getDigital(compteur);
sevenSegWrite(digit_centaine);
digitalWrite(11, LOW);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
delay(20);
digitalWrite(11, HIGH);
sevenSegWrite(digit_dizaine);
digitalWrite(12, LOW);
digitalWrite(13,HIGH);
delay(20);
digitalWrite(12, HIGH);
sevenSegWrite(digit_unite);
digitalWrite(11, HIGH);
digitalWrite(13,LOW);
delay(20);
digitalWrite(13,HIGH);
}