#include <LiquidCrystal.h>
#include <Keypad.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 13, en = 12, d4 = 11, d5 = 10, d6 = 9, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int key2;
int cursor;
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Test Keypad");
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
}
void loop() {
key2=' ';
digitalWrite(3, LOW);
digitalWrite(2, HIGH);
digitalWrite(1, HIGH);
digitalWrite(0, HIGH);
if (digitalRead(7) == LOW) key2 = 1;
if (digitalRead(6) == LOW) key2 = 4;
if (digitalRead(5) == LOW) key2 = 7;
if (digitalRead(4) == LOW) key2 = '*';
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
digitalWrite(1, HIGH);
digitalWrite(0, HIGH);
if (digitalRead(7) == LOW) key2 = 2;
if (digitalRead(6) == LOW) key2 = 5;
if (digitalRead(5) == LOW) key2 = 8;
if (digitalRead(4) == LOW) key2 = 0;
digitalWrite(3, HIGH);
digitalWrite(2, HIGH);
digitalWrite(1, LOW);
digitalWrite(0, HIGH);
if (digitalRead(7) == LOW) key2 = 3;
if (digitalRead(6) == LOW) key2 = 6;
if (digitalRead(5) == LOW) key2 = 9;
if (digitalRead(4) == LOW) key2 = '#';
digitalWrite(3, HIGH);
digitalWrite(2, HIGH);
digitalWrite(1, HIGH);
digitalWrite(0, LOW);
if (digitalRead(7) == LOW) key2 = 'A';
if (digitalRead(6) == LOW) key2 = 'B';
if (digitalRead(5) == LOW) key2 = 'C';
if (digitalRead(4) == LOW) key2 = 'D';
if (key2 != ' '){
if (cursor<2){
cursor++;}
lcd.setCursor(cursor, 1);
lcd.print(key2);}
if(key2 == 'C'){
if(cursor=1){
cursor--;}
lcd.setCursor(cursor,1);
lcd.print(" ");}
}