// LCD Custom Character Generator https://maxpromer.github.io/LCD-Character-Creator/
#include <LiquidCrystal_I2C.h> // if you don´t have I2C version of the display, use LiquidCrystal.h library instead
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
int analogInput = A0;
int value = 0;
byte meter[8] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B00000
};
byte maxmeter[8] = {
B11111,
B10001,
B10001,
B10001,
B10001,
B10001,
B11111,
B00000
};
void setup(){
pinMode(analogInput, INPUT);
lcd.begin(16, 2);
lcd.createChar(0, maxmeter);
lcd.createChar(1, meter);
lcd.clear();
Wire.begin();
lcd.backlight();
}
void loop(){
value = analogRead(analogInput);
barplot();
maxbar();
}
void barplot(){
value = (value * 14) / 1023; // Scale it to 14
//lcd.clear(); // clear the old bars
lcd.setCursor(0, 1); // draw graph starting from 0,1
lcd.print("S:");
for (int i = 0; i < value; i++) {
lcd.write(byte(1));}
delay(100);
}
void maxbar(){
lcd.setCursor(2, 1); // draw graph starting from 0,1
for (int i = 0; i < 14; i++) {
lcd.write(byte(0));}
}