Daftar Isi:
- Langkah 1: Bagaimana Register Ditransmisikan
- Langkah 2:.. Tapi Sebelumnya …
- Langkah 3: Mengedit Objek Nextion
Video: Pendekatan Berbeda Dengan Nextion: 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Dalam proyek pertama saya dengan Arduino Nano yang terhubung ke layar sentuh Nextion, saya telah menulis serangkaian perintah yang panjang untuk dikomunikasikan ke Nextion melalui port serial dan ini tidak dapat dihindari jika kita perlu mengirim perintah yang benar-benar independen, pada saat-saat acak.
Saya juga harus mengakui bahwa saya menghabiskan lebih banyak waktu untuk 'bertarung' dengan Perpustakaan daripada yang lainnya. Jadi saya secara bertahap mulai bekerja sepenuhnya tanpa perpustakaan ITEAD yang berat.
Saya segera menyadari bahwa saya tidak memiliki urgensi untuk mengomunikasikan kepada Nextion perubahan atribut objek visual, tetapi saya lebih suka menunggu sampai saya mengumpulkannya dan mengirimkannya ke Nextion secara keseluruhan, ketika saya mendapatkan grup yang lengkap.
Saya akan mencoba menjelaskan diri saya lebih baik.
Ketika dalam proyek saya yang terdiri dari 16 indikasi tekstual, saya ingin mengaktifkan atau menonaktifkan beberapa di antaranya, saya melakukannya dengan memanfaatkan atribut 'bco' yang untuk dinyalakan, melewati (misalnya) dari abu-abu gelap ke putih (jika di persegi panjang hitam), dan sebaliknya untuk mematikan.
Dalam aplikasi saya, saya merasa tidak berguna untuk mengirim 16 perintah ke port serial dalam 16 momen berbeda, satu untuk setiap 'bco' dari 16 sinyal.
Saya lebih suka Arduino mengumpulkan sinyal mana yang harus 'aktif' (TINGGI) dan mana yang harus 'mati' (RENDAH) dalam register 16-bit, di mana setiap bit sesuai dengan salah satu dari 16 pensinyalan Nextion.
Setelah memperbarui setiap bit register, saya mengirimkan nilainya ke Nextion, satu pesan yang berisi informasi kolektif mengenai 16 elemen.
Dengan cara ini komunikasi dari Arduino dan Nextion sangat berkurang karena dalam satu pesan yang ditransmisikan secara serial ke Nextion, informasi dikumpulkan yang jika tidak akan memerlukan transmisi 16 pesan.
Benar, tidak selalu perlu memperbarui semua laporan, tetapi saya yakin bahwa melakukan sebaliknya akan membuang lebih banyak waktu.
Secara alami setiap bit yang terkandung dalam bilangan bulat yang diterima oleh Arduino, tampilan Nextion harus mengaitkannya dengan atribut yang diinginkan.
Ini berarti kode harus ditulis di tampilan Nextion, tetapi tidak perlu takut: jika saya berhasil …
Lalu ada keuntungan ganda: Arduino akan memiliki kode yang lebih ringan dan akan kurang terlibat dalam komunikasi serial dengan Nextion.
Selanjutnya setelah menerima data dalam satu pesan, akan menggunakannya jauh lebih cepat daripada jika harus menunggu 16 pesan. Oleh karena itu, pengaktifan atau penonaktifan 16 sinyal akan hampir bersamaan sehubungan dengan mode yang paling biasa, di mana waktu untuk sejumlah pesan yang tidak diketahui berlalu antara eksekusi perintah untuk pensinyalan pertama dan perintah untuk pensinyalan terakhir.
Pada tampilan Nextion, saya membuat sistem ini dengan cara klasik, yaitu, memutar register 'topeng' setiap kali memungkinkan Anda untuk memeriksa masing-masing dari 16 bit. Ketika bit yang diperiksa TINGGI, sinyal yang terkait dengan bit itu menyala di layar dan mati ketika sedikit LOW.
Aspek 'negatif' dari sistem ini adalah bahwa kode yang ditulis dalam tampilan Nextion kurang nyaman untuk didokumentasikan daripada kode Arduino. Selanjutnya, kode Nextion berisiko tersebar di berbagai objek. Perawatan harus diambil untuk mendokumentasikan apa yang Anda lakukan segera.
Saya menggunakan Notepad ++ untuk menulis kode yang kemudian saya salin ke objek Nextion yang hampir secara eksklusif di tm0 halaman 0.
Sintaks bahasa Nextion memiliki banyak keterbatasan, tetapi ia berhasil mengatasinya atau menyiasatinya dengan sedikit usaha dan mencoba melihat masalah dari sudut pandang yang juga tidak biasa.
Sebagai contoh, saya melaporkan cara Arduino menulis register untuk ditransmisikan, ditulis oleh saya dengan cara yang paling dasar.
Langkah 1: Bagaimana Register Ditransmisikan
Dalam file ArduinoCode. PDF saya menunjukkan semua sketsa saya. (Membaca kode di bawah ini tidak begitu jelas)
Di sini, saya hanya ingin menunjukkan cara Arduino mengirim Register 16 bit ke Nextion, tanpa bantuan perpustakaan, tetapi hanya menghormati sintaks yang dijelaskan oleh ITEAD.
//***************************************************************************************
batal NexUpd()
//***************************************************************************************
{
SRSerial.print("vINP.val=");
SRSerial.print(InpReg); // mengirimkan 16 bit yang dikumpulkan ke Tampilan Berikutnya
SRSerial.print(InpReg); // mengirimkan 16 bit yang dikumpulkan ke Tampilan Berikutnya
SRSerial.write(termin); // 255
SRSerial.write(termin); // 255
SRSerial.write(termin); // 255
}
//***************************************************************************************
Langkah 2:.. Tapi Sebelumnya …
Tentu saja kode dimulai dengan semua deklarasi dan setup().
Inputnya adalah INPUT_PULLUP, jadi sakelar input biasanya terbuka dan ketika ditutup, mereka menerapkan GND ke input koresponden.
(Ini adalah Instruksi pertama saya dan saya minta maaf untuk menunjukkan kepada Anda kode saya dengan cara yang buruk ini. Silakan unduh file ArduinoCode. PDF yang sangat jelas.
Biarkan saya membicarakannya lebih lanjut
Saya telah mengembangkan cara saya sendiri untuk 'memberi tahu' ke tampilan Nextion apa yang harus dilakukan. Biasanya MCU (Arduino dalam kasus saya) mengirim pesan untuk setiap variasi tunggal untuk diterapkan ke atribut objek tunggal. Metode ini membuang banyak waktu untuk melakukan hal-hal yang tidak selalu begitu mendesak untuk memuat terus-menerus Serial Line. Saya merasa lebih nyaman bahwa Arduino mengumpulkan ke dalam register 16 bit informasi tentang atribut yang bervariasi di Nextion. Kira-kira setiap 500 mS, Arduino saya mengirim ke Nextion satu pesan yang berisi 16 bit yang terkandung dalam setiap register sekaligus. Jelas di Nextion kita membutuhkan kode yang menangani apa yang harus dijalankan. Distribusi tugas (dan kode) ini memungkinkan Anda mendapatkan banyak keuntungan lainnya. Misalnya, pikirkan bagaimana membuat kedipan lampu! Dengan pendekatan saya itu mudah: atur sedikit ke register Arduino dan kirimkan ke Nextion. Register kembar Nextion dapat diperbarui dari Arduino sangat jarang, karena frekuensi kedipnya tidak tergantung pada komunikasi; frekuensi kedip tergantung dari objek Timer ke Nextion dan dapat berjalan dengan basis waktu minimum mendekati 50 mS. Jadi dengan metode saya, kita dapat mengedipkan lampu di Nextion pada frekuensi yang relatif tinggi (misalkan 2 Hz), bahkan jika Arduino saya mengirim pesan setiap 10 detik, hanya untuk contoh ekstrem. Ini dapat menyarankan masalah yang berlawanan: bagaimana melakukannya jika Komunikasi gagal? Ini bukan objek diskusi ini, tetapi saya telah menyelesaikan masalah ini dengan semacam Watch Dog: satu di dalam Kode Arduino, yang lain ke dalam kode Nextion.
Kedipan diatur oleh kode Nextion, di mana setiap lampu mengikuti aturannya yang tepat: ON/OFF atau GREEN/RED atau juga mengubah tulisan di dalamnya (atau lainnya). Saya dapat memberi tahu beberapa hal lain tentang proyek saya, tetapi saya lebih suka menunggu pertanyaan Anda, sebelum menambahkan terlalu banyak kata, tidak begitu mudah untuk saya terjemahkan sebaik yang saya inginkan.
Langkah 3: Mengedit Objek Nextion
Berikut adalah bagian dari kode yang saya tulis dengan Nextion Editor pada objek tm0.
Tidak luput dari perhatian kami bahwa dengan 16 bit yang diterima dari Arduino, tampilan Nextion tidak hanya menghidupkan dan mematikan sinyal. Untuk sementara saya hilangkan penjelasannya agar tidak memperumit pemahaman.
Saya seorang pemula dan jadi lebih baik mengunduh halaman kode Nextion. PDF daripada membaca kode yang membingungkan di sini. (Maaf ini adalah instruksi pertama saya)
Jika mau, Anda dapat mengunduh kode lengkap "HMI" untuk aplikasi saya ini. Nama file dari kode ini adalah POW1225. HMI. Itu bisa masuk ke tampilan Nextion Anda NX4024T032 tetapi untuk memahaminya Anda harus berenang ke banyak objek dan melihat kode di dalam jendela kecil editor. Jadi saya pikir akan lebih mudah untuk melihat kode utama, yang ditulis dalam file Nextion code. PDF
// Proyek POW1225. HMI 15 Mei 2019
// vACC (va0) Akumulator
// vINP (va1) Masukan Daftar xxxx xxxx xxxx xxxx
tm0.en=1 // tm0 Mulai
tm0.tim=50 // tm0 Basis waktu 50 mS
// RDY ***************
vACC.val=vINP.val&0x0001 // Topeng
if(vACC.val!=0) // Uji RDY
{
tRDY.pco=BIRU // MERAH
}lain
{
tRDY.pco=ABU-ABU // ABU-ABU Gelap
}
// PWR ***************
vACC.val=vINP.val&0x0002
if(vACC.val!=0) // Uji PWR
{
tPWR.pco=HIJAU // HIJAU muda
tPON.txt="ON" // AKTIF
tPON.pco=HIJAU // HIJAU muda
}lain
{
tPWR.pco=ABU-ABU // ABU-ABU gelap 33808
tPON.txt="MATI" // MATI
tPON.pco=ABU-ABU // ABU-ABU Gelap 33808
}
// KERING ***************
vACC.val=vINP.val&0x0004
if(vACC.val!=0) // Uji KERING
{
tDRV.pco=BIRU // BIRU
tDRY.pco=BIRU // BIRU
}lain
{
tDRV.pco=ABU-ABU // ABU-ABU gelap 33808
tDRY.pco=ABU-ABU // ABU-ABU Gelap 33808
}
// LARI ***************
vACC.val=vINP.val&0x0018
if(vACC.val!=0) // Uji RUN
{
tRUN.bco=MERAH // MARCIA MERAH (aktif)
tRUN.pco=HITAM // di HITAM
tDIR.bco=MERAH // DIR MERAH
tDIR.pco=HITAM // di HITAM
}lain
{
tRUN.bco=32768 // MARCIA GREY (mati)
tRUN.pco=GREY // di GREY
tDIR.bco=32768 // DIR HIJAU gelap 1024
tDIR.pco=GREY // DIR GREY
tDIR.txt="---" // BERHENTI
}
// KIRI **************
vACC.val=vINP.val&0x0008
if(vACC.val!=0) // Uji RUN Right
{
tDIR.txt="<<< " // DIR KIRI
}
// BAIK *************
vACC.val=vINP.val&0x0010
if(vACC.val!=0) // Uji RUN Kiri
{
tDIR.txt=" >>>" // DIR KANAN
}
// KEDUANYA **************
vACC.val=vINP.val&0x0018
if(vACC.val==24) // Uji RUN keduanya
{
tDIR.txt=">>!<<" // DIR KEDUA
}
// TES **************
vACC.val=vINP.val&0x0020
if(vACC.val!=0) // Uji TEST
{
tTEST.pco=PUTIH // PUTIH
tsw tTEST, 1 // Aktifkan acara Sentuh
}lain
{
tTEST.pco=ABU-ABU // ABU-ABU Gelap 33808
tsw tTEST, 0 // Nonaktifkan acara Sentuh
}
// KESALAHAN *************
vACC.val=vINP.val&0x0040
if(vACC.val==0) // Uji KESALAHAN
{
tFLT.pco=ABU-ABU // GAGAL tidak ada
}
jika(vACC.val!=0)
{
tFLT.pco=KUNING // KESALAHAN hadir
}
// EME ***************
vACC.val=vINP.val&0x0080
if(vACC.val==0) // Uji EME
{
tEME.pco=ABU-ABU // EME tidak ada
}
jika(vACC.val!=0)
{
tEME.pco=MERAH // EME hadir
}
}
// FERMO *************
vACC.val=vINP.val&0x0100
if(vACC.val!=0) // Uji FERMO
{
tFER.pco=HITAM // HITAM
tFER.bco=HIJAU // HIJAU
}lain
{
tFER.pco=ABU-ABU // ABU-ABU
tFER.bco=672 // HIJAU gelap
}
// *******************
Pengakuan
Saya ingin memberikan ucapan terima kasih saya kepada Gideon Rossouwv karena membaca Instructables-nya, saya telah memperoleh sebagian dari tujuan saya dengan cepat. Terima kasih tuan. Gideon Rossouwv
Direkomendasikan:
Lensa Makro DIY Dengan AF (Berbeda Dari Semua Lensa Makro DIY Lainnya): 4 Langkah (dengan Gambar)
Lensa Makro DIY Dengan AF (Berbeda Dari Semua Lensa Makro DIY Lainnya): Saya telah melihat banyak orang membuat lensa makro dengan lensa kit standar (Biasanya 18-55mm). Kebanyakan dari mereka adalah lensa hanya menempel pada kamera mundur atau elemen depan dilepas. Ada kerugian untuk kedua opsi ini. Untuk pemasangan lensa
The Moving OLOID - Hewan Peliharaan yang Berbeda di Waktu yang Berbeda: 10 Langkah (dengan Gambar)
OLOID yang Bergerak - Hewan Peliharaan yang Berbeda di Waktu yang Berbeda: Corona telah mengubah hidup kita: mengharuskan kita untuk menjaga jarak secara fisik, yang pada gilirannya mengarah pada jarak sosial. Jadi apa yang bisa menjadi solusi? Mungkin hewan peliharaan? Tapi tidak, Corona berasal dari hewan. Mari selamatkan diri kita dari Corona 2.0 lainnya. Tapi jika kita ha
Erguro-satu Pendekatan Pembuat Sonos Play 5 Dengan Kotak Kuggis IKEA: 7 Langkah (dengan Gambar)
Erguro-one Pendekatan Pembuat Sonos Play 5 Dengan Kotak Kuggis IKEA: Proyek ini lahir setelah pertama kali saya mendengar speaker Sonos Play 5, saya sangat terkesan dengan kualitas suara sehubungan dengan ukuran speaker yang kecil, frekuensi rendah benar-benar mengesankan, oleh karena itu saya memiliki 2 Play 5;-)Saya h
Analisis Sistem Bluetooth Windows – Pendekatan SensorTag: 7 Langkah (dengan Gambar)
Analisis Sistem Bluetooth Windows – Pendekatan SensorTag: Berikut ini, saya akan melakukan analisis sistem operasi (OS) Windows dari sudut pandang komunikasi dengan perangkat Bluetooth Hemat Energi - dalam kasus kami dengan berbagai jenis SensorTags: Thunderboard React, Thunderboard Sense (b
AM Modulator - Pendekatan Optik: 6 Langkah (dengan Gambar)
AM Modulator - Pendekatan Optik: Beberapa bulan yang lalu saya membeli kit penerima radio AM DIY ini dari Banggood. Saya telah mengumpulkannya. (Bagaimana melakukan ini, saya bermaksud untuk menjelaskan dalam Instruksi terpisah) Bahkan tanpa penyetelan apa pun, ada kemungkinan untuk menangkap beberapa stasiun radio, tetapi saya mencoba menjangkau