Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » LCD дисплеи Nextion ?


LCD дисплеи Nextion ?

Сообщений 151 страница 180 из 199

151

И, кстати, походу вы возлагаете на дисплей роль ведущего, раз даете ему возможность контролировать прием/передачу.
ИМХО это неверный подход.
Оставьте ему функционал интерфейса с пользователем и не более.
Что такого важного он генерирует, что требуется обратный контроль ? ;)

0

152

на дисплее отображаются кнопки включения/выключения клапанов которые подключены к МК в ручном режиме, а так же ввод переменных (температура, время включения клапанов) при работе в автоматическом режиме
обратный контроль я сейчас только для отладки сделал, чтобы видеть на экране компа, кто и что шлёт в UART

Отредактировано Kasym (2021-01-04 15:47:21)

0

153

Прошу поверить на слово, но для отладки вполне достаточно Терминала, не надо воротить никакого контроля.
Для отладки "в железе" могу посоветовать макетку со светодиодами вместо клапанов.

0

154

Понадобилось мне с дисплея Nextion вводить значения переменных, соответственно напрашивается какая-то клавиатура на экране. У меня уже пара вариантов родилась, но есть ощущение, что я изобретаю велосипед. Хотелось бы найти 100% рабочий пример, но гуглинг не приносит результатов. Поделитесь опытом, как вы ввод переменных делаете. Задача осложнена тем, что половина переменных целочисленная, а половина с плавающей точкой.

0

155

Я делал элементом "слайдер", визуально двумя кнопками "вверх-вниз".
У слайдера в параметрах можно установить границы и шаг.
Значение слайдера и есть переменная.

С плавающей запятой будет сложнее, т.к. Nextion работает только с целыми...

0

156

https://upforme.ru/uploads/0000/25/b8/2063/t501891.jpg
один из вариантов - число форматируется под вид с одним знаком после запятой, передаётся в хексе как Int. В целом вариант вроде бы норм, ещё бы число не пришлось выворачивать наоборот и было бы вообще хорошо
А ещё неприятность в том, что половина значений которые надо редактировать строго целочисленные, таким образом надо что-то придумывать чтобы их форматировало по другому

Отредактировано Kasym (2021-02-22 19:26:47)

0

157

Красиво смотрится, но есть одно "но" - Nextion не любит большое количество однотипных элементов на одном экране и начинает ощутимо тормозить... ;)
Столкнулся с этим, когда пытался использовать более 20 кнопок...

Передавать число можно в текстовом формате.

0

158

Nord написал(а):

Передавать число можно в текстовом формате.

Не понял, можно поподробнее?

0

159

На вашем скриншоте число 56.9
Поле, где оно отображается сделайте текстовым.
Значение поля можно передать из дисплея и в него этом же формате.
Если требуется работать с значением, то лучше это делать внешними средствами, т.к. у дисплея скудно с арифметикой...
Пусть внешний МК конвертит текст в удобный числовой формат.

0

160

Nord написал(а):

Я вот тоже столкнулся с затыкой...
На всех страницах нужные поля, переменные и т.п., да и сами страницы уже сделал global, т.е. видимые отовсюду...  Остались нетронутыми только царапины на столе...
В результате: на главной странице таймер посекундно отрабатывает, щелкая время. При обнулении секунд должен отправить значения часов и минут на головной МК.
Отправляет, но, только если активна страница, где это самое время и индицируется...  Но ведь global же !!!
Мозг уже плавится вторую неделю...

Доброго дня! можно вопрос новичка?

0

161

Валяй... ;)

0

162

Nord написал(а):

Валяй...

Есть дисплей, есть внук которого хочу приучить к паяльнику. Задача: Нажать на кнопку на Nextion и через ардуино включить реле. Я так понял что этот дисплей только принимает а с передачей - туго. Есть там у братьев продвинутый с такой функцией, но стоит ....

0

163

pit1 написал(а):

Есть дисплей, есть внук которого хочу приучить к паяльнику. Задача: Нажать на кнопку на Nextion и через ардуино включить реле. Я так понял что этот дисплей только принимает а с передачей - туго. Есть там у братьев продвинутый с такой функцией, но стоит ....

Не привык жаловаться, но пенсия особо не располагает к таким покупкам. С ув. Петр

0

164

pit1 написал(а):

Есть дисплей, есть внук которого хочу приучить к паяльнику.

Очень похвальная затея ! Респект !  :flag:

pit1 написал(а):

Задача: Нажать на кнопку на Nextion и через ардуино включить реле. Я так понял что этот дисплей только принимает а с передачей - туго. Есть там у братьев продвинутый с такой функцией, но стоит ....

Дисплеи Nextion или с резистивным или с ёмкостным тачем.
Без тач-панели не встречал.

Обработка тач-панели сделана аппаратно, на программу не влияет никак.
Рисуете кнопку и описываете реакцию на событие (касание кнопки).
Результат отправляете в UART (передача).

Отправляет и принимает дисплей одинаково хорошо, некоторые "проблемы" возникают у программиста, который пытается это сделать. ;)

0

165

А не боитесь, что внук угробит дорогой дисплей за пару дней? Может обычной кнопки хватит, или там пару светодиодов прилепить?

0

166

Andrusha написал(а):

А не боитесь, что внук угробит дорогой дисплей за пару дней? Может обычной кнопки хватит, или там пару светодиодов прилепить?

Угробить его достаточно тяжело, если не использовать критическое механическое воздействие ;) и контролировать правильность подключения.
Программные ошибки приведут минимум к неисполнением дисплеем неправильной команды или к каше на экране.
Свернуть ему мозг можно только перепрошивкой, что при обычном подключении нереально выполнить. ;)

0

167

Nord написал(а):

если не использовать критическое механическое воздействие

Именно это я и имел ввиду. :hobo:

0

168

Andrusha написал(а):

...критическое механическое воздействие
Именно это я и имел ввиду.

Ну, я думаю, что ребенок уже в достаточно сознательном возрасте ;)
Ведь кроме дисплея ему будет доверен еще и паяльник, а это посерьезнее, чем разбитый дисплей...

0

169

Д вечера всем! Задержался, времени мало, темнеет рано у жены Днюха!! Уважаемый Nord! А можно дедушке (участнику Куликовской битвы) Примерчик или готовый проект? Или ссылочку Имею ввиду команды в окне Event и скетч для Ардуины. ??

0

170

pit1 написал(а):

А можно Примерчик или готовый проект? Или ссылочку Имею ввиду команды в окне Event и скетч для Ардуины. ??

Готовый проект вас вряд ли устроит, т.к. дисплеи могут быть разные хотя бы по размерам. ;)
Надеюсь, Nextion Editor уже скачан, установлен и освоен ?
Кидайте в Личку email - отправлю.

Вот листинг обработчика события таймера из одного из моих проектов:

Код:
den.val=rtc2
mes.val=rtc1
god.val=rtc0
numday.val=rtc6
cov numday.val,ned.txt,1
if(numday.val==0)
{
  page0.t3.txt="воскресенье"
}else if(numday.val==1)
{
  page0.t3.txt="понедельник"
}else if(numday.val==2)
{
  page0.t3.txt="вторник"
}else if(numday.val==3)
{
  page0.t3.txt="среда"
}else if(numday.val==4)
{
  page0.t3.txt="четверг"
}else if(numday.val==5)
{
  page0.t3.txt="пятница"
}else if(rtc6==6)
{
  page0.t3.txt="суббота"
}
cov den.val,t0.txt,2
cov mes.val,t1.txt,2
cov god.val,t2.txt,4
chasy.val=rtc3
minutes.val=rtc4
secundy.val=rtc5
cov chasy.val,chas.txt,2
cov minutes.val,minut.txt,2
cov secundy.val,secun.txt,2
if(secundy.val==0)
{
  print "C"
  print chas.txt
  print minut.txt
  print t0.txt
  print t1.txt
  print t2.txt
  print ned.txt
  printh 0d
}

Ссылки на различные ресурсы про Nextion имеются в этой теме в достаточном объеме, полистайте.

А за скетчами сюда, на этом Форуме мыслят чуток по-другому... ;)
http://forum.amperka.ru/

Ардуино - уже готовый модуль для моделирования с МК "на борту" и некоторой готовой обвязкой.
Для работы достаточно знания любого языка программирования, позволяющего работать с МК.

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

На любом этапе могут возникнуть проблемы, независимо от подготовленности разработчика.

+1

171

Доброго дня! Нашел пример, но есть пару пару вопросов. Написать в личку это на <mybb@mybb.ru> ?
  Если ответ  ДА уже отправил.

Отредактировано pit1 (2021-12-22 14:12:20)

0

172

pit1 написал(а):

Написать в личку это на <mybb@mybb.ru>

Нет, это https://bascomavr.bbok.ru/messages.php?action=new

+1

173

pit1 написал(а):

Доброго дня! Нашел пример, но есть пару пару вопросов. Написать в личку это на <mybb@mybb.ru> ?
  Если ответ  ДА уже отправил.

Да, напишите в Личку на этом форуме свой email на каком-либо почтовике.
Местный движок не позволяет отправлять файлы через ЛС...
Кстати, вы пока ничего здесь не отправили. ;)

0

174

Nord написал(а):

Да, напишите в Личку на этом форуме свой email на каком-либо почтовике.
Местный движок не позволяет отправлять файлы через ЛС...
Кстати, вы пока ничего здесь не отправили.

  Прошу извинить. Не все так плохо Вернулся в исходную точку и начало что то вырисовываться. В Nextion  ардуино все загрузилось. Даже заработал порт D2.
И ура включает реле. (Радости нет границ) Все остальные кнопки на дисплее молчат. Нет не так,  четыре левые кнопки (лампочки) при нажатии на ардуино мигают светодиоды RX TX. Но сигнал приходит только на D2. Мне бы добавить к трем кнопкам на дисплее три пина на ардуино
Вот сайт:
http://alielectronics.ru/blog/nextion-t … or-esp8266
И личка: piter336@gmail.com
Будет время, гляньте пожалуйста. С ув. Петр

0

175

Вот скетч, чтобы Вам долго не ковыряться:

Код

void setup() {
  Serial.begin(9600);
  pinMode(2, OUTPUT);
  digitalWrite(2, HIGH);
}

void loop() {
  if (Serial.available()) {
    char inc;
    inc = Serial.read();
    incStr += inc;
    if (inc == 0x0A) {
      AnalyseString(incStr);
      incStr = "";
    }
  }
}

void AnalyseString(String incStr) {
  if (incStr.indexOf("bt0-on") >= 0) {
    digitalWrite(2, LOW);
  } else if (incStr.indexOf("bt0-off") >= 0) {
    digitalWrite(2, HIGH);
  }

  String t1 = "\"" + String(random(25)) + "'C\"";
  SendData("t4.txt", t1);
  t1 = "\"" + String(random(25)) + "'C\"";
  SendData("t5.txt", t1);
}

void SendData(String dev, String data)
{
  Serial.print(dev);
  Serial.print("=");
  Serial.print(data);
  Serial.write(0xff);
  Serial.write(0xff);
  Serial.write(0xff);
}

Я все равно не разберусь. Когда 70+ Разве в следующей жизни

0

176

pit1 написал(а):

В Nextion  ардуино все загрузилось. Даже заработал порт D2.И ура включает реле. (Радости нет границ) Все остальные кнопки на дисплее молчат. Нет не так,  четыре левые кнопки (лампочки) при нажатии на ардуино мигают светодиоды RX TX. Но сигнал приходит только на D2.

Ничего удивительного, т.к. в прилагаемом примере для Ардуино указана реакция только на одну кнопку.

pit1 написал(а):

Мне бы добавить к трем кнопкам на дисплее три пина на ардуино

Сначала решите для себя вопрос - на каком ЯП вы будете работать с Ардуино.
Указанные вами ресурсы дают примеры на Cи, так же сам дисплей программируется с использованием "кастрированной" версии Си.

Здесь люди работаю с Bascom, а это "разновидность" Бейсика.
В этом случае придется знакомиться с двумя ЯП.

Листинги на Си здесь мало кому интересны и помочь в данном вопросе смогут далеко немногие из форумчан...  :dontknow:
Лично я - точно нет... Мне эта Си-шная клинопись не дается... Только на уровне дисплея и осилил... ;)

С учетом того, что вы (подозреваю) изначально не знакомы с обоими ЯП, но пришли на этот Форум, предлагаю заняться изучением Bascom, а уж ту "кастрацию", которая необходима для Nextion, вполне можно освоить.

Отредактировано Nord (2021-12-22 19:36:37)

0

177

pit1 написал(а):

Вот скетч, чтобы Вам долго не ковыряться:
void AnalyseString(String incStr)

Эта подпрограмма отвечает за вкл/откл реле по команде от дисплея.
Кнопки четыре, значит должно быть еще три п/п, описывающие реакцию на другие команды от дисплея.

pit1 написал(а):

Я все равно не разберусь. Когда 70+ Разве в следующей жизни

А как же внука учить собираетесь ? ;)

0

178

Nord написал(а):

Эта подпрограмма отвечает за вкл/откл реле по команде от дисплея.
Кнопки четыре, значит должно быть еще три п/п, описывающие реакцию на другие команды от дисплея.

А как же внука учить собираетесь ?

Для начала заинтересовать, в голове одни игрушки. Похоже я постучался не в ту дверь.
 

Просите — и вам дадут, ищите — и найдете, стучите — и вам откроют. ****В том случае если за дверью кто то есть.
Такова жизнь и она интересна.
Большое спасибо рад был знакомству. Извините за отнятое время  С ув. Петр

0

179

pit1 написал(а):

Для начала заинтересовать, в голове одни игрушки. Похоже я постучался не в ту дверь.

Вся беда в том, что платформа Ардуино не располагает к глубокому изучению предмета...
Задумывалось хорошо, но повернулось не туда... ;)
Все свелось к перетыканию перемычек и "заливке скетчей от ххххх"...
Мозги включаются только при действительно заинтересованности ученика.
А до "включения мозгов" Ардуино - это "черный ящик" с контактными колодками, который что-то сам по себе "шайтанит", главное "скетч залить"... ;)

pit1 написал(а):

В том случае если за дверью кто то есть. Извините за отнятое время

Здесь двери не заперты и всегда готовы помочь. Заходите !
В любом случае придется изучать хоть какой-то ЯП...
Я вам уже предложил вариант:

С учетом того, что вы (подозреваю) изначально не знакомы с обоими ЯП, но пришли на этот Форум, предлагаю заняться изучением Bascom, а уж ту "кастрацию Си", которая необходима для Nextion, вполне можно освоить.

Выбор за вами.  :flag:

Отредактировано Nord (2021-12-22 20:20:32)

0

180

Подниму тему. Заметил одну странную вещь. Скорость обмена и яркость, при включении дисплея, устанавливаются на какие-то дефолтные значения, взятые с потолка. Устанавливаю скорость 38400 и яркость, к примеру, 20.

Код:
bauds=38400
dims=20

Буковки "s" на конце подразумевают запись этих значений в энергонезависимую память, и включение с этими значениями. Частично так и происходит. Читаю:

Код:
n1.val=bauds
n2.val=dims

Ввожу на экран, значения правильные, но, скорость, при включении, устанавливается 9600, а яркость 50. И ничего с этим поделать не могу. Помогают только следующие строчки:

Код:
baud=bauds
dim=dims

Получается так, что при каждом включении дисплея эти данные я должен вводить ручками. Так ли должно быть, или это глюк именно моего дисплея? Нигде в описании этого не нашел, даже в инструкции. Сохранять то сохраняет, но не работает.
https://upforme.ru/uploads/0000/25/b8/1811/t897792.jpg

0

Похожие темы


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » LCD дисплеи Nextion ?