Mendesain Display Dot Matrix

Ini adalah sebuah perjuangan bagi saya saat ada seseorang yang minta didesainkan display dot matrix. Tidak seperti LCD display dan 7-segment, display dot matrix ini ruwet karena kita harus mengendalikan 64 LED (8×8) untuk 1 panel. Padahal yang diminta 10 panel. (*garuk-garuk kepala*)

Sebenarnya ada modul dot matrix 32×8 atau 40×8 yang sudah jadi yang menggunakan komunikasi serial dengan microcontroller, tapi saya belum menemukan yang jual di sini. Kalau pun mau beli dari luar pasti butuh waktu lama untuk pengiriman, padahal saya sudah gregetan. Alhasil saya pun berusaha mendesainnya sendiri dengan bekal 5 buah panel dot matrix untuk membentuk panel 40×8.

2 panel telah bekerja
2 panel telah bekerja

Berbekal pengetahuan yang pas-pasan, saya mencoba mendesain sendiri dengan mengacu datasheet. Saya mengandalkan shift register 74HC595 untuk men-drive row dan kolom panel dot matrix. Pengkabelan sangat ruwet. Persediaan kabel saya habis saat menghubungkan 3 panel dot matrix. Sudah tidak bisa lagi mengkabelkan 2 panel yang tersisa.

3 buah panel telah bekerja dan kabel pun habis
3 buah panel telah bekerja dan kabel pun habis

Saya pun mencoba mengoptimalkan software untuk menampilkan test scanning, blink test, text statis, scroll text (kanan ke kiri) dan karakter custom. Semuanya berhasil setelah ngoprek 3 malam. Semua kesulitan berhasil diatasi. Hanya saja, saya tahu banyaknya kekurangan dari desain saya ini, hiks…

Berikut ini adalah kekurangan desain saya:

  1. Column Scanning
  2. Saya menggunakan column scanning yang bagi saya mudah. Teknik ini akan bagus jika panjang panel sedikit. Begitu panel ditambah supaya display lebih panjang, maka column scanning menjadi lambat dibanding row scanning. Jika panel dot matrix 40×8, maka column scanning harus men-scan sebanyak 40 kali. Sedangkan row scanning cuma 8 kali.

    Kelemahan row scanning adalah dalam merekonstruksi pesan yang akan ditampilkan karena harus ada operasi array atau bitwise yang lebih rumit. Jadi harus lebih jeli di pemrograman. Terus terang pemilihan teknik column atau row scanning itu sangat sulit. Mau gampang tapi lambat atau sulit tapi cepat? Nah loh…

  3. Shift Register untuk scanning
  4. Ini kesalahan saya tepatnya, karena saya menggunakan teknis scanning menggunakan shift register. Mestinya saya cukup menggunakan Johnson Counter, misalnya dengan CD4017. Penggunaan shift register ini menjadikan desain tidak efisien, baik secara hardware mau pun software.

    Terus terang saya ribet banget saat membuat scanner dengan shift register, apalagi ketika menghubungkan 3 chip 74HC595 secara cascade. Anehnya chip ke-3 yang di-cascade jadi berubah pin clock dan latch, jadi harus disilang. Chip ke-3 ini sudah saya ganti dengan stok yg lain tapi tetap harus disilang. Aneh…

  5. Sourcing atau Sinking Current
  6. Ini menyalahi prinsip desain elektronika yang baik, karena saya tidak memperhitungkan arus yang harus diberikan atau dibenam oleh shift register. Dengan penyalaan 8 buah LED sekali siklus tentu sudah cukup besar arus yang harus dialirkan atau dibenam. Tetapi ketika saya abaikan, ternyata sirkuit masih berjalan dengan baik. Hanya saja saya tahu bahwa ini bukan desain yang baik.

    Terbukti nyala LED menjadi lebih redup saat 3 panel terhubung. Berarti saya harus memperhitungkan sourcing current. Syukurlah IC tidak jebol. Atau mungkin belum? Hehehe…

Menggunakan font 5x7 yg hemat
Menggunakan font 5×7 yg hemat

Baiklah, saya akan perbaiki desainnya. Kalau pun di foto nampak bekerja dengan baik, itu masih banyak kelemahannya. Rupanya saya harus belajar banyak banget. Dan tentu saja harus beli beberapa komponen tambahan, termasuk kabeeeel…