//Library inclusions #include #include #include #include #include "setup.h" #include "dseg7_7seggchan_mini_font_48p_regular.h" #include "dseg7_classic_mini_font_11p_regular.h" #include "DialogInput_font_12p_regular.h" #include #include "images.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; int usb_score = -1; Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup() { adc_init(); adc_set_temp_sensor_enabled(true); 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); if(usb_score == -1){ display.println("-"); } else if (usb_score == -2) { display.println(" "); } else { display.println(usb_score); } 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); if(use_bitmaps){ display.setCursor(16,0); display.drawBitmap(0,0,temperature_bitmap,16,16,WHITE); display.setFont(&DSEG7_Classic_Mini_Regular_11); display.setCursor(16,16); } else { display.setCursor(0,16); } display.print(analogReadTemp(),1); display.print(" C°"); 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); if(use_bitmaps){ display.setCursor(16,0); display.drawBitmap(0,0,temperature_bitmap,16,16,WHITE); display.setFont(&DSEG7_Classic_Mini_Regular_11); display.setCursor(16,16); } else { display.setCursor(0,16); } display.print(analogReadTemp(),1); display.print(" C°"); display.display(); display.display(); } }