#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>
// Screen Connections
#define i2c_Address 0x3c
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define Vert A0
Adafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int val = 0;
void setup() {
Wire.begin();
display.begin(i2c_Address, true);
display.clearDisplay();
display.setTextColor(SH110X_WHITE);
display.setTextSize(3);
display.setCursor(2, 18);
display.print("Welcome");
display.display();
delay(2000);
display.clearDisplay();
}
void loop() {
val = analogRead(Vert);
display_screen();
display.display();
if (val>=600)
{
blinking_screen();
display.display();
delay(2000);
lol_screen();
display.display();
}
else
{
stop_blinking();
display.display();
}
}
void display_screen ()
{
display.clearDisplay();
display.setTextColor(SH110X_WHITE);
display.setTextSize(1.9);
display.setCursor(0, 0);
display.print("Battery");
}
void blinking_screen()
{
display.setTextColor(SH110X_WHITE);
display.setTextSize(1.9);
display.setCursor(20, 50);
display.print("Low Battery!");
}
void lol_screen()
{
display.setTextColor(SH110X_BLACK);
display.setTextSize(1.9);
display.setCursor(20, 50);
display.print("Low Battery!");
display.setTextColor(SH110X_WHITE);
}
void stop_blinking()
{
display.setTextColor(SH110X_BLACK);
display.setTextSize(1.9);
display.setCursor(20, 50);
display.print("Low Battery!");
}