// For: https://forum.arduino.cc/t/oled-display-using-u8x8-library-hardware-vs-software-spi/1053666/
// This Wokwi project: https://wokwi.com/projects/348382129617371731
#include <SPI.h>
#include <U8g2lib.h>
#define MOSI 11
#define DC 9
#define SCK 13
#define CS 14
#define SAMPLE_TIME 1000 // 1 second = 1000 ms
U8X8_SSD1306_128X64_NONAME_4W_HW_SPI u8x8(CS, DC);
// U8X8_SSD1306_128X64_NONAME_4W_SW_SPI u8x8(SCK, MOSI, CS, DC);
// U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);
// U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(SCL, SDA, U8X8_PIN_NONE);
unsigned int loopCounter = 0;
unsigned long startTime;
void setup(void) {
Serial.begin(115200);
u8x8.begin();
u8x8.setFont(u8x8_font_chroma48medium8_r);
startTime = millis();
}
void loop(void) {
unsigned long currentTime = millis();
loopCounter++;
// speed test by writing text to the display
u8x8.drawString(0, 0, "Hello World");
// one second millis timer
if (currentTime - startTime >= SAMPLE_TIME) {
startTime = currentTime;
Serial.println( loopCounter);
loopCounter = 0;
}
}