//#include <Arduino.h>
#include <U8g2lib.h>
#define BUTTON_LEFT_PIN 3
U8G2_SSD1306_128X64_ALT0_F_HW_I2C u8g2(U8G2_R3, /* reset=*/ U8X8_PIN_NONE); // same as the NONAME variant, but may solve the "every 2nd line skipped" problem
//U8G2_ST7920_128X64_F_SW_SPI u8g2(U8G2_R0, /* clock=*/ PA5, /* data=*/ PA7, /* CS=*/ PB0, /* reset=*/ U8X8_PIN_NONE);
//U8G2_ST7920_128X64_F_HW_SPI u8g2(U8G2_R0, /* CS=*/ PB0, /* reset=*/ U8X8_PIN_NONE);
const int ledPin = 13;
const int buttonPin = 2;
byte buttonState;
int count = 1;
int incomingByte;
bool Left;
bool clicked_BUTTON_LEFT;
void setup() {
u8g2.begin();
Serial.begin(9600);
pinMode(BUTTON_LEFT_PIN, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
}
void loop() {
if (Left == 1) {
count++;
Left = 0;
}
if (count > 8) {
count = 1;
}
static uint32_t tmr1;
if (millis() - tmr1 >= 100) {
tmr1 = millis();
u8g2.clearBuffer();
switch (count) {
case 1:
u8g2.setFont(u8g2_font_6x10_tr);
u8g2.setCursor(0, 17);
u8g2.print("1234.6x10_tr");
break;
case 2:
u8g2.setFont(u8g2_font_squeezed_r7_tr);
u8g2.setCursor(0, 17);
u8g2.print("1234.squeezed_r7_tr");
break;
case 3:
u8g2.setFont(u8g2_font_04b_03_tr);
u8g2.setCursor(0, 17);
u8g2.print("1324.04b_03_tr");
break;
case 4:
u8g2.setFont(u8g2_font_profont10_tr);
u8g2.setCursor(0, 17);
u8g2.print("1234.profont10_tr");
break;
case 5:
u8g2.setFont(u8g2_font_spleen5x8_mr);
u8g2.setCursor(0, 17);
u8g2.print("1234.spleen5x8_mr");
break;
case 6:
u8g2.setFont(u8g2_font_helvR08_tr);
u8g2.setCursor(0, 17);
u8g2.print("1234.helvR08_tr");
break;
case 7:
u8g2.setFont(u8g2_font_ncenR08_tr);
u8g2.setCursor(0, 17);
u8g2.print("1234.ncenR08_tr");
break;
case 8:
u8g2.setFont(u8g2_font_timR08_tr);
u8g2.setCursor(0, 17);
u8g2.print("123.timR08_tr");
break;
}
// ... write something to the buffer
u8g2.sendBuffer();
}
Left = 0;
if (digitalRead(BUTTON_LEFT_PIN) == LOW && clicked_BUTTON_LEFT == 0) {
clicked_BUTTON_LEFT = 1;
Left = 1;
}
if (digitalRead(BUTTON_LEFT_PIN) == HIGH && clicked_BUTTON_LEFT == 1) {
clicked_BUTTON_LEFT = 0;
}
}