Блоки для дисплеев TFT SPI

Конструктор из блоков на базе библиотеки TFT_eSPI которая оптимизирована для контроллеров STM32, ESP8266 и ESP32.

Пользовательские блоки для вывода информации на дисплеи и индикаторы, управления тачскрином, различными клавиатурами, добавления русских шрифтов для вывода на дисплеи типа HD44780
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
DrMario
Лейтенант
Сообщения: 368
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 55
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Блоки для дисплеев TFT SPI

#1

Сообщение DrMario » 02.05.2020{, 13:07}

Набор блоков на базе библиотеки TFT_eSPI которая оптимизирована для контроллеров STM32, ESP8266 и ESP32.
Ссылка на источник библиотеки: https://github.com/Bodmer/TFT_eSPI
Список поддерживаемых чипов дисплеев с тачскрином и без, в том числе с параллельным интерфейсом:
ILI9341, ST7735, ILI9163, S6D02A1, ILI9486, HX8357D, ILI9481, ILI9486, ILI9488, ST7789, ST7789_2, R61581, RM68140, ST7796.
В наборе два основных блока для разных контроллеров и наличия тачскрина. При создании проектов нужно выбрать подходящий главный блок.
По умолчанию все настройки находятся в файле User_Setup.h. библиотеки TFT_eSPI и используются из этого файла.
Для контроллеров ESP достаточно внести необходимые изменения в файле User_Setup.h.
Внимание!
Перед компиляцией необходимо раскомментировать строку #include "FS.h" и вписать в первую очередь, или применять пользовательский контроллер со вписанной строкой.
Эта библиотека должна быть первой, но по непонятной причине меняется очередность.
Для более расширенных настроек, в том числе и для STM32 необходимо в файле User_Setup_Select.h. закомментировать строку #include <User_Setup.h>
и из списка раскомментировать нужный файл, например #include <User_Setups/Setup32_ILI9341_STM32F103.h> // Setup for "Blue Pill"
а все изменения делать в файле Setup32_ILI9341_STM32F103.h из каталога User_Setups.
Для подключения русских шрифтов необходимо в каталог TFT_eSPI\Fonts\GFXFF\ распаковать архив с дополнительными шрифтами, а в файл gfxfont.h добавить следующие строки:
// Cyrillic (Russian fonts)
#include <Fonts/GFXFF/rusMono13x13.h>
#include <Fonts/GFXFF/rusMonoBold13x13.h>
#include <Fonts/GFXFF/rusMono17x15.h>
#include <Fonts/GFXFF/rusMonoBold17x15.h>
#include <Fonts/GFXFF/rusSerifBold17.h>
// Additional fonts
#include <Fonts/GFXFF/battery_24x48.h>
#include <Fonts/GFXFF/Picopixel.h>
Архив со шрифтами лежит по аресу viewtopic.php?f=72&t=6388
Для физического подключения тачскрина нужно соединить выводы по следующей схеме:
T_CLK --> SCK (SPI TFT)
T_DIN --> MOSI (SPI TFT)
T_DOUT --> MISO (SPI TFT)
T_CS --> (Задается в настройках файла)
T_IRQ --> (Не задействован)
Управление подсветкой дисплея (контакт LED) нужно подключит к +3,3 или к выводу DAC ESP32 для управления яркостью.
В своих настройках для ESP32 и дисплея с тачскрином ILI9341 в файле User_Setup.h. я раскомментировал строки 188-196 и вписал следующие значения
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 5 // Chip select control pin
#define TFT_DC 21 // Data Command control pin
//#define TFT_RST 4 // Контакт сброса (может подключиться к контакту RST)
#define TFT_RST -1 // Установите TFT_RST в -1, если дисплей RESET подключен к плате ESP32 RST
18.09.2020
Добавил блоки в новой редакции. Попытался максимально адаптировать библиотеку под FLProg. Огромная благодарность автору за эту возможность!
Описание внутри каждого блока. Все необходимые изменения по прежнему в файле User_Setup.h. каталога библиотеки.
По в блоках умолчанию контроллер ESP32 под дисплей ILI9341 с тачскрином.
TFT_eSPI_(Code_-_Professional).ubi
Новый редактор
(2.67 МБ) 555 скачиваний
Вложения
ESP32-ILI9341 Statr.flp
Пример. Для калибровки из КОМ порта отправить calibrate
(778.25 КБ) 557 скачиваний
TFT eSPI.ubl
Конструктор из блоков
(1.05 МБ) 499 скачиваний
Последний раз редактировалось DrMario 18.09.2020{, 05:43}, всего редактировалось 2 раза.

aidar_i
Полковник
Сообщения: 3063
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 656
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блоки для дисплеев TFT SPI

#21

Сообщение aidar_i » 18.02.2022{, 11:10}

Rovki писал(а):
18.02.2022{, 10:53}
может сменить общий фон экрана тогда старые надписи не будут видны. Но как?
Стирай с выводом этого текста цветом фона экрана.

Аватара пользователя
Rovki
Полковник
Сообщения: 4864
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 266
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Блоки для дисплеев TFT SPI

#22

Сообщение Rovki » 18.02.2022{, 11:15}

Так где это задать- цвет стирания ?
Электронщик до мозга костей и не только

Аватара пользователя
Rovki
Полковник
Сообщения: 4864
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 266
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Блоки для дисплеев TFT SPI

#23

Сообщение Rovki » 18.02.2022{, 11:53}

Нашел ,нужно поставить FillColor =0 в главном блоке :yes:
Электронщик до мозга костей и не только

Аватара пользователя
Rovki
Полковник
Сообщения: 4864
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 266
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Блоки для дисплеев TFT SPI

#24

Сообщение Rovki » 19.02.2022{, 11:42}

Осталось забороть русский текст :smile390: , все сделал как в 1 посте , но русский текст не хочет отображаться, только латиница , где еще копать?
Электронщик до мозга костей и не только

Аватара пользователя
Rovki
Полковник
Сообщения: 4864
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 266
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Блоки для дисплеев TFT SPI

#25

Сообщение Rovki » 19.02.2022{, 22:19}

Разобрался , не тот блок вывода текста использовал ,нужно принт UTF8 :smile427: Спасибо .
Осталось разобраться с тач скрином , в моем экране тачскрин висит на I2C /
Электронщик до мозга костей и не только

Аватара пользователя
Rovki
Полковник
Сообщения: 4864
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 266
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Блоки для дисплеев TFT SPI

#26

Сообщение Rovki » 20.02.2022{, 13:46}

Для это дисплея setUp 201. Но вот как теперь тачскрин заставить работать ,всю голову сломал , хотя есть скетчи которые считывают с него правильно координаты и выводят в монитор. https://github.com/seaniefs/WT32-SC01-Exp . Нужно вносить изменения в БП. :smile427:
Электронщик до мозга костей и не только

nilov82
Рядовой
Сообщения: 1
Зарегистрирован: 29.04.2021{, 12:42}
Репутация: 0
Имя: Алексей

Блоки для дисплеев TFT SPI

#27

Сообщение nilov82 » 24.03.2022{, 09:44}

Добрый день, не подскажете, возможно ли вывести картинку на этих блоках?

kissmanyuriy
Рядовой
Сообщения: 8
Зарегистрирован: 31.10.2020{, 12:48}
Репутация: 0
Имя: Юрий

Блоки для дисплеев TFT SPI

#28

Сообщение kissmanyuriy » 31.05.2022{, 18:37}

TFT_eSPI_(Code_-_Professional)- эти блоки заработали без проблем с компиляцией. Но есть вопросы: Все одним цветом? Как картинку вставить? В User_Setup- меняю инверсию не меняется в проекте.

kissmanyuriy
Рядовой
Сообщения: 8
Зарегистрирован: 31.10.2020{, 12:48}
Репутация: 0
Имя: Юрий

Блоки для дисплеев TFT SPI

#29

Сообщение kissmanyuriy » 08.06.2022{, 08:22}

Добрый день, как можно например цвет изображения сделать не общим параметром в "TFT_eSPI_(Code_-_Professional)". Хотелось бы иметь разные цвета изображения.Тоже ругается на крупные шрифты. Допилите пожалуйста.

svv
Рядовой
Сообщения: 12
Зарегистрирован: 06.02.2022{, 21:33}
Репутация: 1
Имя: vxxx1980

Блоки для дисплеев TFT SPI

#30

Сообщение svv » 27.06.2022{, 16:24}

Народ. А подскажите пожалуйста, как вывести текст разного шрифта и цвета?

set0205
Рядовой
Сообщения: 1
Зарегистрирован: 17.05.2021{, 11:54}
Репутация: 0
Имя: Юрий

Блоки для дисплеев TFT SPI

#31

Сообщение set0205 » 30.07.2022{, 10:43}

Здравствуйте, касательно шрифтов, сделал всё по инструкции, но есть проблема с выводом кириллицы. Не выводятся кириллические символы. Похоже с utf8rus какие то проблемы. Нет доработок на эту тему?

Отправлено спустя 1 час 20 минут 39 секунд:
Разобрался, сам неверно делал.

Tango
Рядовой
Сообщения: 77
Зарегистрирован: 19.12.2019{, 07:10}
Репутация: 1
Откуда: Краматорск-Кемерово
Имя: Сергей

Блоки для дисплеев TFT SPI

#32

Сообщение Tango » 08.12.2022{, 10:00}

Народ, привет! Помогите отредактировать User_Setup.h в TFT_eSPI-master :smile37: Моск весь уже сломал, не хотят запускаться даже файлы примеров :smile14: Конфигурация банальная: мега2560 и LCD на НХ8357. Примеры из библиотеки НХ8357 работают нормально.
Вложения
User_Setup.h
(17.91 КБ) 36 скачиваний
Специалисты построили "Титаник", дилетант построил ковчег

Boggard
Рядовой
Сообщения: 9
Зарегистрирован: 23.12.2020{, 01:10}
Репутация: 0
Имя: Андрей

Блоки для дисплеев TFT SPI

#33

Сообщение Boggard » 09.06.2023{, 19:14}

Друзья,молясь прошу помощи в подключении дисплей на ILI9341 1.8 TFT SPI 128*160!!! Я с этой мазутой уже третий день себе мозг выношу!!!! Уже все "бубны" переломал! Перепробовал кучу найденных блоков для FLProg! Удалось подключить дисплей по этой схеме (#define
СпойлерПоказать
TFT_SCK 18
#define TFT_MOSI 23
#define TFT_MISO 19
#define TFT_CS 22
#define TFT_DC 21
#define TFT_RESET 17)
https://www.theelectronics.co.in/2022/1 ... esp32.htmlЭто с какого-то сайта, восторг был не долгий! Я уже не знаю что делать! Дайте пжл только один блок для текста, потом дальше копать буду. Как ы блин ими пользуетесь ,ума не приложу!?
Изображение
Вложения
IMG_20230609_210733.jpg

cfitymrf
Рядовой
Сообщения: 63
Зарегистрирован: 06.09.2021{, 07:45}
Репутация: 1
Имя: иван

Блоки для дисплеев TFT SPI

#34

Сообщение cfitymrf » 10.06.2023{, 19:00}

я конечно не помогу но все же. я тоже мучался ради интереса давненько и уже не помню что делал, какой то блок FLProg запустил дисплей только на пол экрана как у вас на фото , затем где то скачал тестовую программу для дисплея на которой он работал нормально , и потом после компиляции в скетче блока FLProg заменял что то типа библиотек , разрешение дисплея , пины подключения из тестовой программы.

Boggard
Рядовой
Сообщения: 9
Зарегистрирован: 23.12.2020{, 01:10}
Репутация: 0
Имя: Андрей

Блоки для дисплеев TFT SPI

#35

Сообщение Boggard » 17.06.2023{, 16:11}

Проблему решил сам! :smile9: https://vk.com/video94093259_456239854? ... 505f22ab41

WildCat
Лейтенант
Сообщения: 353
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 37
Имя: Михаил

Блоки для дисплеев TFT SPI

#36

Сообщение WildCat » 12.01.2024{, 21:33}

Уважаемые знатоки, прошу помощи.

Разбираюсь с дисплеем на чипе ST7796 (4"). Контроллер WeMos D1 mini
СпойлерПоказать
подключил, сконфигурировал User_Setup.h, попробовал демки из примеров библиотеки, всё Ок. Кроме сенсора.
При компиляции примера с тачем появляется ошибка.

Попробовал сделать свой скетч.
Всё по инструкции, главный блок MAin, блок установки шрифтов, и один блок для вывода теста (латиницей).

Та же ошибка (см скрин).
ОшибкаПоказать
C:\Users\Mike\AppData\Local\Temp\arduino_modified_sketch_502890\TFT_Rainbow480.ino: In function 'void setup()':
TFT_Rainbow480:63:17: error: 'class TFT_eSPI' has no member named 'setTouch'
63 | tft.setTouch(calData);
| ^~~~~~~~
C:\Users\Mike\AppData\Local\Temp\arduino_modified_sketch_502890\TFT_Rainbow480.ino: In function 'void loop()':
TFT_Rainbow480:117:13: error: 'class TFT_eSPI' has no member named 'calibrateTouch'
117 | tft.calibrateTouch(calData, TFT_MAGENTA, TFT_BLACK, 15);
| ^~~~~~~~~~~~~~
exit status 1
'class TFT_eSPI' has no member named 'setTouch'

Подскажите, куда копать?
Скриншот 12-01-2024 213817.jpg
С этой ошибкой разобрался, в user setup пропустил указание cs для тач.

Пока не понял, как выводить текст разным шрифтом и цветом. Пробовал и простые блоки, и на проф редакторе. Всё одно.
И кириллицу не выводит. Блоки использовал utf8, шрифты добавил, в общем файле шрифтов прописал, номера шрифтов указываю в соответствии со списком. И всё равно абракадабра.

Подскажите плз, куда копать.

И еще вопрос по калибровке тач.
Обязательно ли калибровать про каждом запуске?
И тыкать в самые углы дисплея не очень удобно, по краям дисплея у резистивной матрицы чувствительность очень плохая. Есть ли способ отнести калибровочные точки чуть дальше от краёв?

WildCat
Лейтенант
Сообщения: 353
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 37
Имя: Михаил

Блоки для дисплеев TFT SPI

#37

Сообщение WildCat » 16.01.2024{, 21:21}

DrMario,
Подскажите, можно ли с помощью Ваших блоков выводить текст и графику разными цветами и шрифтами одновременно?

На данный момент я решил вопрос корректировкой кода блоков (добавил входы установки шрифта и цвета в блоки вывода текста), но при этом ФЛП начинает притормаживать при работе. Возможно, я чего-то не учел. Возможно, нужно еще править блоки main.

И есть ли какая-то функция отключения дисплея программно? Или для увеличения ресурса остается только создать скринсейвер и понизить/отключить подсветку?

И чем отличается print text от draw text?

brigadir218
Рядовой
Сообщения: 30
Зарегистрирован: 16.10.2021{, 09:19}
Репутация: 1
Имя: Игорь

Блоки для дисплеев TFT SPI

#38

Сообщение brigadir218 » 18.01.2024{, 19:49}

всем привет, может кто поможет в вопросе? При установке сторонних шрифтов ,а именно при использовании цифр, когда меняются показания, ну там термометр или показания скорости gps, то на экране начинается каша. старые показания не затираются. много читал старался где то найти информацию, но увы и ах , ничего про это нигде не сказано. изучал разные скетчи, подозреваю, что нужна какая то функция в скетче, но пока так и не нашел решение. Может кто подскажет где капать? esp32, tft ili 9341

WildCat
Лейтенант
Сообщения: 353
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 37
Имя: Михаил

Блоки для дисплеев TFT SPI

#39

Сообщение WildCat » 18.01.2024{, 23:26}

brigadir218,
В главном блоке track=0

brigadir218
Рядовой
Сообщения: 30
Зарегистрирован: 16.10.2021{, 09:19}
Репутация: 1
Имя: Игорь

Блоки для дисплеев TFT SPI

#40

Сообщение brigadir218 » 19.01.2024{, 18:00}

WildCat писал(а):
18.01.2024{, 23:26}
brigadir218,
В главном блоке track=0
WildCat писал(а):
18.01.2024{, 23:26}
brigadir218,
В главном блоке track=0
а что за главный блок? я только начал вникать. а track=0 это что за зверь такой, как оно работает?:smile37:

Ответить

Вернуться в «Дисплеи, индикаторы и клавиатуры»