#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#define BUTTON_UP 32
#define BUTTON_DOWN 33
#define BUTTON_ENTER 25
#define TFT_DC 2
#define TFT_CS 15
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
int menuIndex = 0;
String menuItems[] = {"Пункт 1", "Пункт 2", "Пункт 3", "Назад"};
String getJoke() {
return "Hello World";
}
void nextJoke() {
tft.setTextColor(ILI9341_WHITE);
tft.println("\nLoading joke...");
String joke = getJoke();
tft.setTextColor(ILI9341_GREEN);
tft.println(joke);
}
void updateDisplay() {
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(0, 0);
tft.setTextColor(ILI9341_GREEN);
for (int i = 0; i < (sizeof(menuItems) / sizeof(String)); i++) {
if (i == menuIndex) {
tft.setTextColor(TFT_RED, TFT_BLACK);
} else {
tft.setTextColor(TFT_WHITE, TFT_BLACK);
}
tft.drawString(menuItems[i], 10, 30 * i + 10, 4);
}
}
void setup() {
pinMode(BUTTON_UP, INPUT_PULLUP);
pinMode(BUTTON_DOWN, INPUT_PULLUP);
pinMode(BUTTON_ENTER, INPUT_PULLUP);
tft.begin();
tft.setRotation(1);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.print("Connecting to WiFi");
// nextJoke();
updateDisplay();
}
void loop() {
if (digitalRead(BUTTON_UP) == LOW) {
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(0, 0);
String joke = getJoke();
tft.setTextColor(ILI9341_GREEN);
tft.println("UP");
}
if (digitalRead(BUTTON_DOWN) == LOW) {
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(0, 0);
String joke = getJoke();
tft.setTextColor(ILI9341_WHITE);
tft.println("DOWN");
}
if (digitalRead(BUTTON_ENTER) == LOW) {
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(0, 0);
String joke = getJoke();
tft.setTextColor(ILI9341_YELLOW);
tft.println("ENTER");
}
delay(100);
}