#include <LiquidCrystal.h>
const int Rs = 13, En = 12, D4 = 11, D5 = 10, D6 = 9, D7 = 8;
LiquidCrystal lcd(Rs, En, D4, D5, D6, D7);
char button;
void setup() {
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("TEST BUTTON");
lcd.setCursor(12, 0);
lcd.print("=");
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
pinMode(6, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
}
void loop() {
button=' ';
digitalWrite(3, LOW);
digitalWrite(2, HIGH);
digitalWrite(1, HIGH);
digitalWrite(0, HIGH);
if (digitalRead(7) == LOW)button = '1';
if (digitalRead(6) == LOW)button = '4';
if (digitalRead(5) == LOW)button = '7';
if (digitalRead(4) == LOW)button = '*';
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
digitalWrite(1, HIGH);
digitalWrite(0, HIGH);
if (digitalRead(7) == LOW)button = '2';
if (digitalRead(6) == LOW)button = '5';
if (digitalRead(5) == LOW)button = '8';
if (digitalRead(4) == LOW)button = '0';
digitalWrite(3, HIGH);
digitalWrite(2, HIGH);
digitalWrite(1, LOW);
digitalWrite(0, HIGH);
if (digitalRead(7) == LOW)button = '3';
if (digitalRead(6) == LOW)button = '6';
if (digitalRead(5) == LOW)button = '9';
if (digitalRead(4) == LOW)button = '#';
digitalWrite(3, HIGH);
digitalWrite(2, HIGH);
digitalWrite(1, HIGH);
digitalWrite(0, LOW);
if (digitalRead(7) == LOW)button = 'A';
if (digitalRead(6) == LOW)button = 'B';
if (digitalRead(4) == LOW)button = 'D';
if (digitalRead(5) == LOW) {
lcd.setCursor(14, 0);
lcd.print(" ");
}
if (button != ' ') {
lcd.setCursor(14, 0);
lcd.print(button);
button = ' ';
}
}