Урок 10. Строим графики waveform - дисплей Nextion.

Сегодня в уроке рассмотрим инструмент Waveform Nextion. Который позволит строить графики на сенсорном дисплее Nextion. Посмотрим, какие особенности нужно учитывать при построении графиков. Сгенерируем сигнал для построения 4 графиков. А также выводим график на основе показаний с Arduino.

Строим график на дисплее Nextion по сгенерированным данным таймера.

Для того чтобы посмотреть график нужно добавить в Nextion Editor поле Waveform. А также поля для вывода числа и таймер. Как пользоваться данными элементами рассказывал в предыдущих уроках про дисплей Nextion.

посмотреть график нужно добавить в Nextion Editor поле Waveform. А также поля для вывода числа и таймер.vv

Я изменил стандартный внешний вид отображения графика. Вот что у меня получилось.

стандартный внешний вид отображения графика

А сперва рассмотрим ограничения, о которых написано в официальной документации к дисплею Nextion:

  • Выводимый диапазон на один график от 0 до 255.
  • Один столбец пикселей выводит одно значение.

документации к дисплею Nextion

Также хотелось бы отметить параметр «dis», который отвечает за масштаб отображения данных по высоте. В предыдущих версиях Nextion Editor данного параметра не было. При этом как он влияет не совсем понятно. При уменьшении масштаб выводимых значений на графике растет. И наоборот. И не совсем понятно для чего данный параметр добавили, мы все равно ограничены в диапазоне от 0 до 255.

Также хотелось бы отметить параметр «dis», который отвечает за масштаб отображения данных по высоте.

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

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

Для этого увеличим числовое значение каждый раз по истечению времени. Таймер я настроил на минимально допустимое время 50 миллисекунд.

Таймер я настроил на минимально допустимое время 50 миллисекунд.

Чтобы график выводился нужно предать следующие параметры:


add 1,0,n0.val

  • add – кодовое слово
  • 1 – id элемента, на который предаём данные. В моем случае это 1.
  • 0 – номер графика, который будет строиться (от 0 до 3).
  • n0.val – значения которые будут выводиться на графике. (в нашем случае числовое значение, которое мы увеличиваем на единицу при каждом срабатывании таймера.)

Чтобы график выводился нужно предать следующие параметры:

Запускаем отладку и вот что получаем. Значение в текстовом поле увеличивается и строится нарастающий график. Но видим одну особенность, график строится максимум до 255, а числовое значение увеличивается дальше. В итоге получаем пилообразный график.

В итоге получаем пилообразный график.

Строим максимальное количество графиков на дисплее Nextion.

Сколько можно одновременно вывести графиков на дисплей Nextion? Ответ на данный вопрос можно найти в одном из параметров настроек элемента Waveform. А именно свойство «ch» отвечает за количество выводимых графиков. Получается, что одновременно можно вывести до 4 графиков на одно поле Waveform.

одновременно можно вывести до 4 графиков на одно поле Waveform.

Также можно настроить цвет каждого графика.

Также можно настроить цвет каждого графика.

В настройках таймера сделал сдвиг графиков, чтобы они не наслаивались друг на друга, и было наглядно.

В настройках таймера сделал сдвиг графиков, чтобы они не наслаивались друг на друга, и было наглядно.

Как видим, графики строятся и все выглядит достаточно красиво.

Как видим, графики строятся и все выглядит достаточно красиво.

Вывод графиков на дисплее Nextion по полученным данным с Arduino.

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

Для построения графиков по данным полученным с Arduino добавил дополнительные поля «Показание»

Данные с Arduino буду выводить на первый график. Поэтому его нужно закомментировать в таймере дисплея.

Данные с Arduino буду выводить на первый график.

Сейчас осталось написать код для Arduino. Чтобы упростить передачу данных на дисплей с Arduino, написал функцию, которая передает данные в нужной последовательности на дисплей.

Чтобы упростить передачу данных на дисплей с Arduino, написал функцию

SendAdd(1, 0, Value);

  • 1 – id элемент,на который предаём данные. В моем случае это 1.
  • 0 – номер графика, который будет строиться (от 0 до 3).
  • Value – значения которые будут выводиться на графике. (в моем случае это данные с потенциометра).

Данный пример не получится проверить через Debug, нужно загрузить прошивку tft nextion в дисплей и код в Arduino.

Данный пример не получится проверить через Debug, нужно загрузить прошивку tft nextion в дисплей и код в Arduino.

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

предыдущие 3 графика также отображаются

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

Поигрался немного с настройками и получил вот такие забавные графики.

Внимание! Подписчики на сайте boosty могут скачать исходные файлы в формате .HMI, код для Arduino.


Вывод по Nextion Tutorial.

Как видим работать с графиками можно, при этом есть возможности строить несколько графиков независимых друг от друга. Но ограничение в 255 сильно омрачает работу с графиками на Nextion Display.

Понравился Урок Строим графики waveform - дисплей Nextion? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

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

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

tft Nextion 3.5 tft Nextion 3.5.zip184 Kb 835 Скачать
.hex файлы прошивки .hex файлы прошивки.zip14 Kb 742 Скачать

Комментарии

Ваше Имя*


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