//Library inclusions #include #include #include #include #include "setup.h" #include "dseg7_7seggchan_font_48p_regular.h" #include "dseg7_classic_font_12p_regular.h" #include "DialogInput_font_12p_regular.h" #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 #define SCREEN_ADDRESS 0x3C float voltage = 0; float current = 0; float wattage = 0; Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup() { Serial.begin(115200); Wire.setSDA(I2C_SDA); Wire.setSCL(I2C_SCL); Wire.begin(); if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)){ Serial.println("Display Error: Check Connections"); Serial.print("SDA="); Serial.println(I2C_SDA); Serial.print("SCL:"); Serial.println(I2C_SCL); while(true){ delay(100); } } } void loop() { drawDisplay(); } void drawDisplay() { if(!use_default_fonts){ display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(1); if(use_7seggchan){ display.setFont(&DSEG7_7SEGGCHAN_MINI_Regular_48); display.setCursor(84, 66); display.println("8"); display.drawFastVLine(80,16,48,WHITE); } display.drawFastHLine(0,16,128,WHITE); display.setCursor(0,64); display.setFont(&DialogInput_plain_12); display.print("W:"); display.setCursor(0, 48); display.print("A:"); display.setCursor(0,32); display.print("V:"); display.setFont(&DSEG7_Classic_Mini_Regular_11); display.setCursor(13, 64); display.print(wattage); display.setCursor(13,48); display.print(current); display.setCursor(13,32); display.print(voltage); display.display(); } else { display.clearDisplay(); display.drawFastHLine(0,16,128,WHITE); display.setTextColor(WHITE); display.setTextSize(1); display.setCursor(0,56); display.setFont(NULL); display.print("W:"); display.setCursor(0, 44); display.print("A:"); display.setCursor(0,32); display.print("V:"); display.setFont(NULL); display.setCursor(13, 56); display.print(wattage); display.setCursor(13,44); display.print(current); display.setCursor(13,32); display.print(voltage); display.display(); } }