Похоже сдох у меня 7 дюймовый экранчик. Вставил флешку, подал питание, программа начала обновляться, дошла до 100%, Update Successed. Выключил питание, вытянул флешку, включил, надпись "Update Successed" так и осталась висеть. Выключил, опять включил - без изменений. Выключил еще раз, включил, по экрану пошли разноцветные полосы. Включил через переходник, софт экран не находит, полос весь в цветных полосах. Хотя через тот же переходник 3,5" экран находится без проблем. Кто-то сталкивался с таким? Есть смысл ковыряться с экраном дальше или можно отправлять его в мусорное ведро?
Недавно поставил версию V0.58 но столкнулся с проблемой.
Почему-то 8 байт, которые шлет экран имеют не правильный порядок.
Вот пример ответа на считывание состояния Dual state button:
1 FF FF FF 71 1 0 0
Библиотеку использую NeoNextion, но дело, скорее всего не в ней.
Это функция получения числового значения с панели:
Други, подскажите, если знаете - какие best practices для сочетания "Nextion без тача + ардуина" существуют в задачах конфигурирования (какую-нить фамилию ввести или ip-адрес, чтобы потом сохранить в EEPROM микроконтроллера)?
На чьей стороне это сделать проще - дисплея или микроконтроллера?
Парни всем привет. Столкнулся с такой проблемой, имеем MEGA 2560 + NEXTION, на этой связке собран определенный девайс выполняющий свои задачи. Все работало прекрасно, и в какой то момент перестала MEGA реагировать на дисплей а именно на прием сообщений со стороны дисплея, то есть дисплей не правильно передаёт ID по нажатию, но передает,подключил к терминалу сначала подумал какой то мусор лезет в таком виде ( e ♦ ♦ ♦), это в терминале такое отображается, но в графе справа смотрю а HEXe все передаётся правильно, выбрал в терминале не STRING а HEX и оказалось что дисплей передаёт то что от него хотят, но почему то в HEXe а не STRING. КАК и что могло с дисплеем стать? ни каких манипуляций не производил, он просто работал в устройстве. MEGA работает, проверил с эмулятором дисплея, все нормально. Кто то сможет прояснить ситуацию, что делать с дисплеем...?
Недавно поставил версию V0.58 но столкнулся с проблемой.
Почему-то 8 байт, которые шлет экран имеют не правильный порядок.
Вот пример ответа на считывание состояния Dual state button:
Проблема решилась разработкой проекта в V0.58 с нуля. Старый формат открылся, запустился, но работало криво, как описано выше. В общем совместимость между версиями есть, но лучше бы ее не было. Убил кучу времени на танцы с бубном. В занчке есть еще один Nextion, больше брать их не буду. По крайней мере пока не доведут до ума. Не столько денег жалко, сколько времени.
Оказывается я удачно перешел это "минное поле". То же переделывал проект в новой версии, на текст текстом, а не выборкой нарисованных слов - сейчас он более красивый чем раньше. К стати коды нажатых кнопок я передавал командой print.
Добрый день. Пытаюсь сделать вывод на экран то, что я ввожу в мониторе порта, но почему-то любая цифра, которую я ввожу выводится как 849.. что я сделал не так?
#include "Nextion.h"
int val = 0;
NexVariable txt_temp = NexVariable(0, 10, "n0");
char buffer[100] = {0};
void setup() {
Serial.begin(9600);
nexInit();
}
void loop() {
if (Serial.available() > 0) {
val = Serial.read();
txt_temp.setValue(buffer);
int temp = val;
memset(buffer, 0, sizeof(buffer));
itoa(temp, buffer, 10);
}
}
Люди добрые подскажите.
Хочу сделать на nextion, полноценную кнопку back.
С nextion только начал разбераться.
Идея такая:
Есть 10 числовых переменных, и переменная счётчика количества переходов на любые страницы, то есть при первом переходе в первую переменную записывается id страницы, при втором, записываеться во вторую переменную, и тд, при одинадцатом переходе запись идёт по кругу, то есть обратно в первую и тд, это все реализовано. То есть при любом переходе переменная счётчика увеливачаеться на 1,и в зависимости от этой переменной идёт запись в переменную соответствующую значению переменной, при 11 записи, счётчик просто сбрасывается на 1.
Вопрос как сделать так что бы при 11 переходах, то есть при перезаписи, при нажатии на кнопку "back" сначало возвращалась 1 страница( первая переменная)так как в ней лежит 11 страница, а далее при нажатии на "back" возвращалась 10 переменная, так как в ней лежит 10 страница
Или может кто подскажет другой алгоритм.
Идея такая: Есть 10 числовых переменных, и переменная счётчика количества переходов на любые страницы, то есть при первом переходе в первую переменную записывается id страницы, при втором,
Вы хотите это реализовать на самом дисплее или он у вас управляется Ардуинкой, например? Если есть Ардуино, то гораздо проще это реализовать на ней, а команды перехода на нужную страницу отравлять через Serial.print
Serial.print ("page ");// команда Nextion
Serial.print (a[i]);// a - массив где хранятся ваши 10 id страниц.
Serial.write(0xff);// коды для экрана "конец команды"
Serial.write(0xff);
Serial.write(0xff);
Не ручаюсь за синтаксис команды "page", может там и не надо пробел... При такос способе ни какая библиотека для экрана не нужна.
Да, хотелось бы именно посредством самого дисплея, но видимо не судьба) некшен подключён к ардуино, и видимо прийдеться все таки делать через неё, просто не хотелось забивать порт ещё и этой ерундой
if(count.val==1) // count.val - это ваша переменная счетчик
{
cash_ID1.val=current_ID.val // cash_ID1.val - это первая переменная из 10 куда записываются ID cтраниц. А current_ID.val - это переменная где хранится ID текущей страницы
Переменные можно менять при открытии страницы.(эти пункты появляются если ткнуть в пустоту)
Preinitialize Event – событие происходит перед отрисовкой страницы.
Postinitialize Event – событие происходит сразу после отрисовки страницы.
И есть переменные sys0 sys1 sys2 которые можно изменять при открытии страниц.
Это да, но речь про косвенную, а не прямую запись. Нельзя взять значение переменной обращаясь к ней через её ID, который в свою очередь записан в третью переменную. Короче нету там массивов.
if(count.val==1) // count.val - это ваша переменная счетчик
{
cash_ID1.val=current_ID.val // cash_ID1.val - это первая переменная из 10 куда записываются ID cтраниц. А current_ID.val - это переменная где хранится ID текущей страницы
Именно так я и сделал, но проблема в том что такой код сохранит всего 10 переходов, а все последующие нет, тоесть если вы сделали 13 переходов по страницам кнопка back, отошлет вас не на предидущую страницу а на две назад, поэтому я добавил сброс count, при одинадцатом переходе, что б ID одинадцатом, двенадцатый страницы перезаписовались в соответственно в 1 и 2-ю переменную, тоесть что бы все переменные всегда хранили именно ID последних 10 страниц, а не первых. Но из этого вытекает другая проблема, при нажатии на back, кнопка считывает count, количество переходов по страницам, и например если их было 8,то берет ID из 8-й переменной, и уменьшает счётчик на единицу, то есть при слудующем нажатии back, вернёт на 7 страницу, но если их было допустим 11,то счётчик сбрасивыеться, как описано выше на значение "1", и считывает ID с первой переменной, где уже находиться ID не первой страницы, а одинадцатой, но при следующем клике на back, нужно что бы считывалось значение 10 переменной, где лежит 10 страница, но счётчик равен еденице, вот вопрос как реализовать в таком случае считывание именно 10 переменной, а за ней 9 и тд
Всем привет!
Вот такой вопрос, весь этот форум перелопатил - не могу понять как сделать.
В проекте есть текст, ну скажем температура. В проекте назначен цвет текста, скажем 46847.
все работает.
теперь если температура выходит за какие-то пределы, хочу поменять цвет текста.
что нужно дописать в этой строке, чтобы заменить цвет на, скажем... 63488???
Serial2.print ("t2.txt="); Serial2.write(0x22); Serial2.print (temper, 1); Serial2.write(0x22); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff);
Второй вопрос:
была русскоязычная инструкция по командам экранчика
Что-то не могу найти...
А как можно в одной команде записать и саму команду и значение, которое в переменной temper?
За Serial2.print("t2.pco=1024\xFF\xFF\xFF"); отдельное спасибо!
Привет, чтоб погасить яркость дисплея, можно сделать таймер на 5 минут и вписать туда строки:
while(dim>1)
{
dim=dim-1
delay=10
}
page 0
А как сделать таймер на 5 минут?
У меня больше минуты не получается...
говорит ограничение в 65535...
Надо создать таймер, например он называется tm1, в его настройках ставишь значение 60000(1000-1сек, соответственно 60000-это 1мин.
При наступлении таймера 60000, будет выполняться строки в таймере кода.
Для пяти минутного таймера, надо создать переменную, в неё будет записываться число, при каждом наступлении таймера записывается число +1, например таймер сработал 5 раз, соответственно в переменной будет число 5, как сделать: в коде таймера пишешь t1=t1+1, где t1 это переменная в которую записываем значение.
Для затухания создаём ещё один таймер tm2 со значением 100, в нём написать код затухания дисплея:
if (t1==5)
{
t1=0 //обнуляем значение
//Начинаем затемнять дисплей
while(dim>1
{
dim=dim-1
delay=10
}
}
Писал с телефона, так что могут быть ошибки, принцип вроде объяснил.
Всем привет! А помогите мне с GMov разобраться. Не могу найти где почитать.
Их можно менять как изображения?
Создал я gm3, есть пара заготовок.
А вот такой фокус:
Вставил ссылку в Хроме и теперь работает.
да, теперь работает..
Похоже сдох у меня 7 дюймовый экранчик. Вставил флешку, подал питание, программа начала обновляться, дошла до 100%, Update Successed. Выключил питание, вытянул флешку, включил, надпись "Update Successed" так и осталась висеть. Выключил, опять включил - без изменений. Выключил еще раз, включил, по экрану пошли разноцветные полосы. Включил через переходник, софт экран не находит, полос весь в цветных полосах. Хотя через тот же переходник 3,5" экран находится без проблем. Кто-то сталкивался с таким? Есть смысл ковыряться с экраном дальше или можно отправлять его в мусорное ведро?
Всем привет!
Недавно поставил версию V0.58 но столкнулся с проблемой.
Почему-то 8 байт, которые шлет экран имеют не правильный порядок.
Вот пример ответа на считывание состояния Dual state button:
1 FF FF FF 71 1 0 0
Библиотеку использую NeoNextion, но дело, скорее всего не в ней.
Это функция получения числового значения с панели:
Serial.print это я понатыкал в разных местах, чтобы понять откуда ноги растут.
Получается что в буфер все 8 байт считываются, но порядок у них не правильный.
Кто-нибудь сталкивался с такой проблемой?
Други, подскажите, если знаете - какие best practices для сочетания "Nextion без тача + ардуина" существуют в задачах конфигурирования (какую-нить фамилию ввести или ip-адрес, чтобы потом сохранить в EEPROM микроконтроллера)?
На чьей стороне это сделать проще - дисплея или микроконтроллера?
Парни всем привет. Столкнулся с такой проблемой, имеем MEGA 2560 + NEXTION, на этой связке собран определенный девайс выполняющий свои задачи. Все работало прекрасно, и в какой то момент перестала MEGA реагировать на дисплей а именно на прием сообщений со стороны дисплея, то есть дисплей не правильно передаёт ID по нажатию, но передает,подключил к терминалу сначала подумал какой то мусор лезет в таком виде ( e ♦ ♦ ♦), это в терминале такое отображается, но в графе справа смотрю а HEXe все передаётся правильно, выбрал в терминале не STRING а HEX и оказалось что дисплей передаёт то что от него хотят, но почему то в HEXe а не STRING. КАК и что могло с дисплеем стать? ни каких манипуляций не производил, он просто работал в устройстве. MEGA работает, проверил с эмулятором дисплея, все нормально. Кто то сможет прояснить ситуацию, что делать с дисплеем...?
....
Если всё исправно работало, а потом ни стого, ни с сего начал глючить экран - перепрошей экран.
Всем привет!
Недавно поставил версию V0.58 но столкнулся с проблемой.
Почему-то 8 байт, которые шлет экран имеют не правильный порядок.
Вот пример ответа на считывание состояния Dual state button:
Проблема решилась разработкой проекта в V0.58 с нуля. Старый формат открылся, запустился, но работало криво, как описано выше. В общем совместимость между версиями есть, но лучше бы ее не было. Убил кучу времени на танцы с бубном. В занчке есть еще один Nextion, больше брать их не буду. По крайней мере пока не доведут до ума. Не столько денег жалко, сколько времени.
Оказывается я удачно перешел это "минное поле". То же переделывал проект в новой версии, на текст текстом, а не выборкой нарисованных слов - сейчас он более красивый чем раньше. К стати коды нажатых кнопок я передавал командой print.
Добрый день. Пытаюсь сделать вывод на экран то, что я ввожу в мониторе порта, но почему-то любая цифра, которую я ввожу выводится как 849.. что я сделал не так?
Здравствуйте, поделитесь руссификатором для версии 0.53 а то не одна из ссылок не работает
А смысл какой? На nextion последняя версия 0.59 вроде.
А смысл какой? На nextion последняя версия 0.59 вроде.
Можно и ее если есть на русском
Nextion.cc вроде
Nextion.cc вроде
Не работает
А что там переводить - меню что ли? Там же идеология "тащи-бросай-компилируй-заливай". Даже наощупь можно это сделать.
А что там переводить - меню что ли? Там же идеология "тащи-бросай-компилируй-заливай". Даже наощупь можно это сделать.
Меня попросили найти русскую версию USART HMI вот и ищю
"USART HMI" ты и на английском-то можешь не сыскать. Потому что это для TJC, а не для Nextion.
"USART HMI" ты и на английском-то можешь не сыскать. Потому что это для TJC, а не для Nextion.
Понятно, печально.
Открыл "Некстион эдитор" , и попробовал загрузить проект на эмуляторе панели Некстиона.
Но внизу страницы куда-то пропали настройки COM порта!(то что пропало зачеркнул красным)
Что делать?
Settings -> Reset Layout ?
Не помогает-пробовал.
Ну, скачай еще раз portable комплект. Эдитор же не инсталлится, а просто распаковывается.
Люди добрые подскажите.
Хочу сделать на nextion, полноценную кнопку back.
С nextion только начал разбераться.
Идея такая:
Есть 10 числовых переменных, и переменная счётчика количества переходов на любые страницы, то есть при первом переходе в первую переменную записывается id страницы, при втором, записываеться во вторую переменную, и тд, при одинадцатом переходе запись идёт по кругу, то есть обратно в первую и тд, это все реализовано. То есть при любом переходе переменная счётчика увеливачаеться на 1,и в зависимости от этой переменной идёт запись в переменную соответствующую значению переменной, при 11 записи, счётчик просто сбрасывается на 1.
Вопрос как сделать так что бы при 11 переходах, то есть при перезаписи, при нажатии на кнопку "back" сначало возвращалась 1 страница( первая переменная)так как в ней лежит 11 страница, а далее при нажатии на "back" возвращалась 10 переменная, так как в ней лежит 10 страница
Или может кто подскажет другой алгоритм.
Ну, скачай еще раз portable комплект. Эдитор же не инсталлится, а просто распаковывается.
Ни чего не помогает.
Пробовал найти все файлы программой удаления в реестре и т.д , и удалил их.
Открываю портабл версию и всё равно нет нижней части окна!
а порты в системе у вас присутствуют, к которым вы собираетесь подключаться ?
Порты не важно, т.к пробовал на ноуте открыть прогу -там все в порядке и ничего не подключал к портам .
А на пк окно не полное ...
пс: операционка Win7.
http://arduino.ru/Reference/Array
Вы хотите это реализовать на самом дисплее или он у вас управляется Ардуинкой, например? Если есть Ардуино, то гораздо проще это реализовать на ней, а команды перехода на нужную страницу отравлять через Serial.print
Не ручаюсь за синтаксис команды "page", может там и не надо пробел... При такос способе ни какая библиотека для экрана не нужна.
На сколько помню, на дисплее нет возможности косвенного обращения к переменным.
На сколько помню, на дисплее нет возможности косвенного обращения к переменным.
Да, хотелось бы именно посредством самого дисплея, но видимо не судьба) некшен подключён к ардуино, и видимо прийдеться все таки делать через неё, просто не хотелось забивать порт ещё и этой ерундой
Можно и в самом Некшене.
Это да, но речь про косвенную, а не прямую запись. Нельзя взять значение переменной обращаясь к ней через её ID, который в свою очередь записан в третью переменную. Короче нету там массивов.
Можно и в самом Некшене.
Именно так я и сделал, но проблема в том что такой код сохранит всего 10 переходов, а все последующие нет, тоесть если вы сделали 13 переходов по страницам кнопка back, отошлет вас не на предидущую страницу а на две назад, поэтому я добавил сброс count, при одинадцатом переходе, что б ID одинадцатом, двенадцатый страницы перезаписовались в соответственно в 1 и 2-ю переменную, тоесть что бы все переменные всегда хранили именно ID последних 10 страниц, а не первых. Но из этого вытекает другая проблема, при нажатии на back, кнопка считывает count, количество переходов по страницам, и например если их было 8,то берет ID из 8-й переменной, и уменьшает счётчик на единицу, то есть при слудующем нажатии back, вернёт на 7 страницу, но если их было допустим 11,то счётчик сбрасивыеться, как описано выше на значение "1", и считывает ID с первой переменной, где уже находиться ID не первой страницы, а одинадцатой, но при следующем клике на back, нужно что бы считывалось значение 10 переменной, где лежит 10 страница, но счётчик равен еденице, вот вопрос как реализовать в таком случае считывание именно 10 переменной, а за ней 9 и тд
Да, были бы у некшена массивы, было бы проще))
Закольцуйте счётчик. Переход на следующую +1, "назад" -1.
Если счётчик равен 11, то исправить на 1.
Если равен 0, исправить на 10
_
Вот я болван))) спасибо большое)
Всем привет!
Вот такой вопрос, весь этот форум перелопатил - не могу понять как сделать.
В проекте есть текст, ну скажем температура. В проекте назначен цвет текста, скажем 46847.
все работает.
теперь если температура выходит за какие-то пределы, хочу поменять цвет текста.
что нужно дописать в этой строке, чтобы заменить цвет на, скажем... 63488???
Serial2.print ("t2.txt="); Serial2.write(0x22); Serial2.print (temper, 1); Serial2.write(0x22); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff);
Второй вопрос:
была русскоязычная инструкция по командам экранчика
Что-то не могу найти...
СПАСИБО!!!
Serial2.print("t2.pco=1024\xFF\xFF\xFF");
Спасибо!
Т.е. в одной строке это не написать?
сначала данные, потом изменение чего-либо...
ну пусть хоть так.
Можно и в одной, но разделяя команды 0xFF.
А как можно в одной команде записать и саму команду и значение, которое в переменной temper?
За Serial2.print("t2.pco=1024\xFF\xFF\xFF"); отдельное спасибо!
Serial2.print ("t2.txt=\x22\xFF\xFF\xFF\x22\xFF\xFF\xFF\temper\xFF\xFF\xFF");
Так?
Up. Не, переменная же в кавычках получилась)))
Если нужно именно переменную влепить, то через Serial не очень получится одной, конечно. Я через snprintf мотаю. Например:
[quote=stambylov]
Привет, чтоб погасить яркость дисплея, можно сделать таймер на 5 минут и вписать туда строки:
А как сделать таймер на 5 минут?
У меня больше минуты не получается...
говорит ограничение в 65535...
Привет, чтоб погасить яркость дисплея, можно сделать таймер на 5 минут и вписать туда строки:
А как сделать таймер на 5 минут?
У меня больше минуты не получается...
говорит ограничение в 65535...
Надо создать таймер, например он называется tm1, в его настройках ставишь значение 60000(1000-1сек, соответственно 60000-это 1мин.
При наступлении таймера 60000, будет выполняться строки в таймере кода.
Для пяти минутного таймера, надо создать переменную, в неё будет записываться число, при каждом наступлении таймера записывается число +1, например таймер сработал 5 раз, соответственно в переменной будет число 5, как сделать: в коде таймера пишешь t1=t1+1, где t1 это переменная в которую записываем значение.
Для затухания создаём ещё один таймер tm2 со значением 100, в нём написать код затухания дисплея:
if (t1==5)
{
t1=0 //обнуляем значение
//Начинаем затемнять дисплей
while(dim>1
{
dim=dim-1
delay=10
}
}
Писал с телефона, так что могут быть ошибки, принцип вроде объяснил.
Всем привет! А помогите мне с GMov разобраться. Не могу найти где почитать.
Их можно менять как изображения?
Создал я gm3, есть пара заготовок.
А вот такой фокус:
СПАСИБО!!!