Урок 5. Передаем информацию с Arduino на дисплей Nextion.
На дисплее Nextion можно разместить большое количество кнопок, и управлять неограниченным количеством элементов и свойствами исполнительных механизмов. Но не плохо было бы выводить на дисплей информацию о работе устройства, положения исполнительного механизма, конфигурацию устройства и пр. Сегодня в уроке рассмотрим, как можно передать на дисплей текстовую и цифровую информацию и выведем названия световых эффектов подсветки на адресных светодиодах. А также уровень яркости подсветки.
Один шрифт мы уже добавляли в предыдущем уроке. Сегодня добавим еще 2. Для этого переходим «Tools -> Font Generator».
В открывшемся окне указываем размер шрифта «40». В поле «Font» выбираем шрифт. Также поставим галочку полужирный шрифт «Bold». И наконец указываем название, я использую название по размеру шрифта. Вы можете указать свое название.
Затем сохраняем файл шрифта, в качестве имени также указываем размер шрифта.
После чего увидим, что шрифт успешно сгенерирован. Нажимаем на кнопку «Ok».
В следующем окне у вас спросит, нужно ли добавить шрифт в проект, нажимаем на кнопку «Yes».
Посмотреть доступные шрифты можно в левом нижнем углу программы, во вкладке «Fonts».
Как видим, я добавил еще шрифт 18. Обратите внимание на поле «id», по данному индикатору будем использовать добавленные шрифты в проект.
Элемент «Text», добавляем в проект и настраиваем атрибуты.
Для вывода названия светового эффекта, добавим текстовое поле.
В левом верхнем углу появиться элемент «t1».
Разместим его в нужном месте на экране.
Приступим к настройкам. А перед этим, зайдем на странице библиотеки WS2812FX и найдем самое большое название светового эффекта. Чтобы проверить, уместиться данное название между кнопками переключения режимов, которые мы добавили в предыдущем уроке.
В свойстве текстового поля указываем максимальный размер поля «txt_maxl» в 30 символов. И добавляем максимально длинное название эффекта «Color Wipe Reverse Inverse». Данный эффект имеет порядковый номер 6. Который мы установили по умолчанию в предыдущем уроке.
Как видим, данное название умещается и остаётся место. Поэтому мы можем увеличить размер шрифта.
В поле «font» указываем значение «2», это индикатор ранее созданного шрифта 18 размера. Не забываем посмотреть, чтобы текст располагался по центру.
Смотрим что у нас получилось. Как видим, текст располагается максимально красиво.
Элемент «Number», настраиваем свойства вывода цифровой информации.
Для вывода цифровых значений существует отдельный элемент «Number». Добавим его в наш проект.
В левом верхнем углу увидим элемент «n0».
Разместим данное поле на экране в нужном месте.
Сделаем фон в виде картинки, для этого в атрибутах (свойство) элемента выбираем в поле «sta» значение «image». Кликаем по полю «pic» и добавляем картинку.
Затем нам нужно поменять цвет шрифта на белый. Для этого кликаем по полю «pco». Выбираем белый цвет. Для выбора цвета нажмите на надпись «select…».
Размер шрифта нужно установить 40. Для этого в поле «font» выбираем 1. И напишем максимальное значение «100», которое будет выводиться в данном поле.
Проверяем результат. Все выглядит отлично.Можно перейти к коду на Arduino.
Передаем с Arduino на дисплей Nextion цифровую информацию.
Для того чтобы в коде не писать постоянно весь набор значений, который нужен, чтобы передать цифровое значение на дисплей, создадим 2 функции:
SendInt() – функция, оправляющая на дисплей Nextion (номер экрана, название переменной) + данные.
comandEnd() - функция отправки конца команды. Команда, поступающая в дисплей, должна заканчиваться символами «0xFF0xFF0xFF».
Сейчас, чтобы отправить цифровое значения на дисплей, нужно написать всего 1 строчку кода.
Отправим текущее значение яркости, при нажатии кнопки увеличения яркости.
Отправляем следующие параметры на дисплей:
Led – название экрана.
n0 – название поля.
Val – свойство поля.
Yarkast – значение.
Отправка других цифровых параметров осуществляется по аналогии. В следующих уроках будем отправлять состояние кнопки, включение таймера, значение переменной и прочие цифровые параметры.
Передаем с Arduino на дисплей название световых эффектов.
Для передачи текстовой информации на дисплей, нам нужно добавить еще одну функцию SendData().
И для передачи текстовой информации потребуется написать всего 1 строчку кода. Но тут есть свои нюансы. Текст должен передаваться как строка и в кавычках. В противном случае дисплей не поймет, что вы ему отправили.
На экран предаём:
Led – название экрана.
t1 – название поля.
txt – свойство поля.
String(strip.getModeName(strip.getMode()))
– Строка. В предыдущем уроке мы рассмотрели, что это за конструкция и
вывели данные значения в монитор порта.
"\"" – кавычки, их необходимо экранировать, для этого используется символ «\».
Способ передачи несложный, но есть свои нюансы, которые нужно учитывать и быть внимательным.
Проверяем работоспособность передачи информации с Arduino на дисплей Nextion.
Загружаем прошивку на дисплейNextion и код в Arduino, и проверяем как все работает. Но перед этим, желательно, значение яркости в настройке дисплея указываем 50%, так как в прошивке при включении яркость установлена 50. Но это нужно на данном этапе разработки. В дальнейшем это будет не важно. Особенно когда мы будем сохранять все параметры в энерго независимую память.
Проект становиться более информативный. Так как мы знаем какой световой эффект выводиться на экран.
И сейчас понятно, что яркость у нас минимальная и нажимать на уменьшения не стоит. Данный вариант уже применим в ваших проектах.
Для подписчиков на boosty доступны не только все исходные файлы урока, но и вариант отображения изменения яркости с помощью прогресс бара.
В следующем уроке начнем работать со следующим экраном, сделаем клавиатуру и научимся проверять пароль, введённый с клавиатуры на дисплее.
Внимание! Подписчики на сайте boostyмогут скачать исходные файлы в формате .HMI, код для Arduino.
Понравился УрокПередаем информацию с Arduino на дисплей Nextion? Не забудь поделиться с друзьями в соц. сетях.
Комментарии