Блоки для дисплеев 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 раза.

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

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

#41

Сообщение WildCat » 19.01.2024{, 18:56}

brigadir218 писал(а):
19.01.2024{, 18:00}
а что за главный блок?
Скрин проекта приложите

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

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

#42

Сообщение brigadir218 » 22.01.2024{, 17:08}

WildCat писал(а):
19.01.2024{, 18:56}
Скрин проекта приложите

проекта пока нет, но хочу сделать Gps спидометр. пробовал в flProg его собрать, но не смог. проблемы были именно с блоком Gps. инфы по этому блоку нигде не нашел. пришлось собирать проект из разных скетчей в arduino ide, так как сам в написании полный ноль. собрал на плате esp32, tft st7735, вроде не плохо, но пришел экран ILI 9341. 2.8 и я захотел на нем сделать gps спидометр и поменять шрифт, но там проблема с затиранием старых показаний. и тут случайно наткнулся на ваш форум и увидел что проблеснул вопрос с этой проблемкой. и вот я задал вопрос про этот файлик который находится в главном блоке. сейчас пока gps трудится в авто, я экспериментирую на показаниях температуры в место GPS. Так что вот как то так. щас хочу изучать ваши блоки. попробую собрать проект с термометром.

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

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

#43

Сообщение brigadir218 » 24.01.2024{, 13:13}

всем привет. ребята подскажите что в проекте не так. цыферки на экран выводятся, но они неподвижны. показания датчика температуры не выводятся. блоки вывел вроде те что надо. выводил еше блок fill Screen, но че то тогда на экран выводился номер шрифта. TFT eSPI, ESP32, ili9341 не тач скрин.
Снимок.PNG

Аватара пользователя
DrMario
Лейтенант
Сообщения: 368
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 55
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

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

#44

Сообщение DrMario » 24.01.2024{, 18:08}

brigadir218 писал(а):
24.01.2024{, 13:13}
показания датчика температуры не выводятся.
Данные будут обновляться по импульсу на ходе Print. Подключите к RTrig хотя бы генератор 1 секунды, чтобы обновлялось

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

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

#45

Сообщение brigadir218 » 24.01.2024{, 18:32}

поставил генератор в разрез ртриг и принт., но ничего.

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

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

#46

Сообщение WildCat » 25.01.2024{, 01:50}

brigadir218 писал(а):
24.01.2024{, 18:32}
поставил генератор в разрез ртриг и принт., но ничего.
Генератор перед триггером

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

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

#47

Сообщение brigadir218 » 25.01.2024{, 16:44}

генератор прикрепил. теперь данные выводятся. Только вот там шрифт стандартный-(пиксельный), А как поставить этот шрифт - (Font72rle // Большой 75-пиксельный шрифт)? И еще ,старые показания не затираются и есть легкое мерцание цифр.
Снимок2.PNG

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

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

#48

Сообщение brigadir218 » 26.01.2024{, 16:05}

все, разобрался. здесь на форуме есть пояснения. Поменял схему.
Снимок3.PNG
Но осталась одна проблемка, как убрать мигание цифр, мигают раз в 2 секунды, причем это зависит от генератора. Ребята подскажите как это исправит, может кто сталкивался.

uglerod
Рядовой
Сообщения: 73
Зарегистрирован: 27.11.2016{, 18:32}
Репутация: 5

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

#49

Сообщение uglerod » 26.01.2024{, 22:35}

Вместо генератора и RTrig поставить " Детектор изменения строки", на вход брать строку Теxt.

Аватара пользователя
DrMario
Лейтенант
Сообщения: 368
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 55
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

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

#50

Сообщение DrMario » 27.01.2024{, 00:41}

brigadir218 писал(а):
26.01.2024{, 16:05}
Ребята подскажите как это исправит, может кто сталкивался.
Снимок экрана 2024-01-27 042819.png
Сделайте так
Попытайтесь осознать, что и как должно происходить. Для чего нужен и что делает каждый блок. Зачем каждую секунду применять настройки шрифта?

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

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

#51

Сообщение brigadir218 » 27.01.2024{, 04:47}

Отправлено спустя 6 минут 44 секунды:
DrMario писал(а):
27.01.2024{, 00:41}
brigadir218 писал(а):
26.01.2024{, 16:05}
Ребята подскажите как это исправит, может кто сталкивался.
Снимок экрана 2024-01-27 042819.png
Попытайтесь осознать, что и как должно происходить. Для чего нужен и что делает каждый блок. Зачем каждую секунду применять настройки шрифта?
Этот вариант ничего не дал. цифры как моргали , так и продолжают моргать.

Отправлено спустя 42 минуты 6 секунд:
uglerod писал(а):
26.01.2024{, 22:35}
Вместо генератора и RTrig поставить " Детектор изменения строки", на вход брать строку Теxt.
А где взять этот блок? у меня его нет. конечно попробую поискать в нете.

Аватара пользователя
DrMario
Лейтенант
Сообщения: 368
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 55
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

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

#52

Сообщение DrMario » 27.01.2024{, 07:28}

brigadir218 писал(а):
27.01.2024{, 05:36}
Этот вариант ничего не дал. цифры как моргали , так и продолжают моргать.
Какие настройки у блока датчика температуры? Попробуйте сделать как на снимках, и подать на блок Print Text.
Снимок экрана 2024-01-27 112013.png
Настройки DS19B20
Снимок экрана 2024-01-27 112342.png
Детектор изменения числа (Стандартный блок)

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

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

#53

Сообщение brigadir218 » 27.01.2024{, 11:30}

DrMario писал(а):
27.01.2024{, 07:28}
brigadir218 писал(а):
27.01.2024{, 05:36}
Этот вариант ничего не дал. цифры как моргали , так и продолжают моргать.
Какие настройки у блока датчика температуры? Попробуйте сделать как на снимках, и подать на блок Print Text.
Снимок экрана 2024-01-27 112013.png
Снимок экрана 2024-01-27 112342.png
При таком раскладе, пока показатели неизменны то моргания нет, но как только показания начинают меняться сразу моргают все цифры разом. То есть моргают пока идут изменения в показаниях.

uglerod
Рядовой
Сообщения: 73
Зарегистрирован: 27.11.2016{, 18:32}
Репутация: 5

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

#54

Сообщение uglerod » 27.01.2024{, 14:31}

При изменении одной цифры дисплей обновляет всё число, отсюда и мигание. Число надо разбить на разряды(цифры) и каждую цифру
выводить на свои координаты.

Отправлено спустя 4 минуты 36 секунд:

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

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

#55

Сообщение brigadir218 » 27.01.2024{, 15:29}

uglerod писал(а):
27.01.2024{, 14:35}
При изменении одной цифры дисплей обновляет всё число, отсюда и мигание. Число надо разбить на разряды(цифры) и каждую цифру
выводить на свои координаты.

Отправлено спустя 4 минуты 36 секунд:
Разбивка_4-х_значного_числа_на_цифры_(CODE).ubi
что то ума не приложу как его подключать. подключил пробно на два выхода, синий экран, цифров нету.

Отправлено спустя 2 часа 52 минуты 27 секунд:
вот при таком подключении одни нули на дисплее. темпер не показывает.Снимок5.PNG
Вложения
Снимок5.PNG
Снимок4.PNG
Последний раз редактировалось brigadir218 28.01.2024{, 04:56}, всего редактировалось 1 раз.

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

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

#56

Сообщение cfitymrf » 27.01.2024{, 19:10}

а вот блок DS18 вроде бы не должен быть красным

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

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

#57

Сообщение brigadir218 » 27.01.2024{, 19:39}

cfitymrf писал(а):
27.01.2024{, 19:10}
а вот блок DS18 вроде бы не должен быть красным
да это перед тем как сделать скриншот на него нажимал. так то он черный.

uglerod
Рядовой
Сообщения: 73
Зарегистрирован: 27.11.2016{, 18:32}
Репутация: 5

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

#58

Сообщение uglerod » 27.01.2024{, 22:36}

Выложите проект,чтобы можно было править.

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

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

#59

Сообщение brigadir218 » 28.01.2024{, 04:05}

uglerod писал(а):
27.01.2024{, 22:36}
Выложите проект,чтобы можно было править.
ESP32+tft ILI9341+eSpi=Termometr.flp
(1.02 МБ) 11 скачиваний

uglerod
Рядовой
Сообщения: 73
Зарегистрирован: 27.11.2016{, 18:32}
Репутация: 5

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

#60

Сообщение uglerod » 28.01.2024{, 12:15}

Пробуйте.
Вложения
ESP32+tft ILI9341+eSpi=Termometr_V1.flp
(940.17 КБ) 12 скачиваний

Ответить

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