Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Videoporadnik wyświetlacze NEXTION

ekrzychoooo 29 Maj 2018 20:16 9771 164
  • #31
    kaino
    Poziom 11  
    ekrzychoooo napisał:
    - Myślę że powinno być s2.bt0.val a nie s2.bt0.en
    - Eclipse Window -> preferencje -> C/C++ -> Indexer ->Enable indexer


    ale sendCommand("s1.s10.val=0");

    s1.s.10.val=0 jest przyciskiem i tylko pokazuję sie zmiana ikony, a nie wykonuję funkcji do niego przypisanych jak robi to z przycisku sprzętowego ,

    i nie mogę go obsługiwać z wyświetlacza
  • #33
    kaino
    Poziom 11  
    Mama taki problem

    jak tylko odczytuje temperaturę z termistora lub termopar i wysyłam do pola tekstowegoo nextion wyświetlacz jak by zwalniał jest dość dużo opóźnienie na dotyk

    w czym może być problem


    Kod: c
    Zaloguj się, aby zobaczyć kod
  • #34
    ekrzychoooo
    Poziom 15  
    ten kod
    Kod: c
    Zaloguj się, aby zobaczyć kod

    nie różni się niczym od
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Nie wiem czy taki miałeś zamiar (średnik w linii while)

    Podłącz arduino nie do LCD ale do PC i w debugerze wyświetlacza obserwuj co się dzieje na wejściu i wyjściu. Wydaje mi się że tam masz non stop transmisje co może powodować chwilowe przeciążenia.
  • #36
    kaino
    Poziom 11  
    podaje kod arduino odnośnie wpisu na YT


    Kod: c
    Zaloguj się, aby zobaczyć kod
  • #37
    ekrzychoooo
    Poziom 15  
    Proszę wklej plik HMI bo mi wyświetlacz zwraca błędy
    Code:
    0x1A    2,3    4    Invalid Variable name or attribute    0x1A 0xFF 0xFF 0xFF
    
    Returned when invalid Variable name or invalid attribute was used


    Dodano po 26 [minuty]:

    W pętli loop dwukrotnie uruchamiasz update();
    na początku pętli
    Kod: c
    Zaloguj się, aby zobaczyć kod

    i drugi raz
    Kod: c
    Zaloguj się, aby zobaczyć kod


    wywal to z początku pętli

    Dodano po 7 [godziny] 39 [minuty]:

    2018-06-09 o 17:00 transmisja na żywo Live
    1 Naprawa biblioteki arduino NexNumber
    2 Pytania odpowiedzi

    Zapraszam
  • #38
    alikwot665
    Poziom 4  
    Witam!
    Na początku muszę Ci ogromnie podziękować za poradniki. Są kapitalnie przygotowane i z każdego odcinka można bardzo wiele wynieść :)
    Mam pytanie dotyczące wykresów czyli elementów waveform.
    Czy istnieje możliwość aby dynamicznie w biegu zmienić zakres osi y? Chodzi mi o to, że mam do arduino podłączone pewne urządzenie pomiarowe, które w normalnych warunkach wskazuje 20-30 ale może sięgnąć nawet kilku tysięcy w pewnych okolicznościach. Chciałbym aby w normalnym trybie wartości na wykresie zmieniały się w zakresie powiedzmy od 0 do 30 ale jeśli ta wartość zostanie przekroczona to automatycznie zakres się zwiększy. Wiązałoby się to ze "spłaszczeniem" dotychczasowego wykresu tak aby pojawiające się wyższe odczyty zmieściły się i były proporcjonalnie wyżej do poprzednich. Gdyby wartość odczytów urosła np. do 500, poprzednie odczyty rzędu 20-30 spłaszczyłyby się do kilku pikseli tak aby zmieściło się też 500.
    Zauważyłem, że właśnie tak "w biegu" można zmieniać kolor wykresu i zmienia się kolor całego narysowanego wykresu a nie tylko nowo powstających pikseli więc gdzieś wyświetlacz przechowuje informacje o tym jak wygląda wykres. Gdyby tylko dało się jakoś pobrać te informacje i wtedy położenia pikseli wykresu np. podzielić przez 100 (co spłaszczy wykres ale tez sprawi, że wysokie odczyty zmieszczą się na wykresie.) i wtedy nadpisać stary wykres nowym.
    Czy coś takiego jest możliwe?
  • #39
    nebari
    Poziom 2  
    Witam Panie Krzysztofie
    Minął jakiś czas od naszych dyskusji na YT - miałem sporą przerwę przy pracy z projektem ale wracam do kontynuowania tematu. Po zmianie/przestawieniu stron (kolejności) podziały się problemy z którymi nie jestem w stanie sobie poradzić. Zegar, lampy i termometry śmigały aż miło i się skończyło :-( . Projekt generalnie dotyczy sterownika/kontrloera akwarium w wersji troszkę rozbudowanej.

    W opcjach sterownika jest:
    - sterowanie dwoma kanałami PWM z podawaniem pory dnia pracy lamp (lampy led)
    - kontrola temperatury i sterowanie wiatrakami (dwa kanały) - na panelu animacja działania wiatraka w momencie załączenia któregoś z nich,
    - pomiar wartości pH i przy wprowadzonym odpowiednim kH wyliczenie wartości dwutlenku węgla w wodzie Co2,
    - oczywiście data i godzina aktualna,
    - sterowanie dozownikiem nawozów.

    Całość w wersji jedno-kanałowej działa na arduino nano i wyświetlaczu LCD 20x4 ale nie ma w nim możliwości ustawiania parametrów z pozycji wyświetlacza tylko w programie i konieczność przeładowania programu do arduino co jest męczące i nieporęczne.
    I teraz moja gorąca prośba do fachowców od arduino i wyświetlaczy Nextion w pomocy ogarnięcia tematu bo nie wiem już jak to ogarnąć.
    W złączeniu zamieszczam plik do wyświetlacza mój model to: NX3224T024_011. Arduino do obsługi to wersja MEGA 2560.
    Oczywiście jeżeli ktoś widzi zastosowanie u siebie takiego projekciku chętnie się podzielę ale niech zadziała :-(.
    poniżej skech do arduino:
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • #40
    Slawek K.
    Poziom 32  
    Tak na szybko :

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Masz zadeklarowana stronę nr 1 a pózniej page0.nX, usuń page0 sprzed nazw pola numerycznego, sprawdź czy na pewno te nX znajdują sie na stronie 1 i czy ID sie zgadzają z projektem w edytora Nextion.

    Pozdr
  • #41
    nebari
    Poziom 2  
    rs6000 napisał:
    Tak na szybko :

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Masz zadeklarowana stronę nr 1 a pózniej page0.nX, usuń page0 sprzed nazw pola numerycznego, sprawdź czy na pewno te nX znajdują sie na stronie 1 i czy ID sie zgadzają z projektem w edytora Nextion.

    Pozdr

    Tak niestety jest gdyż najpierw powstała page 0 która była stroną główną a dopiero pod koniec zrobiłem stronę startową która była page 7 i gdy zmieniłem kolejność w okienku ze stronami to page7 jest teraz z ID 0 a page 0 ma ID 1. jak na poniższym obrazku.
    Zresztą w tej wersji wszystko chodziło tylko wraz z dodawaniem i przestawianiem pól numerycznych, tekstowych numery ID tych pól się pozmieniały więc i ja je pozmieniałem w kodzie i od tamtej pory kicha.
    Videoporadnik wyświetlacze NEXTION
  • #42
    Slawek K.
    Poziom 32  
    Ale źle masz zadeklarowane obiekty :

    Kod: c
    Zaloguj się, aby zobaczyć kod

    1 parametr to nr strony na której znajduje się obiekt
    2 parametr to ID obiektu na danej stronie
    3 parametr to nazwa obiektu

    więc jeżeli nr strony jest zadeklarowana 1 to n1 nie może mieć z przodu page0 tak jak zrobiłeś : page0.n1
    Powinno być tak (przyjmując, że obiekt n1 znajduje się na stronie 1 i jego ID jest 16) :

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Dołącz plik HMI z Nextion to będzie można sprawdzić.

    Pozdr
  • #43
    nebari
    Poziom 2  
    Proszę zerknijcie również na kod do arduino gdyż wcześniej wszystko było w pętli void loop. Teraz porozdzielałem to na "bloki" aby całość była bardziej przejrzysta. Zastanawiam się nad prawidłowością rozdzielenia zegara od starowania światłem led, od sterownika do dozownika. Czy to nie koliduje w pobieraniu odpowiednich danych dla poszczególnych procedur? Dla uzupełnienia plik HMI
  • #44
    nebari
    Poziom 2  
    Witajcie
    jako że sam nadal drążyłem problem odkryłem powód. Problem okazał się banalny a zarazem oczywisty. Z racji że wcześniej pracowałem na arduino UNO i wówczas wszystko działało problem pojawił się po przesiadce na MEGA2560. Dlaczego? Bo zapomniałem o aktywowaniu dodatkowego portu szeregowego. Banalne prawda?? Po wpisaniu Serial2.begin(9600) - RUSZYŁO jak gdyby nigdy nic :shocked!: :D :crazyeyes: . Ale z racji że nie jestem mocny w te klocki i bazuję na tym gdzie coś znajdę i dostosuję do swoich potrzeb to mam parę pytań uzupełniających od zaplecza arduino.
    Z założenia sterownik ma działać po wgraniu sketcha bez konieczności dodatkowego podłączania i instalowania czegokolwiek - pełna obsługa przez wyświetlacz.

    1. Po uruchomieniu w programu w postaci jaką zamieściłem wcześniej sekundnik zegara chodzi bardzo nieregularnie - raz co 1 sekundę a innym razem co 2 sekundy. Co może być tego powodem?

    2. Czy jest inny bardziej prosty sposób oprogramowania PWM do sterowania zmierzchem i świtem?? zależy mi na tym aby z poziomu wyświetlacza (a nie prze compa) zmieniać np. moc świecenia w tej wersji jest to co najmniej problematyczne.

    3. Jak przebrnąć przez problem ustawiania daty i godziny z wyświetlacza a nie odświeżając przez ładowanie sketcha? Nie ma na ten temat wiele w sieci :-( ?

    4. jak rozwiązać temat zapamiętywania wprowadzonych danych aby po zaniku zasilania całość startowała na tych samych ustawieniach jak przez zanikiem. ?
  • #45
    sq9cyg
    Poziom 10  
    Powiedzcie mi proszę co w moim przykładzie jest nie tak.
    Temperatura się wyświetla w obydwóch polach na wyświetlaczu, ale naprzemiennie.
    Jak zrobić żeby jedna była na jednym a druga na drugim?
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • #46
    ekrzychoooo
    Poziom 15  
    Tutaj jest przykład jak odczytywać dwa termometry:
    github

    Odczytujesz z jednego termometru i wyświetlasz na jednym i drugim polu tą samą wartość.
    Przy kolejnym wywołaniu temperatureDisplay odczytujesz kolejny termometr i znowu wyświetlasz na jednym i drugim polu tą samą wartość.
  • #47
    Jarzabek666
    Poziom 30  
    Czy ktoś wie jaki generator dobrze robi czcionkę? czystą czytelną? w iso-8859-2 bo ten wbudowany generator jest lipny nie wypośrodkuje literek i słowa są nieczytelne i brzydkie, a poszukując znalazłem inny generatorv3 ale on nie ma polskich znaków bo tylko w ASCII.

    Gdyby ktoś nie rozumiał o co chodzi

    Videoporadnik wyświetlacze NEXTION

    Odległości miedzy literkami, juz nie wspomnę ze "m" mniejsze
  • #50
    Jarzabek666
    Poziom 30  
    rs6000 napisał:
    Czcionka Lucida Console jest ok.


    Ta nie dała dobrego efektu ale zacząłem sprawdzać inne i sprawdziłem u kolegi wyżej :D

    Najlepiej sprawdziła się czcionka "consolas" i "courier news"

    Videoporadnik wyświetlacze NEXTION

    Jeszcze mam takie może głupie pytanie, ale nie rozumiem tego:
    Store value/string to EEPROM
    – EEPROM valid address range is from 0 to 1023 (1K EEPROM)
    – numeric value length: is 4 bytes, -2147483648 to 2147483647
    – numeric data type signed long integer, stored in little endian order.
    val[addr+3]*16777216+val[addr+2]*65536+val[addr+1]*256+val[addr]
    – string content length: .txt content is .txt-maxl +1, or constant length +1
    usage: wepo <attr>,<addr>
    <attr> is variable or constant
    <addr> is storage starting address in EEPROM
    wepo t0.txt,10 // writes t0.txt contents in addresses 10 to 10+t0.txt-maxl
    wepo “abcd”,10 // write constant “abcd” in addresses 10 to 14
    wepo 11,10 // write constant 11 in addresses 10 to 13
    wepo n0.val,10 // write value n0.val in addresses 10 to 13

    Chodzi mi o adresowanie wedle tego adresy numeryczne powinna być co 4 ?
    Adres pierwszej komurki 0-3 drugiej 4-7 itd.

    Zajrzałem do programu innego pokazowego i tam "numeric value" był zapisywany co 6 bajt. czyli adresy co 6 bajtowe.
    I nie rozumiem czy te dwa to jakiś luz? czy to jakiś wymóg?

    Jestem początkujący.
  • #51
    Slawek K.
    Poziom 32  
    Jarzabek666 napisał:
    rs6000 napisał:
    Czcionka Lucida Console jest ok.


    Ta nie dała dobrego efektu ale zacząłem sprawdzać inne i sprawdziłem u kolegi wyżej :D

    Najlepiej sprawdziła się trzcinka "consolas" i "courier news"

    Videoporadnik wyświetlacze NEXTION

    "Trzcinka" powiadasz :D
  • #54
    Jarzabek666
    Poziom 30  
    Kawałek kodu:

    wepo va0.val,0
    wepo va1.val,6
    wepo va2.val,12
    wepo va3.val,18

    Ten przykład to demo ze strony www.itead.cc dla wyświetlaczy "K" jestem początkujący i nie rozumiem po co te 2 bajty puste.
  • #56
    Jarzabek666
    Poziom 30  
    Typowego linka do kodu nie mam ja go podejrzałem w Enhanced_Nextion_5.0-7.0_Demo.zip który jest na stronie producenta.
  • #58
    Jarzabek666
    Poziom 30  
    ekrzychoooo napisał:
    A... Czyli cały plik hmi


    Tak podejrzałem tam przycisk save z kodem

    if(sys0==4)
    {
    wepo va0.val,0
    wepo va1.val,6
    wepo va2.val,12
    wepo va3.val,18
    wepo 44,24
    wepo 44,30
    page 3
    }

    I odczyt na page 1

    sys0=0
    sys1=0
    repo va8.val,24
    repo va9.val,30
    va10.val=va8.val+va9.val
    if(va10.val==88)
    {
    repo va4.val,0
    repo va5.val,6
    repo va6.val,12
    repo va7.val,18
    }else
    {
    va4.val=2
    va5.val=0
    va6.val=1
    va7.val=6
    }
    n6.val=va4.val
    n7.val=va5.val
    n8.val=va6.val
    n9.val=va7.val


    A ze coś sobie też robię wiec nie rozumiem po co ta rezerwa. Jeszcze przez producenta ustawiona.

    Ja zrobiłem co 4 bajty adres i działa ale chciał bym wiedzieć po co producent zrobił co 6.
  • #60
    Jarzabek666
    Poziom 30  
    A to jest dozwolone? eeprom spory jak na moje potrzeby wiec nie muszę ściskać
    Jarzabek666 napisał:
    I nie rozumiem czy te dwa to jakiś luz? czy to jakiś wymóg?