#include <U8glib.h>
#define DCLK 6
#define DIO 5
#define SW 3
#define CLK 2
#define DT 4
U8GLIB_SH1106_128X64 My_u8g_Panel(U8G_I2C_OPT_NONE);
int count = 0;
void displayCount() {
My_u8g_Panel.firstPage();
do {
char buffer[10];
sprintf(buffer, "%d", count);
My_u8g_Panel.drawStr(0, 0, buffer);
} while (My_u8g_Panel.nextPage());
}
void readEncoder() {
int dtValue = digitalRead(DT);
if (dtValue == HIGH) {
count++;
}
if (dtValue == LOW) {
count--;
}
}
void setup() {
My_u8g_Panel.begin();
My_u8g_Panel.setFont(u8g_font_6x10);
My_u8g_Panel.setFontRefHeightExtendedText();
My_u8g_Panel.setDefaultForegroundColor();
My_u8g_Panel.setFontPosTop();
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
pinMode(SW, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(CLK), readEncoder, FALLING);
displayCount();
}
void loop() {
if (digitalRead(SW) == LOW) {
count = 0;
}
displayCount();
}