// Скетч выводит прокручивает заданную строку. Когда последняя буква исчезнет текст будет выведен заново
#include <TFT_eSPI.h>
#include <SPI.h> // this is needed for display
// The display also uses hardware SPI, plus #9 & #10
#define TFT_CS 15
#define TFT_DC 2
#define TFT_MOSI 23
#define TFT_SCLK 18
TFT_eSPI tft = TFT_eSPI(); // Создаем объект tft для управления экраном с использованием библиотеки TFT_eSPI
TFT_eSprite sprite = TFT_eSprite(&tft); // Создаем объект sprite для работы с изображением на экране
String text = "Hello world234! This is Sprite"; // Задаем строку текста, которую будем отображать
int32_t cursor_x = 0; // Инициализируем переменную для отслеживания текущей позиции курсора по оси X
uint8_t textpos = 0; // Инициализируем переменную для отслеживания текущей позиции символа в строке текста
void setup(void) {
Serial.begin(115200); // Инициализация последовательного порта для вывода отладочной информации
tft.begin(); // Инициализация экрана
tft.setRotation(1); // Устанавливаем ориентацию экрана
tft.fillScreen(TFT_BLACK); // Заполняем экран черным цветом
sprite.setTextSize(2); // Устанавливаем размер текста на спрайте
sprite.setTextColor(TFT_GREEN); // Устанавливаем цвет текста на спрайте
sprite.createSprite(200 + 15, 16); // Создаем спрайт с заданными размерами
sprite.setCursor(0, 0); // Устанавливаем начальную позицию курсора на спрайте
sprite.fillRect(0, 0, 200 + 15, 16, TFT_BLACK); // Заполняем прямоугольную область на спрайте черным цветом
scrollSprite(); // Вызываем функцию для прокрутки спрайта
}
void loop() {
cursor_x--; // Уменьшаем значение переменной cursor_x для перемещения курсора влево
if (cursor_x == 0) { // Если курсор достиг левой границы спрайта
sprite.setCursor(0, 0); // Устанавливаем курсор в начальную позицию
cursor_x = 0; // Сбрасываем переменную cursor_x
textpos = 0; // Сбрасываем переменную textpos
scrollSprite(); // Вызываем функцию для прокрутки спрайта
}
sprite.scroll(-1, 0); // Прокручиваем спрайт влево
if (cursor_x <= 200 && text[textpos] != '\0') { // Если курсор не выходит за границы спрайта и есть символы в строке текста
sprite.setCursor(cursor_x, 0); // Устанавливаем позицию курсора на спрайте
sprite.print(text[textpos++]); // Отображаем символ на спрайте и увеличиваем textpos
cursor_x = sprite.getCursorX(); // Получаем текущую позицию курсора по оси X
}
sprite.pushSprite(0, 10); // Отображаем спрайт на экране с учетом смещения по вертикали
}
// ФУНКЦИЯ ДЛЯ ПЕРВОНАЧАЛЬНОГО ВЫВОДА ТЕКСТА НА ДИСПЛЕЙ И УСТАНОВКИ ПЕРЕМЕННЫХ cursor_x И textpos В НУЖНОЕ ПОЛОЖЕНИЕ ДЛЯ ПРОКРУТКИ ТЕКСТА
void scrollSprite() {
while (true) { // Запускаем бесконечный цикл
sprite.print(text[textpos]); // Отображаем текущий символ на спрайте
textpos++; // Увеличиваем textpos для перехода к следующему символу
cursor_x = sprite.getCursorX(); // Получаем текущую позицию курсора по оси X
sprite.pushSprite(0, 10); // Отображаем спрайт на экране с учетом смещения по вертикали
if (cursor_x > 200) { // Если курсор выходит за границы спрайта
delay(1000); // Приостанавливаем выполнение программы на 1000 миллисекунд (1 секунда)
break; // Выходим из цикла
}
}
}
Loading
ili9341-cap-touch
ili9341-cap-touch