#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int position = 0;
int letter = 1;
int line = 0;
byte dark[8] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111
};
byte light[8] = {
B11111,
B10001,
B10001,
B10001,
B10001,
B10001,
B10001,
B11111
};
void setup() {
lcd.begin(20, 4);
pinMode(0, OUTPUT);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
lcd.createChar(1, light);
lcd.createChar(2, dark);
lcd.home();
lcd.print("a");
lcd.cursor();
}
void loop() {
digitalWrite(0, HIGH);
if (digitalRead(2) == HIGH){
position = position + 1;
lcd.setCursor(position, line);
lcd.print("a");
letter = 1;
}
if (digitalRead(3) == HIGH){
lcd.setCursor(position, line);
letter = letter + 1;
if(letter == 2){
lcd.print("b");
}
if(letter == 3){
lcd.print("c");
}
if(letter == 4){
lcd.print("d");
}
if(letter == 5){
lcd.print("e");
}
if(letter == 6){
lcd.print("f");
}
if(letter == 7){
lcd.print("g");
}
if(letter == 8){
lcd.print("h");
}
if(letter == 9){
lcd.print("i");
}
if(letter == 10){
lcd.print("j");
}
if(letter == 11){
lcd.print("k");
}
if(letter == 12){
lcd.print("l");
}
if(letter == 13){
lcd.print("m");
}
if(letter == 14){
lcd.print("n");
}
if(letter == 15){
lcd.print("o");
}
if(letter == 16){
lcd.print("p");
}
if(letter == 17){
lcd.print("q");
}
if(letter == 18){
lcd.print("r");
}
if(letter == 19){
lcd.print("s");
}
if(letter == 20){
lcd.print("t");
}
if(letter == 21){
lcd.print("u");
}
if(letter == 22){
lcd.print("v");
}
if(letter == 23){
lcd.print("w");
}
if(letter == 24){
lcd.print("x");
}
if(letter == 25){
lcd.print("y");
}
if(letter == 26){
lcd.print("z");
}
if(letter == 27){
lcd.print("!");
}
if(letter == 28){
lcd.print(".");
}
if(letter == 29){
lcd.print("&");
}
if(letter == 30){
lcd.print("(");
}
if(letter == 31){
lcd.print(")");
}
if(letter == 32){
lcd.print(" ");
}
if(letter == 33){
lcd.print("a");
letter = 1;
}
}
if (digitalRead(4) == HIGH){
position = position + 2;
lcd.setCursor(position, line);
letter = 1;
lcd.print("a");
}
if (digitalRead(5) == HIGH){
position = 0;
line = 0;
lcd.noCursor();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Clearing...");
lcd.setCursor(0,2);
lcd.print("You can now release");
lcd.setCursor(4,3);
lcd.print("the button!");
delay(5000);
lcd.home();
lcd.clear();
lcd.print("a");
letter = 1;
lcd.cursor();
}
if (digitalRead(7) == HIGH){
lcd.setCursor(position, line);
lcd.print(" ");
position = position - 1;
lcd.setCursor(position, line);
lcd.print("a");
letter = 1;
}
if (digitalRead(6) == HIGH){
lcd.setCursor(position, line);
if(letter == 1){
lcd.print(" ");
}
if(line != 3){
position = 0;
line = line + 1;
lcd.setCursor(position, line);
lcd.print("a");
letter = 1;
}
else
{
line = 0;
position = 0;
lcd.setCursor(position, line);
lcd.print("a");
letter = 1;
}
}
if (digitalRead(1) == HIGH){
lcd.setCursor(position, line);
letter = letter - 1;
if(letter == 0){
lcd.print(" ");
letter = 32;
}
if(letter == 1){
lcd.print("a");
}
if(letter == 2){
lcd.print("b");
}
if(letter == 3){
lcd.print("c");
}
if(letter == 4){
lcd.print("d");
}
if(letter == 5){
lcd.print("e");
}
if(letter == 6){
lcd.print("f");
}
if(letter == 7){
lcd.print("g");
}
if(letter == 8){
lcd.print("h");
}
if(letter == 9){
lcd.print("i");
}
if(letter == 10){
lcd.print("j");
}
if(letter == 11){
lcd.print("k");
}
if(letter == 12){
lcd.print("l");
}
if(letter == 13){
lcd.print("m");
}
if(letter == 14){
lcd.print("n");
}
if(letter == 15){
lcd.print("o");
}
if(letter == 16){
lcd.print("p");
}
if(letter == 17){
lcd.print("q");
}
if(letter == 18){
lcd.print("r");
}
if(letter == 19){
lcd.print("s");
}
if(letter == 20){
lcd.print("t");
}
if(letter == 21){
lcd.print("u");
}
if(letter == 22){
lcd.print("v");
}
if(letter == 23){
lcd.print("w");
}
if(letter == 24){
lcd.print("x");
}
if(letter == 25){
lcd.print("y");
}
if(letter == 26){
lcd.print("z");
}
if(letter == 27){
lcd.print("!");
}
if(letter == 28){
lcd.print(".");
}
if(letter == 29){
lcd.print("&");
}
if(letter == 30){
lcd.print("(");
}
if(letter == 31){
lcd.print(")");
}
}
if(line == 3 && position == 20){
line = 0;
position = 0;
letter = 1;
lcd.setCursor(position, line);
lcd.print("a");
}
digitalWrite(0,LOW);
delay(1000);
}