#include <LCD_I2C.h>
LCD_I2C lcd(0x27, 16, 2); // Default address of most PCF8574 modules, change according
byte gauge_left[8] = { B11111, B10000, B10000, B10000, B10000, B10000, B10000, B11111};
byte gauge_center[8] = { B11111, B00000, B00000, B00000, B00000, B00000, B00000, B11111};
byte gauge_right[8] = { B11111, B00001, B00001, B00001, B00001, B00001, B00001, B11111};
byte gauge_fill[8] = { B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111};
int nilaiPot;
int cpu_gauge;
int gpu_gauge;
char buffer[10];
void setup() {
lcd.begin();
lcd.createChar(0, gauge_left);
lcd.createChar(1, gauge_center);
lcd.createChar(2, gauge_right);
lcd.createChar(3, gauge_fill);
lcd.backlight();
}
void loop() {
cpu_gauge = map(analogRead(A0), 0, 1023, 0, 100);
lcd.setCursor(0, 0);
lcd.print("CPU ");
float cpu_gauge_step = 100.0 / 8.0;
for (int i = 0; i < 8; i++) {
if (cpu_gauge <= cpu_gauge_step * i) {
if (i == 0) {
lcd.write(0);
}
else if (i == 7) {
lcd.write(2);
}
else {
lcd.write(1);
}
}
else {
lcd.write(3);
}
}
sprintf(buffer, "%3d%%", cpu_gauge);
lcd.print(buffer);
}