
Bahkan, cara untuk mengurangi jumlah kabel sudah disediakan di sana. Misalnya, mode empat-bit. Masih banyak? Ada modul tampilan dengan I
2 C. Tetapi tidak ada batas untuk kesempurnaan, dan jika Anda memiliki Arduino tambahan (cepat atau lambat muncul di banyak), layar dapat dibawa agak jauh dari sumber data dan dihubungkan dengan kabel dua kawat.
Salah satu cara untuk mentransfer daya dan data melalui pasangan kabel yang sama adalah sebagai berikut. Sinyal data dimodulasi pada frekuensi tinggi dan digabungkan, dan pada ujung yang berlawanan mereka dipisahkan untuk pasokan ke demodulator menggunakan choke dan kapasitor. Tetapi dengan daya DC, Anda dapat menggunakan metode yang lebih sederhana, mirip dengan yang digunakan pada tombol interkom. Dalam hal ini, modulator dan demodulator tidak diperlukan, di sisi transmisi, kunci yang mengganti sirkuit catu daya sudah cukup:

Transistor - AO3400A dan AO3401A. Yang kedua dari mereka dapat menahan 5 A (menurut sumber lain - 4), tetapi di sini ia hanya perlu beralih 200 mA. Alur data serial ke kunci dapat dipasok dari mikrokontroler apa pun, tetapi karena desainnya eksperimental, penulis menggunakan PC yang menjalankan skrip Python dan konverter USB-UART.
Pemutus daya penulis ternyata jelek, tetapi sangat kuat:

Di ujung lain dari garis, tegangan denyut diterapkan ke penyearah setengah-gelombang dengan filter (meskipun pembetulan tidak diperlukan dalam kasus ini, hanya perlu bahwa tegangan hingga dioda tetap berdenyut, dan kemudian tidak), yang memberi makan Arduino dan modul tampilan. Arduino mengubah data serial menjadi data paralel yang diperlukan oleh modul. Perhatian, untuk modul pada KB1013VG6 pinning tidak standar. Tegangan riak ke dioda diterapkan ke salah satu input digital Arduino.

Jadi itu terlihat dalam kehidupan nyata:

Firmware disederhanakan secara maksimal, bahkan tidak menghasilkan perintah inisialisasi untuk pengontrol tampilan (dan semua perintah lainnya) sendiri, oleh karena itu, pihak pengirim harus mengirimkannya. Tetapi pada saat yang sama, ia mengenali perintah byte tunggal paling sederhana yang ditujukan langsung kepadanya. Di sini x adalah nibble yang lebih rendah, perintahnya adalah nibble tertinggi:
0xA [x] - terapkan x menggigit ke pin 4 - 7 modul
0xB [x] - kirim bit paling tidak signifikan dari x menggigit ke input modul RS
0xC [x] - kirim bit paling tidak signifikan dari x menggigit ke input modul EN
0xD [x] - mengatur kecerahan cahaya latar (disesuaikan dengan PWM) secara proporsional dengan nibble x
Semua perangkat lunak yang diperlukan ada di
sini . Untuk menunjukkan bagaimana semuanya bekerja, penulis membuat skenario ini:

Dan diluncurkan: