#1 2024-10-26 13:14:56

shrek
Учасник
Зареєстрований: 2023-06-29
Повідомлень: 10

Нужна консультация ардуино + Nextion экран. Заплачу.

Ситуация такая. Есть ардуино мега и 10 дюймовый дисплей. Резистивный. С дисплея данные получаю. А на дисплей отправить не могу.
Железо проверил -и на дисплее и на ардуино TX RX работают. На ардуино мега 2 сериал. Где-то запятую пропустил наверно. Базировался на этом : https://www.youtube.com/watch?v=xSqxgi1-6Ek&list=PLHD7mp5tCMLWqfUv6VBxjwdPFYuuybWXy&index=6
Сроки - 3 дня.

Неактивний

#2 2024-10-26 14:21:21

shrek
Учасник
Зареєстрований: 2023-06-29
Повідомлень: 10

Re: Нужна консультация ардуино + Nextion экран. Заплачу.

Коньяк с меня, тому кто первый поможет. Исходники отправлю.

Неактивний

#3 2024-10-26 14:58:31

shrek
Учасник
Зареєстрований: 2023-06-29
Повідомлень: 10

Re: Нужна консультация ардуино + Nextion экран. Заплачу.

void SendString(String dev, String data) {
  Serial2.print(dev);
  Serial2.print("=");
  Serial2.print(data);
  SendEnd();
  dev = "";
  data = "";
}
void SendInt(String dev, int data) {
  Serial2.print(dev);
  Serial2.print("=");
  Serial2.print(data);
  SendEnd();
  dev = "";
  data = "";
}
void SendEnd() {
  for (int i = 0; i < 3; i++) {
    Serial2.print(0xff);
  }
}

Остання редакція shrek (2024-10-26 14:59:21)

Неактивний

#4 2024-10-26 15:03:28

shrek
Учасник
Зареєстрований: 2023-06-29
Повідомлень: 10

Re: Нужна консультация ардуино + Nextion экран. Заплачу.

Serial2.print("Date.n2.val=12");
  Serial2.print(0xff);
  Serial2.print(0xff);
  Serial2.print(0xff);

Это не прокатывает

Неактивний

#5 2024-10-26 21:49:12

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 205

Re: Нужна консультация ардуино + Nextion экран. Заплачу.

shrek пише:
void SendString(String dev, String data) {
...
  dev = "";
  data = "";
}

Який сенс присвоєння у локальні змінні, коли вони далі у функції вже не використовуються?

shrek пише:
  for (int i = 0; i < 3; i++) {
    Serial2.print(0xff);
  }

Serial::print() перевантажена для різних типів аргументів. Тут ви передаєте int, що призводить до виводу символів десяткового представлення числа, тобто "255", а не символа з кодом 255 (0xFF).
Також нема особливого сенсу виводити символи в циклі по одному, це не дає тут ніякої переваги.

Спробуйте

Serial2.print("\xff\xff\xff");

А ще краще

Serial2.print(F("\xff\xff\xff"));

щоб не копіювати строку в ОЗУ, а читати прямо з флеші.

Також приклади є в документації.

Остання редакція dimich (2024-10-27 10:50:23)

Неактивний

#6 2024-10-27 10:13:27

Honey
Учасник
З Київ
Зареєстрований: 2020-09-26
Повідомлень: 433

Re: Нужна консультация ардуино + Nextion экран. Заплачу.

dimich пише:

Вставив картинкою бо форумний двіжок зʼїдає бекслеші в тексті

Ставте два бекслеша підряд. При використанні "попередній перегляд" один бекслеш зникає в вікні вводу тексту, тому доводиться ще раз розставляти дублі.

Неактивний

#7 2024-10-27 10:53:33

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 205

Re: Нужна консультация ардуино + Nextion экран. Заплачу.

Honey пише:

При використанні "попередній перегляд" один бекслеш зникає в вікні вводу тексту, тому доводиться ще раз розставляти дублі.

Дійcно, так працює. Виправив попередній пост. Дякую.

Остання редакція dimich (2024-10-27 10:55:18)

Неактивний

#8 2024-10-28 11:32:06

shrek
Учасник
Зареєстрований: 2023-06-29
Повідомлень: 10

Re: Нужна консультация ардуино + Nextion экран. Заплачу.

Проблему решил.
void SendEnd0() {
  for (int i = 0; i < 3; i++) {
    Serial.write(0xff);
  }
}
Вместо print -> write
Спасибо всем

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму