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

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

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

Блоки для дисплеев 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 МБ) 584 скачивания
Вложения
ESP32-ILI9341 Statr.flp
Пример. Для калибровки из КОМ порта отправить calibrate
(778.25 КБ) 579 скачиваний
TFT eSPI.ubl
Конструктор из блоков
(1.05 МБ) 520 скачиваний
Последний раз редактировалось DrMario 18.09.2020{, 05:43}, всего редактировалось 2 раза.

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

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

#61

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

uglerod писал(а):
28.01.2024{, 12:15}
Пробуйте.


:D Гениально! Осталось только подкорректировать мелочи. Точка почему то не вывелась на экран. ну ничего, это ерунда. щас займусь. Главное что показания работают четко. Огромное спасибо Вам и всем кто помогал! :smile152:

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

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

#62

Сообщение uglerod » 28.01.2024{, 13:25}

Ну и чудненько. Удачи!

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

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

#63

Сообщение brigadir218 » 28.01.2024{, 17:47}

uglerod писал(а):
28.01.2024{, 13:25}
Ну и чудненько. Удачи!
И снова я. Опять выявилась проблема в измерениях. 1-я , это когда при показаниях температуры менее 10℃. показывает 09 ,
IMG_20240128_235927.jpg
и 2-я, это когда :helpme: при показаниях за минус -℃. показывает так:
IMG_20240129_000041.jpg

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

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

#64

Сообщение uglerod » 28.01.2024{, 18:45}

Проверяйте. Может что то упустил. Но основная мысль и направление я думаю понятны.Дерзайте.

Отправлено спустя 1 минуту 59 секунд:
Блоки мои, я немного дорабатывал их под свои нужды. Они рабочие.
Вложения
ESP32+tft ILI9341+eSpi=Termometr_V1.1.flp
(1.17 МБ) 25 скачиваний

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

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

#65

Сообщение brigadir218 » 28.01.2024{, 19:15}

uglerod писал(а):
28.01.2024{, 18:47}
Проверяйте. Может что то упустил. Но основная мысль и направление я думаю понятны.Дерзайте.

Отправлено спустя 1 минуту 59 секунд:
Блоки мои, я немного дорабатывал их под свои нужды. Они рабочие.
Спасибо большое за помощь!

Аватара пользователя
Larisa
Рядовой
Сообщения: 18
Зарегистрирован: 20.07.2023{, 20:59}
Репутация: 0
Имя: Лариса

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

#66

Сообщение Larisa » 02.02.2024{, 15:59}

Всем привет! Как и где изменить опорную точку отсчета выравнивания текстового графика? :smile427:
Вложения
2.bmp
2.bmp (5.93 МБ) 603 просмотра

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

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

#67

Сообщение uglerod » 03.02.2024{, 11:48}

Этот блок для вывода текста. В наборе блоков есть для графики.

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

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

#68

Сообщение brigadir218 » 07.02.2024{, 21:21}

Всем привет! ребята подскажите пожалуйста, существует ли блок, для автоматической регулировки яркости с помощью фоторезистора на дисплее TFT ili 9341. 2.8 дюйма не тач скрин. По алгоритму когда светло- полная яркость, сумерки- средняя яркость и когда темно тусклый экран. В интернете нет ну вообще никакой информации.

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

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

#69

Сообщение WildCat » 07.02.2024{, 22:39}

Это ж элементарная задача.

Примерно как искать блок на кнопку, которая будет включать светодиод.

Фототранзистор/фоторещистор - делитель на вход АЦП - блок масштабирования - выход ШИМ на транзисторный ключ для управления яркостью подсветки.

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

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

#70

Сообщение brigadir218 » 08.02.2024{, 08:06}

WildCat писал(а):
07.02.2024{, 22:39}
Это ж элементарная задача.

Примерно как искать блок на кнопку, которая будет включать светодиод.

Фототранзистор/фоторещистор - делитель на вход АЦП - блок масштабирования - выход ШИМ на транзисторный ключ для управления яркостью подсветки.

Я понимаю что гениальное все просто, но я уже весь мозг сломал. Как? вот схемка. на ней экран делается ярче и темнее. но как за фиксировать эти параметры что бы при определенных настройках экран светился ярко неизменно, а в вечернее время суток затемнялся. В теории я понимаю, что надо поставить второй такой же блок с другими настройками, но как его подключить? че то у меня не получается.
Снимок6.PNG
Снимок7.PNG
Снимок7.PNG (10.44 КБ) 483 просмотра

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

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

#71

Сообщение uglerod » 08.02.2024{, 15:14}

Блок масштабирования настраивать под свои хотелки.Для ESP32 аналоговый вход значения от 0 до 4095.
Вложения
Яркость_ШИМ.flp
(55.84 КБ) 12 скачиваний

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

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

#72

Сообщение WildCat » 08.02.2024{, 16:20}

brigadir218 писал(а):
08.02.2024{, 08:06}
как за фиксировать эти параметры что бы при определенных настройках экран светился ярко неизменно, а в вечернее время суток затемнялся.
Не понял вопроса.
Вечернее время суток как определяется? По часам? Или по освещенности?

Что значит «зафиксировать»? Записать значение уровня подсветки и не реагировать на датчик освещенности?

При каких «определенных настройках»?

Разложите задачу на составные части, сейчас какая-то мешанина.

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

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

#73

Сообщение brigadir218 » 08.02.2024{, 17:24}

1. Пардон, в темное время суток . И по освещенности.
Нужно чтоб было так. Пока светло - экран ярко светит, сумерки - чуть приглушить яркость, темное время суток - экран тусклый.
2. «зафиксировать», да , Записать значение уровня подсветки и не реагировать на датчик освещенности.
А то я накидал у себя скетч, кривой получился экран затемнялся и светлел ,но как то не стабильно, мерцал от малейшего изменения светового потока. да еще при максимальной яркости работал 4 сек. и потом полностью темнел пока фонариком по фоторезистору не посветишь.
Надеюсь теперь изложил задачу правильно.

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

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

#74

Сообщение WildCat » 08.02.2024{, 17:51}

Блок нелинейного масштабирования.

Задаете значения на входе и рисуете «ступеньку» для выходного сигнала.
Таким образом, можно разбить весь диапазон не плавно, а как раз по предустановленным значениям яркости.

Аватара пользователя
Larisa
Рядовой
Сообщения: 18
Зарегистрирован: 20.07.2023{, 20:59}
Репутация: 0
Имя: Лариса

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

#75

Сообщение Larisa » 09.02.2024{, 00:14}

Добрый вечер! Обратила внимание, что в блоках вывода текста присутствует вход для цвета. :smile9:
А есть у Вас такие же блоки но для графики, что бы для линий и фигур можно было цвет задавать? :smile198:
Вложения
2.bmp
2.bmp (5.93 МБ) 409 просмотров

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

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

#76

Сообщение WildCat » 09.02.2024{, 00:49}

можно подправить код в блоке

Отправлено спустя 12 минут 42 секунды:
Скриншот 09-02-2024 005534.jpg
Скриншот 09-02-2024 005623.jpg
Результат: добавляется вход Color
Скриншот 09-02-2024 005653.jpg
Скриншот 09-02-2024 005653.jpg (6.27 КБ) 399 просмотров
То же самое с линиями и фигурами

полезно почитать примеры работы с кодом.
Вот в этой статье довольно доходчиво расписано на примерах
https://projectalt.ru/publ/arduino_esp8 ... /10-1-0-43

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

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

#77

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

uglerod писал(а):
08.02.2024{, 15:14}
Блок масштабирования настраивать под свои хотелки.Для ESP32 аналоговый вход значения от 0 до 4095.
И снова вы мне очень помогли, большущее спасибо!

Отправлено спустя 3 минуты 52 секунды:
WildCat писал(а):
08.02.2024{, 17:51}
Блок нелинейного масштабирования.

Задаете значения на входе и рисуете «ступеньку» для выходного сигнала.
Таким образом, можно разбить весь диапазон не плавно, а как раз по предустановленным значениям яркости.
И вам тоже большое спасибо что не остались в стороне и помогли.

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

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

#78

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

И снова здравствуйте. Ребята, очередной затык! Проблема с выводом картинки, точнее с цветными значками на дисплей. когда делал проект на дисплее st7735 с трудом, но научился выводить цветные картинки, а тут что то немного по другому, но не получается. Точнее получилось вывести картинку в цвете, но цвета не соответствуют заданным. В инете есть тому объяснения, но уж слишком замудренные, даже с бутылкой не разобраться. Три дня уже колдую над этим и только получилось вывести картинку с неправильным цветом.
Я использую tft ili9341 без тачскрина. картинку вывожу не с sd карты а через массив. У кого. ни будь есть какие ни будь идеи как сделать правильные цвета?

Аватара пользователя
Larisa
Рядовой
Сообщения: 18
Зарегистрирован: 20.07.2023{, 20:59}
Репутация: 0
Имя: Лариса

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

#79

Сообщение Larisa » 11.02.2024{, 14:18}

brigadir218 писал(а):
11.02.2024{, 13:16}
И снова здравствуйте. Ребята, очередной затык! Проблема с выводом картинки, точнее с цветными значками на дисплей. когда делал проект на дисплее st7735 с трудом, но научился выводить цветные картинки, а тут что то немного по другому, но не получается. Точнее получилось вывести картинку в цвете, но цвета не соответствуют заданным. В инете есть тому объяснения, но уж слишком замудренные, даже с бутылкой не разобраться. Три дня уже колдую над этим и только получилось вывести картинку с неправильным цветом.
Я использую tft ili9341 без тачскрина. картинку вывожу не с sd карты а через массив. У кого. ни будь есть какие ни будь идеи как сделать правильные цвета?
Может быть причина в этих двух строчках? Закомментируйте одну и раскомментируйте другую.
Вложения
2.bmp
2.bmp (2.27 МБ) 256 просмотров

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

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

#80

Сообщение brigadir218 » 11.02.2024{, 16:14}

Larisa писал(а):
11.02.2024{, 14:18}
brigadir218 писал(а):
11.02.2024{, 13:16}
И снова здравствуйте. Ребята, очередной затык! Проблема с выводом картинки, точнее с цветными значками на дисплей. когда делал проект на дисплее st7735 с трудом, но научился выводить цветные картинки, а тут что то немного по другому, но не получается. Точнее получилось вывести картинку в цвете, но цвета не соответствуют заданным. В инете есть тому объяснения, но уж слишком замудренные, даже с бутылкой не разобраться. Три дня уже колдую над этим и только получилось вывести картинку с неправильным цветом.
Я использую tft ili9341 без тачскрина. картинку вывожу не с sd карты а через массив. У кого. ни будь есть какие ни будь идеи как сделать правильные цвета?
Может быть причина в этих двух строчках? Закомментируйте одну и раскомментируйте другую.
У меня там эти строчки были закомментированы обе, ну я попробовал как вы сказали- на экране все цвета по перепутались. итог, результат ноль. Вернул все обратно.

Отправлено спустя 11 часов 13 минут 52 секунды:
вот так отображаются картинки.
zhvfy78t.png
zhvfy78t.png (156.97 КБ) 210 просмотров

Ответить

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