//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; int uptime_min = 0; int uptime_sec = 0; 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°"); if(use_bitmaps){ display.drawBitmap(65,0,clock_bitmap,16,16,WHITE); display.setCursor(82,16); } else{ display.setCursor(82,16); } display.drawFastVLine(62,0,16,WHITE); if(uptime_min<10){ display.print("0"); } display.print(uptime_min); display.print(":"); display.setFont(&DSEG7_Classic_Mini_Regular_11); if(uptime_sec < 10){ display.print("0"); } display.print(uptime_sec); 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(NULL); display.setCursor(16,8); } else { display.setCursor(0,8); } display.print(analogReadTemp(),1); display.print(" C"); if(use_bitmaps){ display.setCursor(16,0); display.drawBitmap(0,0,temperature_bitmap,16,16,WHITE); display.setCursor(16,16); } else { display.setCursor(0,8); } if(use_bitmaps){ display.drawBitmap(65,0,clock_bitmap,16,16,WHITE); display.setCursor(82,8); } else{ display.setCursor(94,8); } display.drawFastVLine(62,0,16,WHITE); if(uptime_min<10){ display.print("0"); } display.print(uptime_min); display.print(":"); display.setFont(NULL); if(uptime_sec < 10){ display.print("0"); } display.print(uptime_sec); display.display(); } }