// #include <Wire.h>
// #include <LiquidCrystal_I2C.h>
// #include <Keypad.h>
// LiquidCrystal_I2C lcd(0x27,20,4);
// const byte ROWS = 4; /* four rows */
// const byte COLS = 4; /* four columns */
// int sw = 0;
// int sw1 = 0;
// char hexaKeys[ROWS][COLS] = {
// {'0','1','2','3'},
// {'4','5','6','7'},
// {'8','9','a','b'},
// {'c','d','e','f'}
// };
// // char KeysValC[4][4] = {
// // {{'1', '.', ',', '#', '@', '*', '-'},{'A', 'B', 'C'},{'D', 'E', 'F'},{'_'}},
// // {'G', 'H', 'I'},{'J', 'K', 'L'},{'M', 'N', 'O'},{'/'}},
// // {'P', 'Q', 'R', 'S'},{'T', 'U', 'V'},{'W', 'X', 'Y', 'Z'},{'|'}},
// // {'-'},{' ', '0'},{'+'},{'!'}}
// // };
// char KeysValS[4][4] = {
// {{'1', '.', ',', '#', '@', '*', '-'}, {'a', 'b', 'c', '2'}, {'d', 'e', 'f', '3'}, {'_'}},
// {{'g', 'h', 'i', '4'},{'j', 'j', 'l', '5'},{'m', 'n', 'o', '6'}, {'/'}},
// {{'p', 'q', 'r', 's', '7'},{'t', 'u', 'v', '8'},{'w', 'x', 'y', 'z', '9'}, {'|'}},
// {{'-'},{' ', '0'}, {'+'}, {'!'}}
// };
// char ch_out, ch_out_filter;
// String name = "";
// String key0 = "0123456789abcdef";
// byte rowPins[ROWS] = {13, 12, 14, 27};
// byte colPins[COLS] = {26, 25, 33, 32};
// /* initialize an instance of class NewKeypad */
// Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
// void setup(){
// Serial.begin(9600);
// lcd.init();
// lcd.backlight();
// pinMode(0, INPUT);
// }
// void loop(){
// char customKey = customKeypad.getKey();
// if (customKey){
// // Serial.println(customKey);
// // Serial.println(key0.indexOf(customKey));
// int gx = key0.indexOf(customKey);
// if (sw == 0) {
// ch_out = KeysValS[gx];
// }
// if (ch_out == '+') {
// sw += 1;
// if (sw > 2) {
// sw = 0;
// }
// }
// if (customKey == 'e') {
// sw1 += 1;
// if (sw1 > 1) {
// sw1 = 0;
// }
// }
// if ((ch_out != '+') && (ch_out != '-') && (ch_out != '_')) {
// if (sw1 == 0){
// name += isLowerCase(ch_out);
// } else {
// name += isUpperCase(ch_out);
// }
// }
// if (ch_out == '_') {
// name = name.substring(0, name.length() - 1);
// lcd.clear();
// }
// lcd.setCursor(0, 0);
// lcd.print(name);
// lcd.print(digitalRead(0));
// }
// }
int g1 = 0;
int g2 = 0;
int g3 = 0;
int g4 = 0;
String gg[] = {" ", " ", " ", " "};
int pinout[7] = {15, 25, 26, 27, 14, 12, 13};
int pinin[6] = {33, 32, 35, 34, 39, 36};
int sw[6][7] = {
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
};
char keys[6][7] = {
{'1', '2', '3', '4', '5', '6', '7'},
{'8', '9', '0', 'a', 'b', 'c', 'd'},
{'e', 'f', 'g', 'h', 'i', 'j', 'k'},
{'l', 'm', 'n', 'o', 'p', 'q', 'r'},
{'s', 't', 'u', 'v', 'w', 'x', 'y'},
{'z', '-', '+', '_', '*', '/', ' '}
};
//
void setup(){
Serial.begin(9600);
for (int i = 0; i < 7; i++) {
pinMode(pinout[i], OUTPUT);
if (i < 7){
pinMode(pinin[i], INPUT);
}
}
}
void loop(){
g1 = 0;
g2 = 0;
g3 = 0;
g4 = 0;
for (int i = 0; i < 7; i++) {
digitalWrite(pinout[i], HIGH);
for (int j = 0; j < 6; j++) {
sw[j][i] = digitalRead(pinin[j]);
if (sw[j][i] == 1){
Serial.println(i);
}
}
digitalWrite(pinout[i], LOW);
}
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 6; j++) {
if (sw[j][i] == 1) {
Serial.print("sw[");
Serial.print(j);
Serial.print("][");
Serial.print(i);
Serial.print("]");
Serial.print(" = ");
Serial.println(keys[j][i]);
}
}
}
}