// LCD1602 custom characters example
#include <LiquidCrystal.h>
int x = 1;
int i;
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
byte power4[8] ={
0b01110, // ***
0b10101, //* * *
0b01010, // * *
0b10101, //* * *
0b01010, // * *
0b10101, //* * *
0b01110, // * *
0b00000
};
byte power2[8] ={
0b01110,
0b10101,
0b01010,
0b10101,
0b01010,
0b10101,
0b01110,
0b00000
};
byte power3[8] ={
0b01110,
0b01010,
0b10101,
0b01010,
0b10101,
0b01010,
0b01110,
0b00000
};
byte power5[8] ={
0b01110,
0b01010,
0b10101,
0b01010,
0b10101,
0b01010,
0b01110,
0b00000
};
byte power1[] = {
B11000,
B11100,
B11110,
B11111,
B11110,
B11100,
B11000,
B00000
};
byte power7[] = {
B00011,
B00111,
B01111,
B11111,
B01111,
B00111,
B00011,
B00000
};
void setup() {
Serial.begin(9600);
lcd.createChar(1, power1);
lcd.createChar(2, power2);
lcd.createChar(7,power7);
lcd.begin(16, 2);
lcd.clear();
delay(1000);
lcd.setCursor(0, 0);
//lcd.write(byte(0));
//lcd.write(byte(1));
lcd.print("\x01 - Power Meter");
lcd.setCursor(0, 1);
delay(1000);
//lcd.autoscroll();
lcd.print("flixmyswitch.com");
delay(1000);
}
void loop() {
lcd.clear();
lcd.setCursor(0, 0);
for (int i = 0; i <= 16;) {
lcd.setCursor(i, 0);
lcd.print("\x01");
delay(400);
Serial.println(i);
//lcd.clear();
//lcd.setCursor(i , 0);
//lcd.print("\x01");
delay(400);
if (i>=15) {
lcd.setCursor(0,1);
lcd.print("Full Power");
delay(2000);
break;
}
//lcd.clear();
i = i + 1;
}
lcd.clear();
delay(1000);
lcd.setCursor(0, 0);
lcd.print("\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07");
for (int i = 0; i <= 16;) { // every time we loop increase i by 1
lcd.setCursor(16-i, 0);
delay(100);
Serial.println(i);
//lcd.clear();
lcd.setCursor(16-i, 0);
lcd.print(" ");
delay(400);
if (i+1==9) {
lcd.setCursor(0,1);
lcd.print("Low Power");
}
if (i+1==13) {
lcd.setCursor(0,1);
lcd.print(" ");
}
if (i+1>=17) {
lcd.setCursor(0,1);
lcd.print(" No Power");
delay(600);
lcd.setCursor(0,0);
lcd.print("Charge me UP");
delay(2000);
lcd.clear();
break;
}
//lcd.clear();
i = i + 1;
}
}