#include #include #include #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 32 #define OLED_RESET -1 #define PWRBTN 3 #define CHGBTN 4 #define PWRLED 5 #define CHGLED 6 #define VBAT A0 #define FETCTRL 2 #define CSTAT1 A1 #define CSTAT2 A2 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); int batteryPct; int var; int var2; int var3; void setup() { delay(100); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); display.setTextColor(WHITE); Serial.begin(9600); pinMode(VBAT, INPUT_PULLUP); pinMode(CSTAT1, INPUT_PULLUP); pinMode(CSTAT2, INPUT_PULLUP); pinMode(FETCTRL, OUTPUT); pinMode(PWRLED, OUTPUT); pinMode(CHGLED, OUTPUT); pinMode(PWRBTN, INPUT_PULLUP); pinMode(CHGBTN, INPUT_PULLUP); digitalWrite(FETCTRL, LOW); draw(); } void loop() { delay(50); var = analogRead(VBAT); var2 = digitalRead(PWRBTN); var3 = digitalRead(CHGBTN); Serial.print(var); Serial.print(" "); Serial.print(var2); Serial.print(" "); Serial.println(var3); checkPresses(); } void checkPresses(){ if (digitalRead(PWRBTN) == 0) { delay(100); if (digitalRead(PWRBTN) == 0) { pwrLed(); } } if (digitalRead(CHGBTN) == 0) { delay(100); if (digitalRead(CHGBTN) == 0) { chgLed(); } } } void chgLed(){ digitalWrite(CHGLED, HIGH); delay(100); digitalWrite(CHGLED, LOW); } void pwrLed(){ digitalWrite(PWRLED, HIGH); delay(100); digitalWrite(PWRLED, LOW); } void draw() { display.drawRect(5, 5, 123, 27, SSD1306_WHITE); display.display(); }