Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "bms.h"
- #include "U8glib.h"
- #include <Wire.h>
- #include <Adafruit_SH1106.h>
- #define BRIGHTNESS 0x01
- #define BRIGHTNESSREG 0x81
- #define OLED_RESET 4
- Adafruit_SH1106 display(OLED_RESET);
- OverkillSolarBms bms = OverkillSolarBms();
- uint32_t last_update;
- void setup() {
- display.begin(SH1106_SWITCHCAPVCC, 0x3C);
- display.display();
- display.clearDisplay();
- delay(500);
- Serial.begin(9600);
- while (!Serial) { // Wait for the BMS serial port to initialize
- }
- last_update = millis();
- bms.begin(&Serial);
- }
- void loop() {
- bms.main_task();
- uint8_t soc = bms.get_state_of_charge();
- // Do something at 1 millisecond
- if (millis() - last_update >= 2500) {
- display.clearDisplay();
- display.setTextSize(4);
- display.setTextColor(WHITE);
- display.setCursor(0,0);
- display.print("State: ");
- display.print(soc, DEC);
- display.println("%");
- display.display();
- Wire.beginTransmission(0x3c);
- Wire.write(0x00);
- Wire.write(BRIGHTNESSREG);
- Wire.endTransmission();
- Wire.beginTransmission(0x3c);
- Wire.write(0x00);
- Wire.write(BRIGHTNESS);
- Wire.endTransmission();
- last_update = millis();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement