//*************Tiny4koled (ssd1306)*************
//#include <TinyI2CMaster.h>
#include <TinyWireM.h>
#include "Tiny4kOLED.h"
#include "font16x32digits.h"
#define TINY4KOLED_QUICK_BEGIN
#define screen oled
uint8_t width = 128;
uint8_t height = 64;
#define screeninit tiny4koled_init_128x64br
#define TimeStartPoint 24
#define LINE_HEIGHT 2
#define CHAR_WIDTH 8
const uint16_t screendelay=500; //length of time between screen updates
uint8_t CurrentMinutes =1;
uint8_t CurrentSeconds =2;
uint8_t CurrentTenths = 9;
bool FastTime=false;
bool TimerDone=false;
bool FirstFastRun=true;
const uint8_t box_bitmap[] PROGMEM = {0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC};
#define Volt_Pin PB3
#define Bar 8
void setup() {
pinMode(Volt_Pin, INPUT);
ScreenSetup();
screen.bitmap(120,0,120+8,1,box_bitmap);
screen.bitmap(120,8,120+8,8+8,box_bitmap);
delay(2000);
}
void loop() {
}
void PrintBatteryLevel(uint8_t height){
screen.setFont(FONT8X16);
screen.clear();
digitalWrite(PB4,HIGH);
for (int8_t i=height;i>=0;i--){
screen.bitmap(119,i,119+8,1,box_bitmap);
}
digitalWrite(PB4,LOW);
screen.setFont(FONT16X32DIGITS);
}
void CheckBattery(){
uint16_t BatLevel=analogRead(Volt_Pin);
screen.println(BatLevel);
delay(500);
if (BatLevel>750) {PrintBatteryLevel(3);}
else if(BatLevel>500) {PrintBatteryLevel(2);}
else if(BatLevel>250) {PrintBatteryLevel(1);}
else{PrintBatteryLevel(0);}
}Loading
ssd1306
ssd1306