komponenty v lcd nextion

Odpovědět
crgo1977
Příspěvky: 36
Registrován: 20 led 2018, 20:16
Reputation: 0

komponenty v lcd nextion

Příspěvek od crgo1977 » 25 dub 2019, 04:02

Zdravím všechny,
Doufám,že jsem zvolil správnou sekci.
chtěl bych se zeptat zkušenějších,jestli se jim podařilo rozchodit komponenty které se mohou naprogramovat v lcd nextion v komunikaci s arduinem bez použití knihovny pro displej.
Jedná se mi o tlačítka a dual state tlačítka.
Hledám už nějakou chvíli na internetu a pokaždé,když jsou použity tlačítka tak je i použitá knihovna "nextion.h" .
Mohl by mi prosím někdo poradit jak tyto tlačítka použít bez této knihovny?
Zkoušel jsem to pomocí komponent kódu ( např. 65 01 06 01 FF FF FF ),ale to mi nefunguje.Pokouším se i o úpravu kódu s použitou knihovnou ale bez výsledku a už si nevím rady.

Děkuji za radu nebo alespoň odkaz

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: komponenty v lcd nextion

Příspěvek od pavel1tu » 25 dub 2019, 06:28

Vyzkoušej toto,
https://www.arduinotech.cz/inpage/nexti ... ruha-cast/

já teď doma žádný Nextion nemám, ale asi před rokem jsem na malém displeji rozchodil takový chytřejší termostat. Ladil jsem to na DUE ale chodilo to i s UNO. Použil jsem tam Softvare Serial. Jen bacha na paměť - pokud budeš posílat na displej hodně textu - pěkně ji to žere.
Dal jsem to i jako neprogramátor :-)
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: komponenty v lcd nextion

Příspěvek od AstroMiK » 27 dub 2019, 15:39

Pro příklad:
Mám na displeji vytvořena dvě tlačítka (objekty). Tyto objekty jsem na displeji vytvořil v editoru.
Každý z těch objektů musí mít zaškrtnuto "Send Component ID" pro "Touch press event" a případne i pro "Touch release event" (viz obrázek níže).

Tím bude zajištěno, že se při stisku (a při uvolnění) budou odesílat sériová data do Arduina.


A úplně nejjednodušší příklad pro zjišťování stisku objektů bez knihovny by mohl v Arduinu vypadat třeba takhle:
(V Serial2.begin je nutné nastavit správnou rychlost - nevím, jaká je defaultně, já jsem si jí změnil v displeji v simulátoru příkazem bauds=38400)

Displej je připojený na SoftwareSerial na pinech 10 a 11 (křížem)

Kód: Vybrat vše

#include <SoftwareSerial.h>

SoftwareSerial Serial2(10, 11); // RX, TX - připojení Nextiona (krizem)

void setup(void)
  {
    Serial.begin(9600);        // rychlost komunikace mezi Arduinem a Seriovym monitorem
    Serial2.begin(38400);      // tady se musi nastavit spravna rychlost komunikace mezi Arduinem a displejem
  }


void loop(void)
  {
    if (Serial2.available())
      {
        delay(10);                            // Chvili pauza na prijeti cele sekvence dat (7 bajtu)

        byte akce = Serial2.read();           // Pri dotycich na displej by mel byt prvni bajt 0x65
        if (akce == 0x65)                     // Kdyz se jedna o dotyky, prectou se jeste dalsi bajty
          {
	    byte obrazovka = Serial2.read();      // Druhy bajt je index aktivni obrazovky
            byte objekt = Serial2.read();         // Treti bajt je index objektu na obrazovce
            byte stav = Serial2.read();           // Ctvrty bajt je stav stisku (0= prave uvolneno, 1 = prave stisknuto)

            Serial.print("Na obrazovce ");         // A ze zjistenych hodnot se sestavi srozumitelna veta a posle se do serioveho monitoru
            Serial.print(obrazovka);
            
            Serial.print(" byl prave ");
            if (stav == 0)  Serial.print(" uvolnen ");
            if (stav == 1)  Serial.print(" stisknut ");

            Serial.print(" objekt s indexem ");
            Serial.println(objekt);
            
            
          }

      // Zbytek dat z displeje je nejaky bordel (v lepsim pripade jen 3x znak 0xFF), nebo nejaka data, 
      //    ktera nemaji s dotyky nic spolecneho, tak se jednoduse vsechno ze seriove linky smaze.
        while (Serial2.available())     
          {
            Serial2.read();
          }
        
        
      }
    
  }
nextio-obr.gif

vystup.gif

crgo1977
Příspěvky: 36
Registrován: 20 led 2018, 20:16
Reputation: 0

Re: komponenty v lcd nextion

Příspěvek od crgo1977 » 12 čer 2019, 23:13

Zdravím,
omlouvám se za odmlčení,ale navalilo se na mě hodně práce a tak mi nezbýval čas na arduino.
Mezitím jsem pořídil arduino mega. Zkoušel jsem radu v tomto tématu,bohužel se mi nic neobjeví - vypadá to,že z displeje mi nic "neleze" ikdyž nastavím všechno jak má být.
Vyzkoušel jsem i original knihovny nextion - na netu jich je více.I tady jsem narazil.Z displeje nic nedostanu. Do displeje jsem schopen poslet text i číslo,dokonce jsem schopný měnit checkbox - zapnu nebo vybnu pomocí arduino kódu,ale z displeje nic.
Je možné,že mám chybu v nastavení ( používám implicitní 9600 ).

Díky za rady.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: komponenty v lcd nextion

Příspěvek od pavel1tu » 13 čer 2019, 08:50

Vyzkoušej nějaký český "příklad" s Nextion - použij knihovny jako používají oni - jestli ti to půjde ....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

crgo1977
Příspěvky: 36
Registrován: 20 led 2018, 20:16
Reputation: 0

Re: komponenty v lcd nextion

Příspěvek od crgo1977 » 12 črc 2019, 22:18

problém vyřešen,po dlouhém hledání a zkoušení jsem si uvědomil,že v knihovně kterou používám je také uveden seriový port a já to měl nastaveno na piny. po přepsání portu a úpravě programu mi již displej komunikuje tak jak potřebuji. Děkuji za pomoc

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů