Панель Nextion

Использование дисплеев и обсуждение пользовательских блоков к ним
igee
Рядовой
Сообщения: 57
Зарегистрирован: 08 июн 2016, 09:15
Откуда: Санкт-Петербург

Панель Nextion

Сообщение igee »

Зачем он тогда уточняет про "два знака после"? Хм.
А количество знаков для конечного поля - ограничить можно, но вводим то мы изначально в поле, которое не имеет ограничений - и в результате можем получить обрубок, который нас не устроит.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

Панель Nextion

Сообщение Олег »

Потому что в Nextion нет float, сравнивать можно только целые числа. А ему надо если <100.08 то так, а если >100.08, то этак.
igee писал(а):ограничить можно, но вводим то мы изначально в поле, которое не имеет ограничений - и в результате можем получить обрубок, который нас не устроит.
Видно мы реализуем по разному, у меня ограничение в поле ввода.
Последний раз редактировалось Олег 10 мар 2017, 11:22, всего редактировалось 1 раз.
igee
Рядовой
Сообщения: 57
Зарегистрирован: 08 июн 2016, 09:15
Откуда: Санкт-Петербург

Панель Nextion

Сообщение igee »

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

Потому что в Nextion нет float, сравнивать можно только целые числа. А ему надо если <100.08 то так, а если >100.08, то этак.
Сравнивать дробное на стороне Nextion -  опять же, следи за точкой, убирай ее и все знаки после второго  после точки, конвертируй и сравнивай.. но я бы так наверное не стал делать).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось igee 10 мар 2017, 13:12, всего редактировалось 1 раз.
Makenz[c
Рядовой
Сообщения: 7
Зарегистрирован: 23 мар 2016, 18:30

Панель Nextion

Сообщение Makenz[c »

Да Олег,мне просто надо ограничить максимальное вводимое значение float.
С двумя знаками после запятой. Запятую двигать не нужно. Например 30.65  А максимум который можно ввести 100.00  Вот только с Си я совсем не дружу. Мне бы пример готовый.
Последний раз редактировалось Makenz[c 10 мар 2017, 15:10, всего редактировалось 1 раз.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

Панель Nextion

Сообщение Олег »

Параметр только один надо так установить, или так много параметров задается?
igee
Рядовой
Сообщения: 57
Зарегистрирован: 08 июн 2016, 09:15
Откуда: Санкт-Петербург

Панель Nextion

Сообщение igee »

Вот вам тот же пример, что выше, только с вашими пожеланиями. Ограничение по количеству символов после точки либо одно на весь проект задаете в переменной fract_lim на экране нумпада, либо привязываете к каждой кнопке( как в примере.) В переменной Numpad.chrs - задаете ограничение на количество вводимых символов. (в примере 6, т.к "100,00"). Аналогично либо на весь проект, либо привязка к кнопке. И обрезка по максимальному значению уже при возврате на экран с которого вызывали нумпад. Если значение больше 100, в текстовом поле будет 100, если меньше 100, то то значение, что ввели на нумпаде.

Добавлено (10.03.2017, 17:03)
---------------------------------------------
Я видел там был вариант расплаты "вскопать огород"! Так не честно! Куда убрали?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось igee 10 мар 2017, 17:04, всего редактировалось 1 раз.
Makenz[c
Рядовой
Сообщения: 7
Зарегистрирован: 23 мар 2016, 18:30

Панель Nextion

Сообщение Makenz[c »

Ребята спасибо,примеры что надо!
Igee,Олег отписался вам в личку.
Последний раз редактировалось Makenz[c 11 мар 2017, 16:04, всего редактировалось 1 раз.
igee
Рядовой
Сообщения: 57
Зарегистрирован: 08 июн 2016, 09:15
Откуда: Санкт-Петербург

Панель Nextion

Сообщение igee »

Хотел бы продолжить тему архитектуры мастер-слейв между дисплеем и ардуиной.
Пару слов о программе. Ардуина принимает показания датчика и при изменении значения - оправляет команду дисплею(использую родную библиотеку ) изменить текстовое поле.
При этом на экране присутствуют еще кнопки, которые при нажатии отправляют в ком порт свой ID(стандратная схема работы кнопок в библиотеке некстион), и который ардуина должна принимать и понимать что кнопка нажата.

Использование такой схемы натолкнуло меня на следующую проблему: если показания датчика меняются непрерывно, ардуина постоянно отправляет данные некстиону в ком порт, а нажатия кнопок на экране при этом в обратную сторону не проходят. Можно, конечно, поставить фильтр, чтобы измененные показания датчика отправлялись не непрерывно, но проблемы это не решает. Если нажать кнопку в момент отправки ардуиной команды на изменение текстового поля, то это нажатие контроллер не увидит.

Отсюда вопрос: как правильно реализовать схему взаимодействия экрана и ардуины?
Я пока что вижу одно решение: Убрать отсылку ID кнопок (и пр.) со стороны дисплея в ком порт. Вместо этого все нажатия фиксировать в самом экране (состоянием переменных или свойствами объектов), а ардуиной циклически эти параметры опрашивать и реагировать на их изменение уже по факту. На подсознании такая схема мне не очень нравится.

Может у кого есть еще какие мысли?

РЕШЕНО В ПОСТЕ 194
Последний раз редактировалось igee 20 мар 2017, 22:30, всего редактировалось 1 раз.
DenisR
Рядовой
Сообщения: 22
Зарегистрирован: 30 ноя 2015, 10:39
Откуда: Магнитогорск

Панель Nextion

Сообщение DenisR »

Здравствуйте коллеги!!!
Вопрос такой сделал проект на Nextion панели и в Flproge . На панели есть две кнопки одна должна зажигать светодиод на 13 ножке что она и делает , а другой элемент это рисунок с вентилятором ( при нажатии на вентилятор он на экране вращается) как сделать чтобы он включался по условию в ардуино допустим температура достигла сколько то градусов он включился . И хотелось бы чтобы на экране на него (вентилятор) нажал и панель кинула в ардуину 1 или 0. Блоки все прилагаю. Хотелось бы увидеть примеры . Заранее спасибо.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
igee
Рядовой
Сообщения: 57
Зарегистрирован: 08 июн 2016, 09:15
Откуда: Санкт-Петербург

Панель Nextion

Сообщение igee »

1. Если вы хотите реализовывать задумку предоставленными FLProg блоками, то вам в первую очередь нужно ознакомиться со справкой по работе с блоками Nextion. Там вы найдете описание подготовительных процедур для отслеживания нажатий. 
2. Чтобы вентилятор работал как кнопка, вы должны отследить нажатие на него и убрать из дисплея реакцию на нажатие. Дисплей должен только отображать состояние дел в контроллере. Зачем вам видеть вращающийся вентилятор, когда он на самом деле выключен?
3. У вас 2 условия на включение вентилятора: это превышение температуры и нажатие на иконку. Соответственно реализовываем каждое условие и заводим на блок "ИЛИ".

Примеры не проверялись.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
DenisR
Рядовой
Сообщения: 22
Зарегистрирован: 30 ноя 2015, 10:39
Откуда: Магнитогорск

Панель Nextion

Сообщение DenisR »

igee спасибо большое что ответили я проверил, но Nextion Editor При компиляции выдает ошибку
Global Memory:31
Page:page0 Memory Occupied:31+30=61
Error: Invalid Variables:fan_press( Double click to jump to code)
Error: Invalid Variables:fan_release( Double click to jump to code)
Compile Successful! 2 Errors, 0 Warnings,File Size:181 946
 
Помогите что не так???
igee
Рядовой
Сообщения: 57
Зарегистрирован: 08 июн 2016, 09:15
Откуда: Санкт-Петербург

Панель Nextion

Сообщение igee »

а, ну да,  .val   допишите после переменных. Все время забываю. У каждого объекта в редакторе есть набор свойств и надо всегда указывать какому именно свойству объекта мы хотим присвоить значение: .val .pic .bco и т.д.
DenisR
Рядовой
Сообщения: 22
Зарегистрирован: 30 ноя 2015, 10:39
Откуда: Магнитогорск

Панель Nextion

Сообщение DenisR »

igee Спасибо  все получилось!!!
igee
Рядовой
Сообщения: 57
Зарегистрирован: 08 июн 2016, 09:15
Откуда: Санкт-Петербург

Панель Nextion

Сообщение igee »

АЛЯРМА!
Кто пользуется библиотекой от ITEAD для ардуино. Там косяк. И не один. Вообще надо это где то большими буквами писать по хорошему. Все ниже сказанное верно для версии библиотеки 0.9.0.
Итак:
1. Дабы сэкономить место при компиляции удалите из папки с библиотекой файлы: NexUpload.h и NexUpload.cpp - 99% что они вам не понадобятся. Это уменьшит объем библиотеки при компиляции на 70%.
2. Чтобы нажатия кнопок на дисплее не терялись (то есть нажимаем - а реакции нет) в случае когда на дисплей отправляются постоянно изменяющиеся данные(индикация показаний датчика например) делаем следующее:

а) в файле NexHardware.h находим строку

Код: Выделить всё

bool recvRetCommandFinished(uint32_t timeout = 100);
и меняем 100 на 0.

б) В файле NexHardware.cpp находим строку:

Код: Выделить всё

sendCommand("bkcmd=1");
и делаем bkcmd=0

в) В том же NexHardware.cpp находим

Код: Выделить всё

while (nexSerial.available())
    {
        nexSerial.read();
    }
и закомментируем. Непонятно для чего они чистят входящий буфер, когда у нас там нажатие на кнопку прилететь может.

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

PS: это решение проблемы из поста 188.
Последний раз редактировалось igee 20 мар 2017, 22:32, всего редактировалось 1 раз.
igrik1972
Рядовой
Сообщения: 75
Зарегистрирован: 08 фев 2017, 00:29

Панель Nextion

Сообщение igrik1972 »

а как сделать так чтоб на странице первой в зависимости от времени года менялась основная картинка .....
Refugee
Рядовой
Сообщения: 5
Зарегистрирован: 02 апр 2017, 14:09
Откуда: Санкт-Петербург

Панель Nextion

Сообщение Refugee »

Уважаемые знатоки, пробовал проект под названием урок 3 по дисплею nextion при компилировать скетча жалуется на отсутствие библиотеки DHT_NEW.h скетч не компилируется. Где взять библиотеку которую использовал автор, а то уже все которые мог перелопатил для датчика dht11
drimer
Рядовой
Сообщения: 57
Зарегистрирован: 07 сен 2015, 18:45
Откуда: vilnius

Панель Nextion

Сообщение drimer »

добрый день как в самой некстион сделать сразу два таймера суточных ? и в flprog ?
drimer
Рядовой
Сообщения: 57
Зарегистрирован: 07 сен 2015, 18:45
Откуда: vilnius

Панель Nextion

Сообщение drimer »

вот файл моего проекта
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Pixima
Рядовой
Сообщения: 68
Зарегистрирован: 30 янв 2016, 11:51

Панель Nextion

Сообщение Pixima »

Господа знатоки, использующие элемент "График", вопрос к Вам!
Какая скорость отрисовки линии у Вас? Почему то у меня при значении скорости уарт 115200 время вывода массива из 320 точек ничем не отличается от 9600. Я бы связал это с тем что скорость всё же осталась прежняя, но если в скетче оставить значение 9600 то коннекта вообще нет. На самой панели скорость менял командой "bauds=115200".

В добавок, на представленном видео скорость вывода графика офигенная (автор говорит, что скорость изменил на 115200), а элементов на экране достаточно много. Я же на чистом экране задаю один элемент "график".

В целом, у меня нет идей, как же увеличить скорость вывода, может кто сталкивался?
 _uVideoPlayer({'url':'https://www.youtube.com/watch?v=8A02d27 ... 01OS1D5qTu');
Аватара пользователя
kiyota
Рядовой
Сообщения: 97
Зарегистрирован: 18 фев 2016, 20:07
Откуда: АЛТАЙСКИЙ КРАЙ
Имя: Олег

Панель Nextion

Сообщение kiyota »

drimer, Дело в том , что в базовой модели NX4832T035 нет встроенных часов реального времени , поэтому
все инструкции связанные с системными переменными RTC в этом проекте работать не будут , а сами таймеры
 и всю логику их работы необходимо реализовать на Arduino . Изложите подробнее логику работы самих
таймеров и какую Arduino вы будете использовать . Я просто делал проекты с этими панелями (различными)
поэтому чем могу помогу .
kiyota
Ответить

Вернуться в «Дисплеи и индикаторы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя