#include <SSD1306Ascii.h>
#include <SSD1306AsciiAvrI2c.h>
// 0X3C+SA0 - 0x3C or 0x3D
#define I2C_ADDRESS 0x3C
SSD1306AsciiAvrI2c oled;
const char* fontName[] = {
"Arial14",
"Arial_bold_14",
"Callibri11",
"Callibri11_bold",
"Callibri11_italic",
"Callibri15",
"Corsiva_12",
"fixed_bold10x15",
"font5x7",
"font8x8",
"Iain5x7",
"lcd5x7",
"Stang5x7",
"System5x7"/*,
"TimesNewRoman16",
"TimesNewRoman16_bold",
"TimesNewRoman16_italic",
"utf8font10x16",
"Verdana12",
"Verdana12_bold",
"Verdana12_italic",
"X11fixed7x14",
"X11fixed7x14B",
"ZevvPeep8x16" */
};
const uint8_t* fontList[] = {
Arial14,
Arial_bold_14,
Callibri11,
Callibri11_bold,
Callibri11_italic,
Callibri15,
Corsiva_12,
fixed_bold10x15,
font5x7,
font8x8,
Iain5x7,
lcd5x7,
Stang5x7,
System5x7,
TimesNewRoman16,
TimesNewRoman16_bold,
TimesNewRoman16_italic,
utf8font10x16,
Verdana12,
Verdana12_bold,
Verdana12_italic,
X11fixed7x14,
X11fixed7x14B,
ZevvPeep8x16
};
uint8_t nFont = sizeof(fontList)/sizeof(uint8_t*);
void showPower(const __FlashStringHelper *s0) {
oled.setFont(Arial_bold_14);
oled.set2X();
oled.setCursor(26, 1);
oled.println(F("Power"));
oled.setCursor(44, 4);
oled.println(s0);
}
void showSpeed(uint8_t n) {
char buff[4] = {0};
oled.set2X();
sprintf(buff, "%3u", n);
oled.setCursor(35, 2);
oled.print(buff);
oled.print('%');
oled.set1X();
oled.setCursor(45, 6);
oled.print("PWM");
}
void setup()
{
Serial.begin(115200);
oled.begin(&Adafruit128x64, I2C_ADDRESS);
showPower(F("Off"));
delay(1000);
oled.clear();
oled.setFont(fixed_bold10x15);
oled.set2X();
for (uint8_t i = 25; i < 105; i += 5) {
showSpeed(i);
delay(200);
}
delay(500);
oled.setCursor(40, 2);
oled.print(F("25%"));
delay(500);
oled.setCursor(40, 2);
oled.print(F("30%"));
delay(500);
oled.setCursor(40, 2);
oled.print(F("40%"));
delay(500);
oled.setCursor(40, 2);
oled.print(F("45%"));
oled.clear();
oled.print("Done!");
}
void loop() {
}