#include "U8g2lib.h"
#include "Adafruit_SSD1306.h"
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R1);
//bitmaps
//side lines (30x29px)
const unsigned char epd_bitmap_scroll [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x10,
0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30,
0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30,
0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30,
0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30,
0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30,
0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30,
0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30,
0x03, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x20,
0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, };
//main bar (24x7px)
const unsigned char epd_bitmap_mainBar [] PROGMEM = {
0x00, 0x00, 0x00, 0xFC, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0xFF, 0x7F, 0xFC, 0xFF, 0x3F, 0x00, 0x00, 0x00, };
// bitmap array
const unsigned char* bitmap_elements[2] = {
epd_bitmap_scroll,
epd_bitmap_mainBar
};
//time marks
unsigned long previousMillis = 0;
const long interval = 100;
int scrollYpos = 128;
bool text_blink = false;
int textBlink = 0;
int boxBlink = 1;
#define slide_pin A0
void setup() {
u8g2.begin();
}
void loop() {
unsigned long currentMillis = millis();
int reading = analogRead(slide_pin);
int bars = map (reading, 0, 1023, 0, 16);
u8g2.firstPage();
do {
u8g2.setDrawColor(1);
u8g2.setBitmapMode (1);
u8g2.drawLine(17, 0, 17, 127);
u8g2.drawLine(18, 0, 18, 127);
u8g2.drawLine(45, 0, 45, 127);
u8g2.drawLine(46, 0, 46, 127);
u8g2.setDrawColor(0);
u8g2.drawXBMP(17, scrollYpos, 30, 29, epd_bitmap_scroll);
if (scrollYpos >= -30) {
scrollYpos --;
}
else if (scrollYpos <= -28) {
scrollYpos = 128;
};
u8g2.setDrawColor(1);
if (bars == 16) {
u8g2.drawXBMP(20, 1, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 9, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 17, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 25, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 33, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 41, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 49, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 57, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 65, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 73, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 15) {
u8g2.drawXBMP(20, 9, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 17, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 25, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 33, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 41, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 49, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 57, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 65, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 73, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 14) {
u8g2.drawXBMP(20, 17, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 25, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 33, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 41, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 49, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 57, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 65, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 73, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 13) {
u8g2.drawXBMP(20, 25, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 33, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 41, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 49, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 57, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 65, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 73, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 12) {
u8g2.drawXBMP(20, 33, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 41, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 49, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 57, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 65, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 73, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 11) {
u8g2.drawXBMP(20, 41, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 49, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 57, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 65, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 73, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 10) {
u8g2.drawXBMP(20, 49, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 57, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 65, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 73, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 9) {
u8g2.drawXBMP(20, 57, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 65, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 73, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 8) {
u8g2.drawXBMP(20, 65, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 73, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 7) {
u8g2.drawXBMP(20, 73, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 6) {
u8g2.drawXBMP(20, 81, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 5) {
u8g2.drawXBMP(20, 89, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 4) {
u8g2.drawXBMP(20, 97, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 3) {
u8g2.drawXBMP(20, 105, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 2) {
u8g2.drawXBMP(20, 113, 24, 7, epd_bitmap_mainBar);
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 1) {
u8g2.drawXBMP(20, 121, 24, 7, epd_bitmap_mainBar);
}
if (bars == 0) {
u8g2.setDrawColor(boxBlink);
u8g2.drawBox(21, 0, 22, 128);
u8g2.setFont(u8g2_font_luBIS19_tr);
u8g2.setFontMode(1);
u8g2.setDrawColor(textBlink);
u8g2.drawStr(22, 21,"R");
u8g2.drawStr(22, 42,"E");
u8g2.drawStr(22, 63,"L");
u8g2.drawStr(19, 85,"O");
u8g2.drawStr(22, 106,"A");
u8g2.drawStr(20, 127,"D");
}
/*
u8g2.drawLine(16, 0, 16, 127);
u8g2.drawLine(31, 0, 31, 127);
u8g2.drawLine(32, 0, 32, 127);
u8g2.drawLine(47, 0, 47, 127);*/
}while ( u8g2.nextPage() );
}