Подсветка на WS2812, Arduino и дисплее AT HMI.

Создание проекта управления подсветкой - это уже традиция для меня. Все началось с дисплея Nextion. Проект можно посмотреть тут. Также создал проект для дисплея DWIN. И, опираясь на полученные навыки, разработал свой дисплей AT HMI, в котором учёл все основные потребности при создании проектов, которых не хватает у Nextion и DWIN. Пришло время сделать проект и для моего дисплея AT HMI. Сделал пример работы с дисплеем 2,8 дюйма и с дисплеем 3,5 дюйма.

Сделал пример работы с дисплеем 2,8 дюйма и с дисплеем 3,5 дюйма.

Также код написал для Arduino и ESP8266. Исходные материалы можно скачать внизу статьи в разделе "Файлы для скачивания". А сейчас перейдем к описанию проекта. Опишу только основные моменты, так как по данному проекту сделаю серию уроков о том, как работать с дисплеями от Arduino-TEX.ru.

Подсветка на WS2812,  Arduino и дисплее AT HMI.

Создание интерфейса проекта в программе Easy HMI.

Создавать интерфейс проекта будем в простой программе Easy HMI. Самый большой плюс программы и дисплеев AT HMI - это то, что при создании интерфейса кнопки, плашки, текста и прочих элементов они появляются автоматически на дисплее, и мы видим, как выглядит интерфейс. В реальном времени можно отредактировать все нужные параметры: текст, цвет, размер, расположение и прочее. Про программу Easy HMI можно почитать тут. В проекте будем использовать плашки и кнопки. Чтобы создать фон дисплея, достаточно указать цвет, координаты 0;0 и размер дисплея (ширина 320, высота 240 или больше).

Чтобы создать фон дисплея, достаточно указать цвет

Фон готов.

Для создания плашек с текстом достаточно указать дополнительно текст, скругление, если нужно, обводу и прочее, как показано на примере ниже.

Для создания плашек с текстом достаточно указать дополнительно текст

Остальные элементы создаем аналогичным образом. Вы можете посмотреть проект, скачав его внизу в разделе "Файлы для скачивания". Одна особенность для дисплея 2,8 дюйма - элементов много, и все разместить на одной странице невозможно, поэтому добавлена еще 1 вспомогательная страница. И для создания объекта на новой странице просто выберем его расположение. И кнопки и плашки появляются на странице 1. Всё достаточно просто.

И кнопки и плашки появляются на странице 1. Всё достаточно просто.

Для создания кнопки с возможностью перехода по страницам в пункте меню "Тип / Переход по стр." выбираем страницу, на которую нужно перейти при нажатии. На кнопке на главной странице выбираем параметр "Страница №1". И для "Страниц 1" выбираем параметр "Главная стр."

И для "Страниц 1" выбираем параметр "Главная стр."

С интерфейсом, я думаю, все понятно.


Взаимодействие с внешним микроконтроллером по UART.

Взаимодействие с внешним микроконтроллером по 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 внизу страницы.

Все доступные функции с описанием находятся на странице с кодом display внизу страницы.

Теперь давайте рассмотрим схемы подключения дисплея AT HMI к Arduino и ESP8266.

Схема подключения дисплея AT HMI к Arduino + WS2812.


Схема подключения дисплея AT HMI к Arduino + WS2812.

Схема подключения дисплея AT HMI к ESP8266 + WS2812.

Схема подключения дисплея AT HMI к ESP8266 + WS2812.

Описание кода для Arduino и ESP8266.

Для начала работы с проектом, вам потребуется установить библиотеки, которые находятся в папке с проектом. Просто скопируйте их в папку «Документы\Arduino\libraries».

Чтобы установить библиотеки, скачайте архив libraries.zip, в разделеДалее вам нужно указать количество подключенных светодиодов в коде для Arduino. Больше изменений не требуется. Проект загружается на плату и начинает работать.

Далее вам нужно указать количество подключенных светодиодов в коде для Arduino.

Если вы знакомы с Arduino, можете внести изменения в код. Например, на странице «display» располагается массив phrases[], где хранятся названия эффектов на русском языке. Вы можете изменить их, но не более 64 символов для одного названия.

на странице «display» располагается массив phrases[], где хранятся названия эффектов на русском языке.

На странице «led» вы можете изменить набор цветов для статического режима. Полная палитра доступна на сайте библиотеки FastLED.

Фотографии к статье

Файлы для скачивания

Код для ESP8266 Код для ESP8266.zip6 Kb 24 Скачать
Код для Arduino Код для Arduino.zip6 Kb 25 Скачать
Библиотеки для проекта Библиотеки для проекта.zip364 Kb 21 Скачать
Интерфейса Easy HMI для 2.8 (320х240) и 3,5 (480х320) Интерфейса Easy HMI для 2.8 (320х240) и 3,5 (480х320).zip3 Kb 24 Скачать

Комментарии

Ваше Имя*


Разработка проектов