Ya, multiplexing dan charlieplexing keduanya memiliki kelebihan, dan masing-masing paling cocok untuk tugas yang berbeda.
Keuntungan utama dari charlieplexing adalah dapat dilakukan pada mikrokontroler ukuran sedang, menggerakkan lebih banyak LED dengan pin I / O yang lebih sedikit, dan berpotensi tidak memiliki perangkat keras eksternal selain LED.
Sekarang, keuntungan dari "tidak ada perangkat keras eksternal" hanya berlaku untuk jumlah LED yang relatif kecil, hingga Anda mencapai batas saat ini dari mikrokontroler Anda, dan memaksakan batas kecerahan yang tidak dimiliki oleh array multiplexed. Jika Anda memilih untuk tidak menggunakan perangkat keras eksternal, Anda umumnya terbatas hanya mengendarai satu LED dalam matriks pada saat tertentu - tidak seperti array multiplex di mana Anda mengendarai baris penuh pada suatu waktu.
Setelah Anda menambahkan perangkat keras eksternal untuk mendorong LED dengan kecerahan lebih tinggi agar sesuai dengan array multiplexed, pencetakan charlieplex kehilangan kilauannya.
Pertama, array multiplexed ditangani secara ketat oleh baris dan kolom; sangat mudah untuk melakukan ini. Nyalakan baris 1, nyalakan semua kolom untuk baris 1, matikan baris 2, nyalakan semua kolom untuk baris 2, dan seterusnya. Sebaliknya, array charlieplexed jauh lebih mudah. Selalu ada baris diagonal yang tidak berguna, dan saya pribadi menggunakan tabel pencarian untuk menghubungkan antara array saya dan array persegi panjang tempat saya menyimpan data saya.
Kedua, dan seorang pembunuh, adalah bahwa charlieplexing umumnya memerlukan driver tri-state. Multiplexing, bagaimanapun, dilakukan dengan logika biner on-off yang ketat. Jika Anda memiliki mikrokontroler jumlah pin rendah dan ingin menggerakkan array besar LED, mudah untuk menggunakan chip logika eksternal (misalnya, register geser dan / atau driver LED) untuk mengontrol kedua sumbu X dan Y. Kebanyakan chip tipe register geser tidak mendukung tristating yang diperlukan untuk melakukan hal yang sama dalam array charlieplexed. Driver charlieplexed khusus tersedia, tetapi hampir tidak serbaguna.
Ketiga, dalam array charlieplexed, setiap pin yang tidak aktif melakukan sesuatu masih terhubung ke LED melalui koneksi lemah ("impedansi tinggi"). Dan sementara koneksi lemah, itu bukan nol. Misalkan Anda memiliki 25 pin I / O yang terhubung ke kisi-kisi LED. Jika Anda menyalakan satu LED - dengan mengambil salah satu dari 25 garis tinggi dan satu dari 25 garis rendah, itu menyisakan 23 jalur impedansi tinggi. Setiap tempat di mana garis I / O tinggi melewati LED ke garis netral, ada beberapa kemungkinan untuk membocorkan arus. Tidak banyak. Mungkin microamp di sini atau di sana. Tetapi dengan LED modern dan efisien, itu sering kali cukup untuk menciptakan ghosting yang terlihat.
Keempat, lebih sulit untuk mengontrol kecerahan LED dalam array charlieplexed. Dalam larik multipleks, Anda dapat menggunakan sejumlah chip driver LED "tenggelam" pengatur arus yang tersedia yang mengatur kecerahan setiap kolom secara terpisah, dengan menggunakan pengaturan saat ini dalam kombinasi dengan driver PWM. Sejauh lokasi matriks charlieplexed ditangani secara individual dan hanya menggunakan resistor per baris atau kolom, jauh lebih sulit untuk melakukan koreksi dot-brightness dan animasi skala abu-abu / warna penuh dalam array charlieplexed.