Урок 4. Button Nextion. Управление яркостью, переключение режимов.
Кнопку Dual-state рассмотрели в предыдущем уроке. В данном уроке про дисплей Nextion, посмотрим, как работать с обычной кнопкой (Button). Научимся изменять яркость подсветки, а также переключать режимы световых эффектов. Всего доступно 55 режимов. Настроим поочерёдный вывод каждого режима.
Аналогичным способом добавляем кнопки управления яркостью.
Добавим иконки для каждой кнопки управления яркостью. Вот такой интерфейс получается.
Отправляем сигнал нажатия кнопки на Arduino.
Для каждого элемента на дисплее есть обработчик события нажатия кнопки «Tach Press Event». Чтобы предать информации по UART используются команды:
Print – предаём параметры.
Printh – предаём параметры и переводим каретку на новую строку.
Для включения и выключения подсветки отправляем значение «power», и чтобы на стороне Arduino определить конец команды, отправим символы «0d 0a».
Аналогично добавляем команды для кнопок:
"prev" – предыдущий световой эффект.
"next" – следующий эффект.
Отправляем сигнал об изменения яркости подсветки:
"plus" – увеличение яркости.
"minus" – уменьшение яркости.
Сейчас проверим работоспособность. Нажмем на кнопку «Debug».
Понажимаем на кнопки.
Посмотрим какие команды у нас отправляются с дисплея. Отлично, можно перейти к коду на Arduino.
Переключаем режимы подсветки. Разбираем код для Arduino.
В предыдущем уроке мы рассмотрели основной код и знаем как разобрать полученную информацию с дисплея. В функцию AnalyseString() добавим условия, определяющие новые команды с экрана Nextion.
Если получили команду "prev", нам нужно переключить режим на предыдущий. Чтобы переключения режимов подсветки был цикличный, добавим условие, которое определяет, что дошли до нулевого режима и переключение начнем с последнего режима под номером 54.
Затем устанавливаем режим, чтобы он отобразился на светодиодной ленте. А также выведем в монитор порта информацию о номере режима и его названии.
Данная информация нам пригодиться в следующем уроке, для вывода названия режима на экран.
При переключении на следующий режим "next", необходимо зациклить так, чтобы номер режима не был больше 54. Остальные параметры аналогичны переключению на предыдущий режим.
Изменяем яркость подсветки. Разбираем код для Arduino.
Изменение яркости немного отличается от переключения режимов подсветки. При получении команды, для увеличения яркости "plus", к текущему значению яркости прибавляем 10. Это позволяет нам сделать 10 режимов яркости. Можно данное значение поменять, например на 5, и уже будет 20 режимов яркости.
Яркость будем увеличивать до максимального значения. Также будем отслеживать, чтобы значение яркости не превысило 100.
Затем нам нужно установить яркость ленты.
При уменьшении яркости "minus", уменьшаем яркость до минимального значения 0. При 0 подсветка отключиться и будет непонятно, уменьшили мы яркость до нулевого значения или просто отключили подсветку. Можно ограничить минимальное значение, например установить 10. И тогда яркость не будет меньше установленного значения.
Достаточно простые алгоритмы позволяют изменять яркость подсветки.
Проверяем результат управление подсветкой на ws2812 с дисплея Nextion.
Прошивка доступна только для подписчиков на boosty и составляет символическую сумму. За данную подписку вы получите доступ к исходным материалам уроков.
Подключаем питание. Включаем подсветки и можем изменять режимы световых эффектов ленты ws2812. Эффектов много, поэтому просмотр всех режимов займет какое-то время.
Затем можно поиграть с изменением яркости.
Все работает так как и задумано. В следующем уроке научимся выводить название эффектов на дисплей и уровень яркости.
Внимание! Подписчики на сайте boostyмогут скачать исходные файлы в формате .HMI, код для Arduino.
Понравился УрокButton Nextion. Управление яркостью, переключение режимов? Не забудь поделиться с друзьями в соц. сетях.
Комментарии