Уважаемые пользователи! Наш сайт и форум содержится на средства полученные от рекламы. Если вы хотите и дальше продолжать общаться, скачивать, и т.п. пожалуйста отключите блокировку рекламы для нашего сайта/форума. Можно и покликать по рекламным ссылкам, так будут больше выплаты. Спасибо за понимание!

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

Блоки для TFT дисплеев на чипах ILI9341 и ST7735

Создаем свой блок. Вопросы, помощь знатоков.
av
Майор
Сообщения: 1029
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 68
Имя: Алексей

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#21

Сообщение av » 10.05.2020{, 22:35}

Нужно с этим что то делать. Это уже второй случай когда из за дубликатов библиотек всплывает проблема с русификацией. Может попробовать переименовать библиотеку Adafruit GFX чтобы избежать этой проблемы. Возможно есть еще варианты решения проблемы, кто знает прошу посоветуйте.

neangel
Рядовой
Сообщения: 41
Зарегистрирован: 10.01.2019{, 13:13}
Репутация: 0
Откуда: Москва
Имя: Игорь

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#22

Сообщение neangel » 10.05.2020{, 22:49}

Думаю что это не великая проблема применить чистую ИДЕ.
Но по хорошему в моём случае надо бы удалить мною созданную папку и задать в настройках правильный путь для сохраняемых файлов
5.jpg

av
Майор
Сообщения: 1029
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 68
Имя: Алексей

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#23

Сообщение av » 10.05.2020{, 23:00}

neangel писал(а):
10.05.2020{, 22:49}
Думаю что это не великая проблема применить чистую ИДЕ.
Это не выход пользоваться вроде как костылями. Для новичков которые еще не в теме желательно скачал установил и не мучится с поиском ответа почему не работает кириллица.

texbez
Сержант
Сообщения: 201
Зарегистрирован: 20.11.2016{, 19:57}
Репутация: 2
Откуда: Ростов на дону

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#24

Сообщение texbez » 11.05.2020{, 20:58}

av писал(а):
10.05.2020{, 20:09}
texbez, запустите FLProg скомпилируйте хоть пустой проект. Запустится Arduino IDE. В вкладке "Файл" почти в самом низу "Настройки" открываем. Далее в опционном списке "Сообщения компилятора" выбрать вместо "Ничего" -> "Все" , а также установить галочки в чекбоксах "Показывать подробный вывод" -> "Компиляция", "Загрузка". Теперь при компиляции и загрузке будет выводится подробная информация в окне под полем где пишется код.
Спасибо!

neangel
Рядовой
Сообщения: 41
Зарегистрирован: 10.01.2019{, 13:13}
Репутация: 0
Откуда: Москва
Имя: Игорь

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#25

Сообщение neangel » 23.05.2020{, 00:34}

Здравствуйте товарищ капитан.

Докладываю – нет в жизни счастья.
Не одно так другое.
На статичные значения чисел смотреть ещё можно, но если значение числа динамично меняется.
То лучше на монитор не смотреть ... если число например четырёхзначное, то мигают все 4 цифры а не только крайнее правое.

Понятно что цифры в числе надо стирать.
Но зачем же стирать те которые в трёх(четырёх-пяти)значных числах в данный момент не меняются.


av писал(а):
09.05.2020{, 17:37}
Вообщем критика приветствуется !!!
Многозначные числа в динамике безбожно моргают.
А счастье было так близко и тут такая засада.

С уважением, neangel.

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

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#26

Сообщение aidar_i » 23.05.2020{, 09:41}

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

av
Майор
Сообщения: 1029
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 68
Имя: Алексей

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#27

Сообщение av » 23.05.2020{, 10:31}

aidar_i, в блоках как раз и реализовано затирание старого текста и графики цветом фона (весь экран не заливается цветом фона). Другое дело что микроконтроллер не успевает перерисовывать быстро меняющиеся значения такие как цифровые строки. Хоть и в библиотеке скорость шины SPI установлена скорость 4 Мгц. Нужно пробовать сменить контроллер например на NodeMcu v3 благо nalnik, проверил что работает на этом МК.

neangel
Рядовой
Сообщения: 41
Зарегистрирован: 10.01.2019{, 13:13}
Репутация: 0
Откуда: Москва
Имя: Игорь

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#28

Сообщение neangel » 23.05.2020{, 10:36}

Здравствуйте товарищ подполковник.
aidar_i писал(а):
23.05.2020{, 09:41}
Если хотите , чтобы менялись только изменяющиеся цифры числа, то разложите его на цифры и меняйте при изменении числа или строки.
Это уже не блок.
Полагаю вы предлагаете числа парсить и для каждой цифры ставить блок вывода на монитор.
Вместе с парсингом для пяти-значного числа нужно рисовать не менее 10 блоков (десять!).
И это уже не костыли а кресло-каталка.

А у товарища капитана av не видно желания до такой степени травмировать мозги новичков
av писал(а):
10.05.2020{, 23:00}
Это не выход пользоваться вроде как костылями. Для новичков которые еще не в теме желательно скачал установил и не мучится с поиском ответа почему не работает ...
av писал(а):
09.05.2020{, 17:37}
Вообщем критика приветствуется !!! Так как это раздел "Разработка пользовательских блоков" будем дорабатывать и доделывать описание и выявлять ошибки. А при переносе в раздел "Пользовательские блоки" будут учитываться все нюансы и всевозможные советы по доработке.
Отправлено спустя 11 минут 5 секунд:
И на счёт контроллера.
4.jpg
4.jpg (36.16 КБ) 306 просмотров

av
Майор
Сообщения: 1029
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 68
Имя: Алексей

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#29

Сообщение av » 23.05.2020{, 10:57}

neangel, , Айдар от части прав. Все дело в том что при изменении любого знака из пятизначного числа будет перерисовываться все 5 знаков. По этому они моргают. Как обойти это я не знаю так как не программист (по моему мнению не предназначены эти дисплеи для низкоскоростной Ардуины). Один вариант я предложил в посте #27. Ну и остается предложенный aidar_i, понимаю что это не выход. Но других мыслей по решению этой проблемы у меня к сожалению нет.

Отправлено спустя 9 минут 22 секунды:
av писал(а):
23.05.2020{, 10:31}
Хоть и в библиотеке скорость шины SPI установлена скорость 4 Мгц
Вот здесь я ошибся эта скорость устанавливается для ARM контроллеров.

av
Майор
Сообщения: 1029
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 68
Имя: Алексей

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#30

Сообщение av » 23.05.2020{, 11:08}

neangel писал(а):
23.05.2020{, 10:47}
И на счёт контроллера.
Врать не буду сам лично не проверял на серии ЕСП. Проверял только на Ардуине.

neangel
Рядовой
Сообщения: 41
Зарегистрирован: 10.01.2019{, 13:13}
Репутация: 0
Откуда: Москва
Имя: Игорь

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#31

Сообщение neangel » 23.05.2020{, 11:33}

av я вам благодарен за набор рисования геометричесих фигур.
Из прямоугольников можно сделать эквалайзер и так показывать динамику изменения чисел.
Из линии можно повторить стрелочный прибор и расставить статичные числа.
В цвете получается красота!

Будем считать что у вашей красавицы есть только одна родовая травма с парсингом многозначных чисел.
С Уважением, neangel.

Аватара пользователя
nalnik
Капитан
Сообщения: 955
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 49
Откуда: Кисловодск
Имя: Александр

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#32

Сообщение nalnik » 23.05.2020{, 11:42}

На NodeMcu V3 у меня тоже подмаргивает.
\-- но у меня дисплей с 9 ПИНами.
Вот здесь проект viewtopic.php?f=39&t=6451&start=60#p89821
СпойлерПоказать
Схема01.PNG
СпойлерПоказать
Плата01.PNG
СпойлерПоказать
Плата11.PNG
Плату еще не делал - пока на макетке проверяю .
Плата вот под такой БП
СпойлерПоказать
БП01.PNG
БП01.PNG (227.48 КБ) 283 просмотра
Будит управлять двухконтурным котлом (отопление в доме и отправлять данные на народмонитор.
Я хочу быть добрее, но люди сами нарываются.

av
Майор
Сообщения: 1029
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 68
Имя: Алексей

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#33

Сообщение av » 23.05.2020{, 12:45}

neangel, нужно попытаться создать блок для числовых строк. Только не программисту как это сделать вот в чем вопрос. Надо в коде как то разбивать на отдельные символы и перерисовывать только те знаки которые изменились. Если у кого есть какие мысли по этому поводу подскажите как это сделать в коде. На штатных блоках этот вопрос можно решить, но опять же придется использовать для каждого символа отдельный блок вывода на дисплей. Что не очень хорошо и не целесообразно.

Аватара пользователя
nalnik
Капитан
Сообщения: 955
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 49
Откуда: Кисловодск
Имя: Александр

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#34

Сообщение nalnik » 23.05.2020{, 12:56}

av писал(а):
23.05.2020{, 12:45}
Что не очень хорошо и не целесообразно.
Я заметил -
на черный фон у меня выводится белые, голубые и фиолетовые значения,
так вот при обновлении фиолетовых знаков моргания не заметны.
Может кок то в блоке поменять очередность,
пример:
проверка изменения числа - стирание - вывод . Я тоже не программист - но может поймете смысл.
Готов опробовать изменения в вашем блоке!
Я хочу быть добрее, но люди сами нарываются.

av
Майор
Сообщения: 1029
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 68
Имя: Алексей

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#35

Сообщение av » 23.05.2020{, 13:12}

nalnik, увы это не так работает. Для начала нужно разложить числовую строку на отдельные символы (char) и выводить на дисплей по отдельности и по порядку. Далее нужно делать проверку каждого символа на изменение и только в этом случае производить затирание изменившегося символа с последующим перерисовыванием. Другие символы если не изменились не трогаем. Вот примерно так нужно описать в коде этот процесс. Но моих знаний не хватит на создание такого кода.

av
Майор
Сообщения: 1029
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 68
Имя: Алексей

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#36

Сообщение av » 23.05.2020{, 13:15}

Кстати где то на нашем форуме были блоки для Oled SSD1306 дисплея где применялся отдельный блок для вывода числовых значений. Может если найду подсмотреть как там реализованно вывод числовых значений.

Аватара пользователя
nalnik
Капитан
Сообщения: 955
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 49
Откуда: Кисловодск
Имя: Александр

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#37

Сообщение nalnik » 23.05.2020{, 13:17}

av писал(а):
23.05.2020{, 13:12}
nalnik, увы это не так работает
Вы не поняли меня - не надо раскладывать,
Я хочу быть добрее, но люди сами нарываются.

av
Майор
Сообщения: 1029
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 68
Имя: Алексей

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#38

Сообщение av » 23.05.2020{, 13:25}

nalnik писал(а):
23.05.2020{, 12:56}
проверка изменения числа - стирание - вывод
На данный момент в блоке вывода строки так и делается. Проверяется если строка изменилась, то сначала затирается строка цветом фона (не весь экран) потом выводится новая измененная.

Отправлено спустя 1 минуту 24 секунды:
П.С.
И если строка не меняется , то обновление строки больше не производится в циклах (чтобы исключить мерцание).

Аватара пользователя
nalnik
Капитан
Сообщения: 955
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 49
Откуда: Кисловодск
Имя: Александр

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#39

Сообщение nalnik » 23.05.2020{, 13:34}

av писал(а):
23.05.2020{, 13:26}
(чтобы исключить мерцание).
Моргает как раз в при изменение числа, то есть между затиранием и обновлением получается большой промежуток времени, иногда это происходит не заметно!
Я хочу быть добрее, но люди сами нарываются.

av
Майор
Сообщения: 1029
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 68
Имя: Алексей

Блоки для TFT ILI9341 240*320 SPI и TFT ST7735 1.8", 1.44", 0.96" SPI

#40

Сообщение av » 23.05.2020{, 13:49}

nalnik, все верно ! Мерцание происходит из за того что перерисовывается вся строка с числами. Вот что бы не мерцало нужно перерисовывать только тот знак в строке который изменился, а которые не изменились не затирать и не перерисовывать.

Ответить

Вернуться в «Разработка пользовательских блоков»