Страница 10 из 22

Панель Nextion

Добавлено: 10.03.2017{, 11:00}
igee
Зачем он тогда уточняет про "два знака после"? Хм.
А количество знаков для конечного поля - ограничить можно, но вводим то мы изначально в поле, которое не имеет ограничений - и в результате можем получить обрубок, который нас не устроит.

Панель Nextion

Добавлено: 10.03.2017{, 11:18}
Олег
Потому что в Nextion нет float, сравнивать можно только целые числа. А ему надо если <100.08 то так, а если >100.08, то этак.
igee писал(а):ограничить можно, но вводим то мы изначально в поле, которое не имеет ограничений - и в результате можем получить обрубок, который нас не устроит.
Видно мы реализуем по разному, у меня ограничение в поле ввода.

Панель Nextion

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

Потому что в Nextion нет float, сравнивать можно только целые числа. А ему надо если <100.08 то так, а если >100.08, то этак.
Сравнивать дробное на стороне Nextion -  опять же, следи за точкой, убирай ее и все знаки после второго  после точки, конвертируй и сравнивай.. но я бы так наверное не стал делать).

Панель Nextion

Добавлено: 10.03.2017{, 14:26}
Makenz[c
Да Олег,мне просто надо ограничить максимальное вводимое значение float.
С двумя знаками после запятой. Запятую двигать не нужно. Например 30.65  А максимум который можно ввести 100.00  Вот только с Си я совсем не дружу. Мне бы пример готовый.

Панель Nextion

Добавлено: 10.03.2017{, 15:37}
Олег
Параметр только один надо так установить, или так много параметров задается?

Панель Nextion

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

Добавлено (10.03.2017, 17:03)
---------------------------------------------
Я видел там был вариант расплаты "вскопать огород"! Так не честно! Куда убрали?

Панель Nextion

Добавлено: 11.03.2017{, 15:28}
Makenz[c
Ребята спасибо,примеры что надо!
Igee,Олег отписался вам в личку.

Панель Nextion

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

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

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

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

РЕШЕНО В ПОСТЕ 194

Панель Nextion

Добавлено: 19.03.2017{, 09:58}
DenisR
Здравствуйте коллеги!!!
Вопрос такой сделал проект на Nextion панели и в Flproge . На панели есть две кнопки одна должна зажигать светодиод на 13 ножке что она и делает , а другой элемент это рисунок с вентилятором ( при нажатии на вентилятор он на экране вращается) как сделать чтобы он включался по условию в ардуино допустим температура достигла сколько то градусов он включился . И хотелось бы чтобы на экране на него (вентилятор) нажал и панель кинула в ардуину 1 или 0. Блоки все прилагаю. Хотелось бы увидеть примеры . Заранее спасибо.

Панель Nextion

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

Примеры не проверялись.

Панель Nextion

Добавлено: 19.03.2017{, 12:43}
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
 
Помогите что не так???

Панель Nextion

Добавлено: 19.03.2017{, 14:27}
igee
а, ну да,  .val   допишите после переменных. Все время забываю. У каждого объекта в редакторе есть набор свойств и надо всегда указывать какому именно свойству объекта мы хотим присвоить значение: .val .pic .bco и т.д.

Панель Nextion

Добавлено: 19.03.2017{, 17:18}
DenisR
igee Спасибо  все получилось!!!

Панель Nextion

Добавлено: 20.03.2017{, 22:29}
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.

Панель Nextion

Добавлено: 04.04.2017{, 23:06}
igrik1972
а как сделать так чтоб на странице первой в зависимости от времени года менялась основная картинка .....

Панель Nextion

Добавлено: 07.04.2017{, 16:50}
Refugee
Уважаемые знатоки, пробовал проект под названием урок 3 по дисплею nextion при компилировать скетча жалуется на отсутствие библиотеки DHT_NEW.h скетч не компилируется. Где взять библиотеку которую использовал автор, а то уже все которые мог перелопатил для датчика dht11

Панель Nextion

Добавлено: 26.04.2017{, 19:17}
drimer
добрый день как в самой некстион сделать сразу два таймера суточных ? и в flprog ?

Панель Nextion

Добавлено: 26.04.2017{, 19:18}
drimer
вот файл моего проекта

Панель Nextion

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

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

В целом, у меня нет идей, как же увеличить скорость вывода, может кто сталкивался?
 _uVideoPlayer({'url':'');

Панель Nextion

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