#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#define TFT_DC 2
#define TFT_CS 15
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
int sensorValue = -80; // Пример чтения с аналогового входа
int servoPosition = 5;
int servoSpeed = -180;
void setup() {
tft.begin();
tft.setRotation(1);
tft.fillScreen(ILI9341_BLACK);
// Настройка начального экрана
tft.setTextSize(2);
tft.setTextColor(ILI9341_WHITE);
tft.setCursor(10, 10);
tft.println("Telemetry Data:");
// Рисуем рамку для индикатора скорости
tft.drawRect(10, 50, 300, 20, ILI9341_WHITE);
// Рисуем рамку для индикатора положения серво
tft.drawRect(10, 100, 300, 20, ILI9341_WHITE);
}
void loop() {
tft.fillRect(10, 40, 300, 10, ILI9341_BLACK); // Очистить область для обновления данных
tft.setCursor(10, 40);
tft.print("Sensor: ");
tft.print(sensorValue);
// Обновляем индикатор скорости
tft.fillRect(11, 51, 298, 18, ILI9341_BLACK); // Очистить область индикатора
tft.fillRect(11, 51, map(servoSpeed, 0, 360, 0, 298), 18, ILI9341_GREEN);
// Обновляем индикатор положения серво
tft.fillRect(11, 101, 298, 18, ILI9341_BLACK); // Очистить область индикатора
tft.fillRect(11, 101, map(servoPosition, 0, 180, 0, 298), 18, ILI9341_BLUE);
// Обновляем текстовые метки
tft.fillRect(10, 130, 300, 20, ILI9341_BLACK); // Очистить область для обновления текста
tft.setCursor(10, 130);
tft.print("Speed: ");
tft.print(servoSpeed++);
tft.print(" deg/s");
tft.fillRect(10, 160, 300, 20, ILI9341_BLACK); // Очистить область для обновления текста
tft.setCursor(10, 160);
tft.print("Position: ");
tft.print(servoPosition);
tft.print(" deg");
delay(100);
}