#include <EncButton.h>
#include <GyverOLED.h>
#define PERIOD 10 // период в мс
uint32_t tmr1; // переменная таймера
uint16_t z; // Хранение обнуления
int32_t i;
EncButton<EB_TICK, 4> btn; // Digital Pin Кнопки
GyverOLED<SSD1306_128x32, OLED_NO_BUFFER> oled;
void setup() {
oled.init();
oled.clear();
oled.setScale(2);
oled.home();
pinMode(A0, INPUT);
}
void loop() {
if (millis() - tmr1 >= PERIOD) { // ищем разницу
tmr1 = millis(); // сброс таймера
i = analogRead(A0);
if (i < 10) oled.print(i), oled.print(" ");
else if (i < 100) oled.print(i), oled.print(" ");
else if (i < 1000) oled.print(i), oled.print(" ");
else if (i < 10000)oled.print(i), oled.print(" ");
oled.setCursor(0,2);
if (i-z < 10) oled.print(i-z), oled.print(" ");
else if (i-z < 100) oled.print(i-z), oled.print(" ");
else if (i-z < 1000) oled.print(i-z), oled.print(" ");
else if (i-z < 10000)oled.print(i-z), oled.print(" ");
oled.home();
}
btn.tick();
if (btn.click()) {
z = i;
i = i - z;
};
}