// VARIABLES //
uint8_t digit_centaine;
uint8_t digit_dizaine;
uint8_t digit_unite;
unsigned long tempo;
uint16_t compteur;
bool etat_button = false;
uint8_t seuil = 5;
uint8_t 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
};
//byte hwPin[7] = {15,2,4,5,18,19,21};
byte hwPin[7] = {21,19,18,5,4,2,15};
void sevenSegWrite(byte digit)
{
for (byte segCount = 0; segCount < 7; ++segCount)
{
digitalWrite(hwPin[segCount], seven_seg_digits[digit][segCount]);
}
}
void getDigital(byte digit)
{
digit_centaine = digit / 100;
digit_dizaine = ( digit % 100 ) / 10;
digit_unite = ( digit % 100) % 10;
}
void setup() {
Serial.begin(9600);
for(byte i = 0; i < 7; i++){
pinMode(hwPin[i], OUTPUT);
}
pinMode(27, OUTPUT); // DIG1
pinMode(26, OUTPUT); // DIG2
pinMode(25, OUTPUT); // DIG3
pinMode(23, INPUT_PULLUP); // Button START
pinMode(14, INPUT_PULLUP); // Button STOP
pinMode(33, OUTPUT); // Buzzer
}
void loop() {
bool button_on = digitalRead(23);
bool button_off = digitalRead(14);
//compteur = millis() / 1000;
if((millis() > tempo ) && etat_button){
compteur++;
if(compteur >= seuil){
digitalWrite(33,HIGH);
}
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);
Serial.println(compteur);
digitalWrite(33,LOW); // Buzzer
}
getDigital(compteur);
sevenSegWrite(digit_centaine);
digitalWrite(27, LOW);
digitalWrite(26,HIGH);
digitalWrite(25,HIGH);
delay(20);
digitalWrite(27, HIGH);
sevenSegWrite(digit_dizaine);
digitalWrite(26, LOW);
digitalWrite(25,HIGH);
delay(20);
digitalWrite(26, HIGH);
sevenSegWrite(digit_unite);
digitalWrite(27, HIGH);
digitalWrite(25,LOW);
delay(20);
digitalWrite(25,HIGH);
}