Strona 1 z 1
Wyświetlacze Nextion
: 09 lis 2020, 22:54
autor: Jacek
Witam czytających - co Koledzy myślą, jakie mają doświadczenie z wyświetlaczami jak w tytule wątku. Znalazłem na Youtube tutoriale o tych wyświetlaczach i to po polsku
Na forum MCS Bartek w tym wątku opisuje komunikację dwustronna z lcd Nextion w Bascom'ie
https://www.mcselec.com/index2.php?opti ... ht=nextion
pozdrawiam Jacek.
Re: Wyświetlacze Nextion
: 15 lis 2020, 22:34
autor: Jacek
Witam - nie ma nikt z forum doświadczenia z tymi wyświetlaczami
.
pozdrawiam Jacek.
Re: Wyświetlacze Nextion
: 22 lis 2020, 13:32
autor: pimowo
Wiem, że Bartek robił sterownik na takim wyświetlaczu (chwalił się tym w moim temacie o pH) Sam nie ma doświadczenia z tym wyświetlaczem - zakupiłem taki wyświetlacz, ale jeszcze go nie odpaliłem. W międzyczasie stwierdziłem, że w przyszłości jak powielę swój projekt sterownika akwarium to przez taki wyświetlacz będzie zbyt mocno rosła cena całego sterownika (temat jeszcze do przemyślenia)
Masz ten wyświetlacz czy chcesz go dopiero zakupić? Jeżeli już masz to pytaj o konkrety, a jeżeli jeszcze go nie masz to możesz coś na nim zrobić, nie mając go fizycznie - zacytuję Kolegę @niveasoft
niveasoft pisze: ↑31 sty 2020, 1:06
No ja nawet Nextiona z pudełka nie wyciągam jak mam dla kogoś coś napisać bo to się tak nawet 40s potrafi flashować do niego
Działam na wbudowanym symulatorze i to działa świetnie. Podłaczam Ardu Mega250 na dwa baty czyli na dwa COMy
Jeden mam do danych i debug a drugi niby komunikuje się z Nextionem a komputer świetnie go udaje.
Tak więc można sobie napisać i zobaczyć soft zanim jeszcze kupisz wyświetlacz
Re: Wyświetlacze Nextion
: 22 lis 2020, 16:28
autor: Jacek
Witam - wyświetlacza jeszcze nie mam, rozważam kupno ciekawi mnie czy to co opisał Bartek na forum MCS działa poprawnie.
Myślałem nad kupnem wyświetlacza 4Dsystems ale ta cena.....
.
Nie robię projektu na zarobek tylko dla siebie czysto hobbystycznie
.
Może Bartek by coś napisał jak to testuje symulując lcd.
Dzięki za odzew pozdrawiam Jacek.
Re: Wyświetlacze Nextion
: 22 lis 2020, 21:35
autor: pimowo
Jacek pisze:Nie robię projektu na zarobek tylko dla siebie czysto hobbystycznie
Ja również robię dla siebie, ale jak zrobię dwa, może trzy sterowniki to dobre 300zl idzie tylko na same wyświetlacze.
Jacek pisze:Może Bartek by coś napisał jak to testuje symulując lcd.
Zacytowałem Bartka, a tam jest napisane co i jak robił
Re: Wyświetlacze Nextion
: 22 lis 2020, 21:39
autor: Jacek
Witam - hi właśnie coś klece w edytorze Nextion'a - poszukam tego tematu - muszę zobaczyć jak wysyłać dane na lcd i jak odbierać z niego jak coś już zrobię sensownego
to tutaj wstawię.
pozdrawiam Jacek.
P.S. oglądałem ten film który Bartek umieścił w Twoim temacie bardzo fajnie to wyszło - szkoda że nie umieścił kodu Bascoma - idę po insulinę.
pozdrawiam Jacek.
Re: Wyświetlacze Nextion
: 13 gru 2020, 21:05
autor: niveasoft
Nie pamiętam czy na MCS wstawiłem jakiś kod. Mogę coś wyciąć z gotowego kodu, żeby pokazać jak wysyłać i odbierać komendy, ale to się najlepiej objaśnia na przykładzie, a całego kodu zamieścić nie mogę. Nextiona trzeba trochę "poczytać". Komendy z AVR`a muszą pasować do softu w wyświetlaczu, czyli jak wysyłam "ID tekstu + Enter + Text + Enter" to Nextion musi wiedzieć który to jest ten text po tym ID.
Same Sub`y są proste tylko to potem trzeba zgrać...Tu jeszcze stary Printbin nie miał ilości bajtów do wysłania więc robiłem to w Asm na piechotę. Teraz jest łatwiej.
Sub Set_text(byval Txt_id As String * 12 , Byval New_txt As String * 29)
Tx_string = Txt_id + ".txt={034}" + New_txt + "{034}"
Tx_len = Len(tx_string)
'Debug #usb , Tx_string
'Printbin #nex , Nex_tx_buff(1) , Tx_len
Printit
Nexend
End Sub
Sub Set_page(byval Page_nr As Byte)
Tx_string = "page " + Str(page_nr)
Tx_len = Len(tx_string)
Debug #usb , Tx_string
'Printbin #nex , Nex_tx_buff(1) , Tx_len
Printit
Nexend
Actual_page = Page_nr
End Sub
Sub Send_command(byval New_cmd As String * 29)
Tx_string = New_cmd
Tx_len = Len(tx_string)
Debug #usb , Tx_string
'Printbin #nex , Nex_tx_buff(1) , Tx_len
Printit
Nexend
End Sub
Sub Printit()
'Printbin Nex_tx_buff(1) , Tx_len
R19 = Tx_len
Loadadr Nex_tx_buff(1) , X
St_point:
!LD R24, X+
Wait_for_empty:
!LDS R0, UCSR1A '1 for second USART
!SBRS R0, UDRE1
!RJMP Wait_for_empty
!STS UDR1, R24 '1 for second USART
!DEC R19
!BRBC 1,St_point
End Sub
Macro Nexend 'to end a tx sequence--------------------------
Nex_tx_buff(1) = &HFF
Nex_tx_buff(2) = &HFF
Nex_tx_buff(3) = &HFF
Tx_len = 3
Printit
'Printbin #nex , &HFF ; &HFF ; &HFF
End Macro
Macro Nexq ' to send quote before or after a sentence---------
Nex_tx_buff(1) = &H22
Tx_len = 1
Printit
'Printbin &H22
End Macro
Tak Nextion odpowiada.
'--[ USART1 COM2 NEXTION ]---------------------
If 0 < Ischarwaiting(#nex) Then
Incr Nex_idx : If Nex_idx > Max_nex_command_len Then Nex_idx = 1 'zabezpieczenie
Nex_buff(nex_idx) = Waitkey(#nex)
If Nex_idx = 1 Then 'check what type of msg we receiving
Select Case Nex_buff(1)
Case 0
'it can be 4bytes Invalid_instruction
'or 6 bytes Nextion_startup (may be after reset)
Min_len = 1
Case Touch_event
Min_len = 4
Case Touch_awake_coordinate '9 bytes
Min_len = 6
Case Touch_sleep_coordinate '9 bytes
Min_len = 6
Case String_data 'it will be string with variable len
Min_len = 2
Case Numeric_data 'there can be FF`s so we must wait for 8 bytes
Min_len = 5
Case Else
Min_len = 1 'rest of return`s have one byte followed three FF`s
End Select
Else
'msg continue
If Nex_buff(nex_idx) = &HFF Then
If Nex_idx > Min_len Then
If End_cnt < 2 Then
Incr End_cnt
Else 'we received third FF
' '-----------------------------[ DEBUG ]----------
' Debug #usb , "Debug=> ";
' For N = 1 To Nex_idx
' Debug #usb , Hex(nex_buff(n)) ; " ";
' Next
' Debug #usb , ""
' '------------------------------------------------
'parse
Select Case Nex_buff(1)
Case Invalid_instruction
If Nex_idx = 4 Then
Debug #usb , "Invalid instruction!"
Elseif Nex_idx = 6 Then
Debug #usb , "Nextion rebooted OK"
End If
Case Instruction_okay
Debug #usb , "Command accepted"
Case Invalid_variable_name
Debug #usb , "Variable or component NAME not recognized!"
Case Touch_event
If Touch_state = 0 Then
Debug #usb , "Relased object " ; Touch_id ; " on page " ; Touch_page
Else
Debug #usb , "Pressed object " ; Touch_id ; " on page " ; Touch_page
End If
Case Touch_awake_coordinate To Touch_sleep_coordinate
Swap New_x 'big endian order received
Swap New_y
Debug #usb , "Coordinates are: X=" ; New_x ; " Y=" ; New_y
Case String_data
Helpb = Nex_idx - 2
Nex_buff(helpb) = 0 'add string terminator
'Debug #usb , "New string=> " ; New_string
Debug #usb , New_string
'you can parse new commands here
Case Numeric_data
Debug #usb , "New value=> " ; New_long
'you can parse new values here
End Select
Nex_idx = 0
End_cnt = 0
End If
End If
End If
End If
End If
Stałe dla rozeznania się w komandach
'*****************************************************************
'* NEXTION DISPLAY *
'*****************************************************************
'NEXTION RETURN DATA LENGTH
Const Invalid_instruction = &H00 '4
Const Instruction_okay = &H01 '4
Const Invalid_component_id = &H02 '4
Const Invalid_page_id = &H03 '4
Const Invalid_picture_id = &H04 '4
Const Invalid_font_id = &H05 '4
Const Invalid_file_operation = &H06 '4
Const Invalid_crc = &H09 '4
Const Invalid_baud_rate = &H11 '4
Const Invalid_vaweform_id = &H12 '4
Const Invalid_variable_name = &H1A '4
Const Invalid_variable_operation = &H1B '4
Const Assignement_failed = &H1C '4
Const Eeprom_operation_failed = &H1D '4
Const Invalid_parameters_quantity = &H1E '4
Const Io_operation_failed = &H1F '4
Const Escape_char_invalid = &H20 '4
Const Variable_name_to_long = &H23 '4
'return codes valid in all cases
'00 00 00 FF FF FF =>Nextion starup '6
Const Serial_buff_overflow = &H24 '4
Const Touch_event = &H65 '7
' 65 00 01 01 FF FF FF
' | | | |
' | | | event 01=press, 00=release
' | | component ID
' | page number
' touch event
Const Curr_page_num = &H66 '5 second byte is page num
Const Touch_awake_coordinate = &H67 '9
Const Touch_sleep_coordinate = &H68
'first two bytes is X
'next two bytes is Y
'last byte is event 01=press, 00=release
'eg. 67 00 7A 00 1E 01 FF FF FF
Const String_data = &H70 'varied len eg.70 xx xx xx xx xx xx FF FF FF
Const Numeric_data = &H71 '8 eg.71 xx xx xx xx FF FF FF <-4bytes 32bit value, little endian
Const Auto_sleep = &H86 '4
Const Auto_awake = &H87 '4
Const Nextion_ready = &H88 '4
Const Micro_sd_upgrade = &H89 '4
Const Transp_data_finished = &HFD '4
Const Transp_data_ready = &HFE '4
Re: Wyświetlacze Nextion
: 13 gru 2020, 22:09
autor: Jacek
Witam - Bartku dziękuje za programy przez święta po testuje i zobaczymy czy to ogarnę.
pozdrawiam Jacek.
Re: Wyświetlacze Nextion
: 14 gru 2020, 20:47
autor: Pikczu
Jacek,
Mały kurs nextiona po Niemiecku.
https://www.boecker-systemelektronik.de ... _Tutorials
Google translate będzie twoim przyjacielem