//#include < TM1637Display.h >
#include <LiquidCrystal_I2C.h>
#define BUTTON 5
#define LIMIT 20
//TM1637Display display (CLK,DIO);
LiquidCrystal_I2C lcd(0x27,16,2);
byte znak[8] = {
0b10001,
0b10001,
0b11011,
0b01010,
0b01110,
0b00100,
0b01110,
0b10001
};
uint8_t cas = LIMIT;
boolean stav = true; //1- bezi, 0-stoji
unsigned long previousMillis = 0;
int buttonState = LOW;
int lastButtonState = LOW;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
void setup() {
//display.setBrightness(7);
// display.showNumberDec(cas,false);
pinMode(BUTTON, INPUT);
lcd.init();
lcd.backlight();
lcd.createChar(0, znak);
zobraz();
}
void loop() {
unsigned long currentMillis = millis();
if(currentMillis-previousMillis >=1000 && stav){
previousMillis = currentMillis;
lcd.setCursor(5,1);
lcd.print(--cas);
//display.showNumberDec(--cas,false);
}
if(cas==0){
stav = false;
tone(4,262,1000);
}
int reading = digitalRead(BUTTON);
if((millis()- lastDebounceTime) >debounceDelay){
if(reading != buttonState){
buttonState = reading;
if(buttonState == HIGH && !stav){
stav= true;
cas = LIMIT;
previousMillis = millis();
lcd.setCursor(5,1);
lcd.print(cas);
//display.showNumberDec(cas,false);
}
}
}
lastButtonState = reading;
}
void zobraz(){
String text = (cas< 10)?" "+String(cas):String(cas);
lcd.clear();
lcd.setCursor(0,0);
lcd.write((byte)0);
lcd.setCursor(16-text.length(),1);
lcd.print(text);
}