project_power-bank/UPGRADE/Code/v2/v2.ino
Max P51 bfcc5fa70b u
2019-12-17 22:41:40 +00:00

88 lines
1.7 KiB
C++

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#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();
}