#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"
#include "Keypad.h"
#define TFT_DC 14
#define TFT_CS 13
#define TFT_RST 15
#define Y1 50
#define Y2 95
#define Y3 140
#define Y4 185
#define Y5 230
#define Y6 275
#define X1 10
#define X2 55
#define X3 100
#define X4 145
#define X5 190
#define TS 40
const byte ROWS = 4;
const byte COLS = 4;
char keys1[ROWS][COLS] = {
{ 'A', 'B', 'C', 'D' },
{ 'I', 'J', 'K', 'L' },
{ 'Q', 'R', 'S', 'T' },
{ 'Y', 'Z', '<', '>' }
};
char keys2[ROWS][COLS] = {
{ 'E', 'F', 'G', 'H' },
{ 'M', 'N', 'O', 'P' },
{ 'U', 'V', 'W', 'X' },
{ '1', '2', '3', '4' }
};
byte colPins1[COLS] = { 11, 10, 9, 8 };
byte rowPins1[ROWS] = { 22, 21, 20, 12 };
byte colPins2[COLS] = { 15, 26, 27, 28 };
byte rowPins2[ROWS] = { 7, 6, 5, 4 };
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
Keypad keypad1 = Keypad(makeKeymap(keys1), rowPins1, colPins1, ROWS, COLS);
Keypad keypad2 = Keypad(makeKeymap(keys2), rowPins2, colPins2, ROWS, COLS);
int line;
int letter;
void setup() {
Serial.begin(115200);
tft.begin();
tft.setCursor(65, 15);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(3);
tft.println("WORDLE");
line = 1;
letter = 1;
tft.drawRect(X1, Y1, TS, TS, ILI9341_WHITE);
tft.drawRect(X2, Y1, TS, TS, ILI9341_WHITE);
tft.drawRect(X3, Y1, TS, TS, ILI9341_WHITE);
tft.drawRect(X4, Y1, TS, TS, ILI9341_WHITE);
tft.drawRect(X5, Y1, TS, TS, ILI9341_WHITE);
tft.drawRect(X1, Y2, TS, TS, ILI9341_WHITE);
tft.drawRect(X2, Y2, TS, TS, ILI9341_WHITE);
tft.drawRect(X3, Y2, TS, TS, ILI9341_WHITE);
tft.drawRect(X4, Y2, TS, TS, ILI9341_WHITE);
tft.drawRect(X5, Y2, TS, TS, ILI9341_WHITE);
tft.drawRect(X1, Y3, TS, TS, ILI9341_WHITE);
tft.drawRect(X2, Y3, TS, TS, ILI9341_WHITE);
tft.drawRect(X3, Y3, TS, TS, ILI9341_WHITE);
tft.drawRect(X4, Y3, TS, TS, ILI9341_WHITE);
tft.drawRect(X5, Y3, TS, TS, ILI9341_WHITE);
tft.drawRect(X1, Y4, TS, TS, ILI9341_WHITE);
tft.drawRect(X2, Y4, TS, TS, ILI9341_WHITE);
tft.drawRect(X3, Y4, TS, TS, ILI9341_WHITE);
tft.drawRect(X4, Y4, TS, TS, ILI9341_WHITE);
tft.drawRect(X5, Y4, TS, TS, ILI9341_WHITE);
tft.drawRect(X1, Y5, TS, TS, ILI9341_WHITE);
tft.drawRect(X2, Y5, TS, TS, ILI9341_WHITE);
tft.drawRect(X3, Y5, TS, TS, ILI9341_WHITE);
tft.drawRect(X4, Y5, TS, TS, ILI9341_WHITE);
tft.drawRect(X5, Y5, TS, TS, ILI9341_WHITE);
tft.drawRect(X1, Y6, TS, TS, ILI9341_WHITE);
tft.drawRect(X2, Y6, TS, TS, ILI9341_WHITE);
tft.drawRect(X3, Y6, TS, TS, ILI9341_WHITE);
tft.drawRect(X4, Y6, TS, TS, ILI9341_WHITE);
tft.drawRect(X5, Y6, TS, TS, ILI9341_WHITE);
delay(50);
for (int i = 0; i < 10; i++) { keypad1.getKey(); keypad2.getKey(); delay(5); }
}
void loop() {
char k1 = keypad1.getKey();
char k2 = keypad2.getKey();
if (k1) Serial.println(k1);
if (k2) Serial.println(k2);
}