Arduino Polska Forum

Pełna wersja: Nextion-Arduino biblioteka ITEADLIB_Arduino_Nextion
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Czy ktoś może wie lub zobaczyć dlaczego podczas włączenia komunikacji danych między nextion a arduino wywala na stronę (page 0) ? nawet gdy podejrzę port szeregowy w programie arduino resetuje do strony 0 

https://github.com/itead/ITEADLIB_Arduino_Nextion


Trochę to uciążliwe bo na tej stronie mam logo animację startową i chciał bym jeżeli to konieczne to żeby zaczynało od strony 1.  Bo każde włączenie tego zestawu powoduje że na wyświetlaczu przelatuje 2x strona startowa page 0.
Umieść kod na forum.
Arduino (UNO/NANO) jest tak skonstruowane, że otwarcie portu szeregowego (lub zmiana baudrate, bo to faktycznie jest zamknięcie i otwarcie w nowym ustawieniu) powoduje reset Arduino. Jest to pomocne przy programowaniu, gdzie port jest otwierany, następuje reset płytki, uruchomienie bootloadera, który czeka sekundę na kod, jak nic nie ma to leci dalej uruchamiając już wgrany kod.
Można to wyłączyć przecinając ścieżkę, wylutowując zworkę - zależy jaką masz płytkę. Wtedy tracisz autoreset. Przy każdym wgrywaniu kodu trzeba wcisnąć przycisk reset paluchem.
Możesz też użyć sobie jakiegoś softuarta to wysyłania komunikatów z Arduino, Arduino MEGA i nasłuchiwać komunikatów z płytki na uart2 czy 3 i odbierać je niezależnym konwerterem. Wtedy nie ma problemu, że podłączenie się do Arduino resetuje płytkę.
(21-10-2018, 12:48)es2 napisał(a): [ -> ]Umieść kod na forum.

Kod raczej w ardunio nie ma tu nic do rzeczy, raczej biblioteka ale jeśli trzeba to taki kod testowy

Kod:
#include "Nextion.h"

#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT11   // DHT 11

DHT dht(DHTPIN, DHTTYPE);

// Declare your Nextion objects - Example (page id = 0, component id = 1, component name = "b0")

NexText tTempC = NexText(2, 3, "tTempC");
NexText tHumidity = NexText(2, 4, "tHumidity");
NexButton bUpdate = NexButton(2,5, "bUpdate");

NexTouch *nex_listen_list[] = {
 &bUpdate,
 NULL
};


void setup(void) {    
 dht.begin();
 Serial.begin(9600);
   
 // You might need to change NexConfig.h file in your ITEADLIB_Arduino_Nextion folder
 // Set the baudrate which is for debug and communicate with Nextion screen
 nexInit();

}

void loop(void) {  

float h = dht.readHumidity();
 // Read temperature as Celsius (the default)
 float t = dht.readTemperature();

 if (isnan(h) || isnan(t)) {
   return;
 }
 
 static char temperatureCTemp[6];
 dtostrf(t, 6, 2, temperatureCTemp);
 tTempC.setText(temperatureCTemp);

 char hTemp[10] = {0};
 utoa(int(h), hTemp, 10);
 tHumidity.setText(hTemp);
 delay(5000);
}

Dzieki za wyjaśnienia kaczakat, dlatego szukam w bibliotece co powoduje że każde otwarcie portu wysyła do wyświetlacza "page 0"

https://scr.hu/82y50YN
Ale o czym Ty mówisz? Przecież jak robisz reset Arduino to program startuje od nowa, wyświetla stronę 0 - nexInit();. Czego szukasz?
No właśnie tego szukałem Wink ja raczkujący i uczący sięWink

Bo dziś walczyłem z funkcją " dims" dlaczego kody pokazane w internecie nie odczytywały zawartości w pamięci. Ale doszedłem sam co trochę to coś nowego się uczeBig Grin