#include <U8g2lib.h>
#include <Wire.h>
volatile int phut;
volatile int giay;
volatile unsigned long tm;
String timeText;
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
void display() {
u8g2.setFont(u8g2_font_helvR24_tf);
u8g2.setFontPosTop();
u8g2.setCursor(30,20);
u8g2.print(timeText);
}
String timetoStr(int t) {
String timetxt = "";
if (t > 9) {
timetxt = String("") + String(t);
} else {
timetxt = String("0") + String(t);
}
return timetxt;
}
void setup(){
phut = 2;
giay = 10;
tm = 0;
timeText = "";
u8g2.setI2CAddress(0x3C*2);
u8g2.begin();
u8g2.enableUTF8Print();
}
void loop(){
u8g2.firstPage();
do
{
display();
}while(u8g2.nextPage());
if (giay != 0 || phut != 0) {
if (millis() - tm > 300) {
tm = millis();
giay--;
if (giay == 0 && phut > 0) {
giay = 59;
phut--;
}
timeText = String(timetoStr(phut)) + String(":") + String(timetoStr(giay));
}
} else {
timeText = "Finish";
}
}