#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#define TFT_CS 10
#define TFT_RST 9 // niektóre wyświetlacze mogą wymagać RST na pinie 8
#define TFT_DC 8
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
// Wymiary ekranu
#define SCREEN_WIDTH tft.width()
#define SCREEN_HEIGHT tft.height()
// Wymiary tekstu "RADEK" i czcionki
#define TEXT_WIDTH 6 // 6 liter w "RADEK"
#define TEXT_HEIGHT 12 // Wysokość czcionki
// Początkowe współrzędne tekstu
int16_t x = 0;
int16_t y = 0;
// Kierunek ruchu tekstu (1 dla prawo-dół, -1 dla lewo-góra)
int8_t xDirection = 1;
int8_t yDirection = 1;
void setup() {
Serial.begin(9600);
tft.begin();
tft.setRotation(0); // Obróć wyświetlacz na standardową orientację
tft.fillScreen(ILI9341_BLACK); // Wyczyść ekran na czarno
// Ustaw kolor tekstu na biały i wielkość czcionki na 2
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
}
void loop() {
// Wyczyść obszar, gdzie był poprzedni tekst
tft.fillRect(x, y, TEXT_WIDTH * 6, TEXT_HEIGHT * 2, ILI9341_BLACK);
// Przesuń współrzędne tekstu w zależności od kierunku
x += 2 * xDirection; // Przesunięcie o 2 piksele w osi X
y += 2 * yDirection; // Przesunięcie o 2 piksele w osi Y
// Sprawdź, czy tekst dotarł do krawędzi ekranu
if (x <= 0 || x >= SCREEN_WIDTH - TEXT_WIDTH * 6) {
xDirection *= -1; // Odwróć kierunek w osi X
}
if (y <= 0 || y >= SCREEN_HEIGHT - TEXT_HEIGHT * 2) {
yDirection *= -1; // Odwróć kierunek w osi Y
}
// Wyświetl napis "RADEK" na aktualnych współrzędnych
tft.setCursor(x, y);
tft.print("RADEK");
// Opoznienie dla efektu ruchu
delay(10);
}