Создание проекта управления подсветкой - это уже традиция для меня. Все началось с дисплея Nextion. Проект можно посмотреть тут. Также создал проект для дисплея DWIN. И, опираясь на полученные навыки, разработал свой дисплей AT HMI, в котором учёл все основные потребности при создании проектов, которых не хватает у Nextion и DWIN. Пришло время сделать проект и для моего дисплея AT HMI. Сделал пример работы с дисплеем 2,8 дюйма и с дисплеем 3,5 дюйма.
Также код написал для Arduino и ESP8266. Исходные материалы можно скачать внизу статьи в разделе "Файлы для скачивания". А сейчас перейдем к описанию проекта. Опишу только основные моменты, так как по данному проекту сделаю серию уроков о том, как работать с дисплеями от Arduino-TEX.ru.
Создание интерфейса проекта в программе Easy HMI.
Создавать интерфейс проекта будем в простой программе Easy HMI. Самый большой плюс программы и дисплеев AT HMI - это то, что при создании интерфейса кнопки, плашки, текста и прочих элементов они появляются автоматически на дисплее, и мы видим, как выглядит интерфейс. В реальном времени можно отредактировать все нужные параметры: текст, цвет, размер, расположение и прочее. Про программу Easy HMI можно почитать тут. В проекте будем использовать плашки и кнопки. Чтобы создать фон дисплея, достаточно указать цвет, координаты 0;0 и размер дисплея (ширина 320, высота 240 или больше).
Фон готов.
Для создания плашек с текстом достаточно указать дополнительно текст, скругление, если нужно, обводу и прочее, как показано на примере ниже.
Остальные элементы создаем аналогичным образом. Вы можете посмотреть проект, скачав его внизу в разделе "Файлы для скачивания". Одна особенность для дисплея 2,8 дюйма - элементов много, и все разместить на одной странице невозможно, поэтому добавлена еще 1 вспомогательная страница. И для создания объекта на новой странице просто выберем его расположение. И кнопки и плашки появляются на странице 1. Всё достаточно просто.
Для создания кнопки с возможностью перехода по страницам в пункте меню "Тип / Переход по стр." выбираем страницу, на которую нужно перейти при нажатии. На кнопке на главной странице выбираем параметр "Страница №1". И для "Страниц 1" выбираем параметр "Главная стр."
С интерфейсом, я думаю, все понятно.
Взаимодействие с внешним микроконтроллером по UART.
Наши дисплеи имеют выводы UART2. И при нажатии на созданную кнопку по UART2 передаются данные в формате:
Bt03=1
Где,
Bt03 – означает, что была нажата кнопка с ID 3 (ID – идентификатор кнопки, который задан ранее в программе Easy HMI).
=1 - статус кнопки. Кнопка без фиксации означает, что кнопка нажата. Если это значение 0, означает, что кнопку отпустили (Bt03=0). Кнопка с фиксацией – 1, кнопка зафиксирована в нажатом состоянии, 0 — кнопка вернулась в изначальное состояние.
Также по UART можно управлять элементами на дисплеях, для этого нужно отправить команду:
bt.2.txt=Привет\n – изменить текст на кнопке с ID 2
pl.2.txt=Привет\n – изменить текст на плашке с ID 2
bt.2.swi=1\n — изменить состояние кнопки с фиксацией на нажатое состояние (0 — вернуть в изначальное состояние).
bt.2.stt=1\n — заблокировать кнопку (на кнопку нельзя нажать) 0 — снять блокировку с кнопки.
pl.2.col=FFFFFF\n — изменить цвет плашки, цвет в формате #FFFFFF
pl.2.wid=200\n – задать ширину плашки 200 px.
pl.2.hig=200\n – задать высоту плашки 200 px.
sc.1.num=2\n – Перейти на страницу 2 (0 — главная страница, 1-5 страницы).
Команды могут показаться запутанными, но не беспокойтесь, я написал функции, которые позволят без проблем выполнять все команды, указав всего 1-2 значения.
SendBtnTxt(1, "Выкл."); // устанавливаем текст на кнопке с ID 1
SendPlTxt(3, "0%"); // устанавливаем текст на плашке с ID 3
SendBtSnus(2, 1); // ставим блок на кнопку с ID 2
SendPlSwich(6, 0); // возвращаем кнопку с фиксацией с ID 6 в изначальное положение
Все доступные функции с описанием находятся на странице с кодом display внизу страницы.
Теперь давайте рассмотрим схемы подключения дисплея AT HMI к Arduino и ESP8266.
Схема подключения дисплея AT HMI к Arduino + WS2812.
Схема подключения дисплея AT HMI к ESP8266 + WS2812.
Описание кода для Arduino и ESP8266.
Для начала работы с проектом, вам потребуется установить библиотеки, которые находятся в папке с проектом. Просто скопируйте их в папку «Документы\Arduino\libraries».
Далее вам нужно указать количество подключенных светодиодов в коде для Arduino. Больше изменений не требуется. Проект загружается на плату и начинает работать.
Если вы знакомы с Arduino, можете внести изменения в код. Например, на странице «
display» располагается массив
phrases[], где хранятся названия эффектов на русском языке. Вы можете изменить их, но не более 64 символов для одного названия.
На странице «
led» вы можете изменить набор цветов для статического режима. Полная палитра доступна
на сайте библиотеки
FastLED.
Фотографии к статье
Файлы для скачивания
|
Код для ESP8266.zip | 6 Kb | 101 |
Скачать
Вы можете скачать файл.
|
|
Код для Arduino.zip | 6 Kb | 96 |
Скачать
Вы можете скачать файл.
|
|
Библиотеки для проекта.zip | 364 Kb | 98 |
Скачать
Вы можете скачать файл.
|
|
Интерфейса Easy HMI для 2.8 (320х240) и 3,5 (480х320).zip | 3 Kb | 89 |
Скачать
Вы можете скачать файл.
|
Комментарии