#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte smiley[8] = {
B00000,
B10001,
B00000,
B00000,
B10001,
B01110,
B00000,
};
byte batteryStatusHalfFull[8] = {
0b01110,0b11011,0b10001,0b10001,0b11111,0b11111,0b11111,0b00000
};
byte powerStatus[8] = {
0b00110,0b01100,0b11000,0b11111,0b00011,0b00110,0b01100,0b00000
//0b00110,0b01100,0b11100,0b11111,0b00111,0b00110,0b01100,0b00000
};
byte tempStatus[8] = {
//0b00100,0b01010,0b01010,0b01010,0b01010,0b10001,0b10001,0b01110
0b00100,0b01010,0b01010,0b01110,0b11111,0b11111,0b01110,0b00000
};
byte percentageRate[8] = {
0b00000,0b00000,0b11001,0b11010,0b00100,0b01011,0b10011,0b00000
};
byte tempRate[8] = {
0b11000,0b11000,0b00000,0b00111,0b01000,0b01000,0b00111,0b00000
};
byte rpmIcon[8] = {
0b00000,0b00000,0b01110,0b11011,0b10101,0b11011,0b01110,0b00000
};
byte ampsIcon[8] = {
0b00000,0b00000,0b01100,0b10010,0b11110,0b10010,0b10010,0b00000
};
byte hIcon[8] = {
0b00000,0b10000,0b10000,0b11100,0b10010,0b10010,0b10010,0b00000
};
void setup() {
lcd.createChar(0, batteryStatusHalfFull);
lcd.createChar(1, powerStatus);
lcd.createChar(2, tempStatus);
lcd.createChar(3, percentageRate);
lcd.createChar(4, tempRate);
lcd.createChar(5, rpmIcon);
lcd.createChar(6, ampsIcon);
lcd.createChar(7, hIcon);
lcd.begin(20, 4);
//First Row
lcd.setCursor(1,0);
lcd.print(1);
lcd.setCursor(2,0);
lcd.print(8);
lcd.setCursor(3,0);
lcd.print(':');
lcd.setCursor(4,0);
lcd.print(5);
lcd.setCursor(5,0);
lcd.print(3);
lcd.setCursor(8,0);
lcd.print(2);
lcd.setCursor(9,0);
lcd.print(3);
lcd.setCursor(11,0);
lcd.print('F');
lcd.setCursor(12,0);
lcd.print('e');
lcd.setCursor(13,0);
lcd.print('b');
lcd.setCursor(15,0);
lcd.print(2);
lcd.setCursor(16,0);
lcd.print(0);
lcd.setCursor(17,0);
lcd.print(2);
lcd.setCursor(18,0);
lcd.print(4);
//Second Row
lcd.setCursor(0,1);
lcd.write(byte(0)); //Set Row Icon
//Battery SoC
lcd.setCursor(2,1);
lcd.print(9);
lcd.setCursor(3,1);
lcd.print(4);
lcd.setCursor(4,1);
lcd.write(byte(3));
//Battery Duration
lcd.setCursor(7,1);
lcd.print(1);
lcd.setCursor(8,1);
lcd.print(0);
lcd.setCursor(9,1);
lcd.write(byte(7));
lcd.setCursor(11,1);
lcd.print(1);
lcd.setCursor(12,1);
lcd.print(5);
lcd.setCursor(13,1);
lcd.print('m');
//Battery Amp-Hours Status
lcd.setCursor(16,1);
lcd.print(4);
lcd.setCursor(17,1);
lcd.print(0);
lcd.setCursor(18,1);
lcd.write(byte(6));
lcd.setCursor(19,1);
lcd.write(byte(7));
//Third Row
lcd.setCursor(0,2);
lcd.write(byte(1)); //Set Row Icon
//Voltage Status
lcd.setCursor(2,2);
lcd.print(1);
lcd.setCursor(3,2);
lcd.print(9);
lcd.setCursor(4,2);
lcd.print('.');
lcd.setCursor(5,2);
lcd.print(5);
lcd.setCursor(6,2);
lcd.print('v');
//Current Status
lcd.setCursor(9,2);
lcd.print(1);
lcd.setCursor(10,2);
lcd.print('.');
lcd.setCursor(11,2);
lcd.print(6);
lcd.setCursor(12,2);
lcd.write(byte(6));
//Watt-Hours
lcd.setCursor(15,2);
lcd.print(7);
lcd.setCursor(16,2);
lcd.print(8);
lcd.setCursor(17,2);
lcd.print(0);
lcd.setCursor(18,2);
lcd.print('w');
lcd.setCursor(19,2);
lcd.write(byte(7));
//Fourth Row
lcd.setCursor(0,3);
lcd.write(byte(2)); //Set Row Icon
//Temperature Sensor-1 : Front Section
lcd.setCursor(2,3);
lcd.print(4);
lcd.setCursor(3,3);
lcd.print(7);
lcd.setCursor(4,3);
lcd.write(byte(4));
//Temperature Sensor-2 : Battery Pack Section
lcd.setCursor(6,3);
lcd.print(6);
lcd.setCursor(7,3);
lcd.print(2);
lcd.setCursor(8,3);
lcd.write(byte(4));
//Temperature Sensor-3 : Rear Section
lcd.setCursor(10,3);
lcd.print(3);
lcd.setCursor(11,3);
lcd.print(6);
lcd.setCursor(12,3);
lcd.write(byte(4));
lcd.setCursor(15,3);
lcd.print(2);
lcd.setCursor(16,3);
lcd.print(9);
lcd.setCursor(17,3);
lcd.print(8);
lcd.setCursor(18,3);
lcd.print(0);
lcd.setCursor(19,3);
lcd.write(byte(5));
}
void loop() {}