Display (Seven-Segment, Dot Matrix)
1. Hardware yang diperlukan
Untuk menampilkan data dalam tampilan 7 segment, hardware yang diperlukan adalah seperti terlihat pada gambar di bawah ini
Untuk menampilkan data dalam tampilan led dot-matrix, hardware yang diperlukan adalah
atau untuk menampilkan lebih banyak digit, bisa menggunakan hardware seperti di bawah ini.
2. Konfigurasi SPI
SPI adalah salah satu jalur komunikasi serial antara master dan slave yang dilakukan secara singkron yang artinya clock data dikendalikan oleh master. Berikut adalah konfigurasi umum untuk komunikasi SPI
Setiap slave dikendalikan oleh satu pin kontrol dari master. Pin ini digunakan untuk memilih slave mana yang ingin diajak berkomunikasi. Hal ini menjadikan konfigurasi SPI membutuhkan banyak kabel jika diinginkan banyak jalur komunikasi. Namun salve-slave ini juga bisa dipasang secara serial atau berantai (daisy-chain / cascade ) untuk menghemat jumlah pin kontrol. Konfigurasi berantai ini ada kelemahan dan keunggulannya yang tidak dibahas pada tulisan ini. Berikut adalah gambar konfigurasi SPI dengan slave dipasang berantai (dasiy-chain)
Walupun banyak salve dipasang secara berantai, jalur komunikasinya tetap 1 dan hanya membutuhkan 1 pin kontrol saja. Tulisan ini hanya membahas komunikasi antara Outseal PLC dengan IC MAX7219 yakni sebuah IC driver untuk led yang komunikasi datanya adalah SPI satu arah. Komunikasi satu arah yang dimagsud adalah outseal PLC hanya mengirim data saja tanpa pernah membaca data. Oleh sebab itu hanya pin MOSI pada outseal PLC saja yang dipakai dan pin MISO dibiarkan tidak terpakai seperti pada gambar berikut
Perangkat display dot-matrix max7219 multi-digit yang ada di pasaran umumnya sudah dalam rangkaian slave berantai dan terhubung dalam satu PCB. Berikut ini adalah gambar konfigurasi kabel untuk menghubungkan outseal PLC pada perangkat SPI dengan slave berantai
Pada mode slave berantai ini, pin MISO pada suatu slave disambungkan kembali pada MOSI slave urutan selanjutnya. Pada perangkat dot-matrix max7219 yang ada di pasaran, pin MOSI diberi label DIN (Data IN) dan MOSI menjadi DOUT (Data Out). Secara umum jumlah slave pada mode ini tidak dibatasi namun pada program outseal studio, jumlah salve yang disusun secara berantai ini dibatasi hingga berjumlah 8 saja (N cascade max = 8)
3. Pengkabelan (Wiring diagram)
Outseal PLC yang mendukung komunikasi SPI adalah jenis Mega saja, baik yang Mega Full Fitur, Mega Compact dan Mega Slim. Pin-pin yang digunakan adalah +5V(VCC), GND, MOSI, SCK dan Pin kontrol.
Pin kontrol yang digunakan bisa di pilih dari R.1 hingga R.16, namun penggunaan pin R ini bisa mengurangi jumlah digital out yang seharusnya digunakan untuk relay. Oleh sebab itulah outseal PLC mega V.1 diperbaharui menjadi V.2 dengan penambahan pin-pin extra. Pin-pin tersebut adalah B.1 hingga B.4 yang mempunyai fisik I/O khusus untuk keperluan komunikasi SPI. Pin fisik B.1 hingga B.4 ini tidak bisa digunakan untuk keperluan digital IO dan hanya akan aktif untuk keperluan komunikasi SPI saja. Penggunaan pin R.1~R.16 pun juga memerlukan sebuah resistor pull-up sedangkan jika menggunakan pin B.1~B.4 tidak diperlukan resistor pull-up seperti terlihat pada gambar berikut.
Berikut adalah contoh pengkabelan satu modul display Max7219 seven segment dengan outseal PLC. Jenis PLC yang digunakan adalah outseal PLC mega slim. Modul display mendapatkan daya dari pin +5V dan ground dari PLC dan pin kontrol yang dipakai adalah pin B.1.
Jika untuk penggunaan 2 modul display dengan mode normal (bukan berantai) maka diperlukan 2 pin kontrol seperti pada gambar berikut.
Pada outseal PLC mega slim, pin kontrol B.2 berada pada konektor yang berbeda dari B.1. Pin DIN pada kedua modul disambungkan pada pin MOSI pada PLC begitu pula untuk pin CLK. Pin CLK pada modul 1 dan modul 2 disambungkan pada pin yang sama yakni SCK dari PLC. Hanya pin CS pada modul yang disambungkan pada pin kontrol yang berbeda pada PLC. modul 1 disambungkan ke B.1 dan modul 2 disambungkan ke B.2. Apabila PLC disambungkan lebih dari 2 modul maka diperlukan tambahan pin kontrol yang lain namun cara penyambungannya tetap sama.
Untuk menghubungkan modul display max7219 dot-matrix, konfigurasi pin nya juga sama karena pin-pin data pada modul dot-matrix ini sama persis dengan modul seven segment.
Begitu pula apabila modul yang disambungkan adalah modul dot-matrik yang tersambung secara berantai. Pada dasarnya modul-modul yang tersambung secara berantai ini bisa disamakan dengan 1 modul saja dan konfigurasi pin datanya pun sama dengan modul yang bukan berantai. Berikut adalah contoh penggunaan dua jalur SPI dengan jalur pertama (pin kontrol B.1) adalah modul yang tidak berantai dan jalur kedua (pin kontrol B.2) adalah untuk modul yang slave-nya berantai.
Walaupun pada jalur kedua adalah berjenis slave berantai, namun secara pengkabelan tidak ada perbedaan dengan yang bukan jenis berantai. Apakah kedua jalur tersebut bisa disambungkan dengan slave jenis berantai? jawabnya adalah bisa. Seperti terlihat pada gambar berikut, kedua jalurnya sama-sama tersambung dengan modul jenis slave berantai
Jumlah slave berantai yang umum dipasaran untuk max7219 adalah berjumlah 4 salve dan apabila kedua modul tersebut disambungkan secara seri / berantai maka akan dihasilkan satu modul baru dengan jumlah salve berjumlah 8 terhubung secara berantai seperti pada gambar
Modul 8 slave berantai ini pun dapat dipasang lebih dari 1 pada jalur yang berbeda pada PLC.
4. Setting IC MAX7219
Setiap IC max7219 harus di-setting terlebih dahulu agar bisa digunakan dan umumnya dilakukan saat PLC startup. Setting tersebut meliputi internal decode yang digunakan dan kecerahan led. Apabila modul yang digunakan adalah jenis slave berantai yang mana terdapat lebih dari satu IC max7219 dalam satu jalur, maka setiap IC dalam rantai itu pun harus disetting satu persatu. Seting IC max7219 ini dapat dilakukan pada program outseal studio melalui instruksi SETMAX7219.
Bit pemilih slave : Bit control, sebagai pemilih jalur yang akan digunakan
Speed : Adalah kecepatan komunikasi data dalam satuan MHz, semakin lambat semakin stabil atau tahan terhadap gangguan terutama untuk kabel yang lebih dari 30cm.
Decode-Mode: adalah pilihan decode untuk led array (gunakan 0 untuk seven segment, 1 untuk dot-matrix)
Kecerahan: Tingkat kecerahan led yang diinginkan
N Cascade : Jumlah IC max7219 dalam 1 jalur komunikasi (1 pin kontrol), untuk mode slave berantai maka nilai ini harus diisi dengan lebih dari 1
berikut adalah contoh setting untuk dua jalur SPI dengan jalur B.1 untuk 1 modul seven segment dan jalur B.2 terhubung dengan modul dot matrix dengan 4 IC max7219 berantai.
Pada jalur B.2 ini, Setting dilakukan dalam mode berantai sehingga seluruh IC (ke empat-empatnya) akan mempunyai setting yang sama. Penggunaan instruksi OSR pada awal tangga ini bermagsud agar instruksi SETMAX7219 ini hanya dijalankan satu kali saja tepat pada saat PLC pertama kali dihidupkan/reset (startup). Namun, masalah bisa terjadi apabila ditengah-tengah operasi PLC tiba-tiba kabel power dari modul display ini telepas sehingga display mati. Pada saat kabel power modul ini ditancapkan kembali, setingan dari modul akan kembali ke setingan standad karena IC max7219 ini tidak bisa menyimpan parameter setting sehingga display menjadi error. Kesalahan ini dapat diatasi jika instruksi SETMAX7219 ini dijalankan kembali dengan cara restart PLC (bukan solusi yang tepat). Instruksi OSR ini pun tidak boleh dihilangkan karena jika dihilangkan justru akan menyebabkan instruksi SETMAX7219 ini dieksekusi secara terus-menerus secara cepat yang mengakibatkan kesalahan operasi pada modul dan menghambat cycle time dari PLC. Oleh sebab itu diperlukan sebuah trik khusus seperti terlihat pada gambar di bawah ini
Sesuai dengan gambar diatas, setiap kali PLC reset/startup, maka instruksi SETMAX7219 ini akan dijalankan satu kali saja, namun trik ini memungkinkan instruksi ini masih bisa dijalankan lagi yakni saat S.1 dipencet karena berada pada percabangan dengan tambahan OSR. Ladder di atas adalah solusi yang dibutuhkan terutama saat terjadi error pada display yang membutuhkan setting ulang seperti saat error akibat kehilangan daya, namun trik ini mengorbankan satu jalur input sebagai tombol reset display.
5. Contoh program
Berikut adalah contoh program sederhana untuk menampilkan data konstanta menuju ke modul seven segment. PLC yang digunakan adalah outseal PLC mega slim dan dihubungkan seperti pada gambar berikut
Kemudian dibuat sebuah program sederhana sebagai berikut
Karena menggunakan seven segment display, maka IC MAX7219 harus disetting untuk mengaktifkan decode seven segment internal, oleh sebab itu kolom Decode-Mode pada instruksi SETMAX7219 harus diisi dengan nilai 0. Jumlah IC MAX7219 pada modul ini adalah 1 sehingga N Cascade harus diisi dengan nilai 1. Speed dipilih paling lambat untuk kestabilan data. Hasilnya dapat dilihat pada gambar berikut
Contoh selanjutnya adalah program untuk menampilkan nilai angka pada display dot-matrix 1 digit. Ladder diagram dicontohkan pada gambar berikut.
Decode mode harus diisi dengan nilai 1 karena digunakan untuk dot-matrix yang tidak membutuhkan decode internal. Jumlah IC Max7219 pada modul dot-matrix 8x8 ini adalah 1 sehingga N Cascade pun harus diisi dengan nilai 1. Hasil dari ladder diatas dapat dilihat sebagai berikut. Konstanta 7 ditampilkan dalam modul dot-matrik 1 digit.
Contoh selanjutnya adalah contoh menampilkan multi digit angka pada modul dot matrix. Modul yang dipakai adalah dot-matrix 8x8 yang berjumlah 4 dan disusun secara berantai. Modul ini banyak didapati di pasaran dengan paket yang memang sudah dalam rangkaian berantai 4 modul 8x8 yang disambung satu PCB.
Modul yang dipakai adalah susunan berantai 4 modul 8x8 (4x8x8) sehingga jumlah IC MAX7219 nya pun ada 4 dan tersusun secara berantai. Oleh sebab itu N Cascade pun harus diisi sesuai dengan hardware yakni berjumlah 4. Pada mode berantai ini, hal yang perlu diperhatikan adalah masalah power supply. Semakin banyak led yang digunakan maka konsumsi dayanya pun semakin banyak sehingga mengandalkan daya dari USB saja tidak akan cukup untuk modul dot-matrix 4x8x8 ini. Oleh sebab itu diperlukan power supply external yang mencukupi pada PLC. Power supply 24V 2A sudah mencukupi untuk kasus ini. Berikut adalah hasil dari ladder di atas. Dapat dilihat pada foto ada kabel external power supply yang berwarna kuning dan biru terhubung ke PLC untuk menjamin kecukupan daya bagi modul.
Contoh selanjutnya adalah ladder untuk menampilkan 7 digit lebih angka pada dot-matrik. Dalam kasus ini diperlukan 2 buah modul dot-matrix 4x8x8 dan dihubungkan sendiri menggunakan kabel agar menjadi berantai 8x8x8. Pada kasus ini led yang digunakan juga semakin banyak sehingga external power supply mutlak dibutuhkan dan bila tidak (power dari USB saja), maka PLC akan restart sendiri atau terjadi gagal kirim ladder dari PC ke PLC.
Karena susunan rantai dot-matrix ada 8, maka data N cascade pun harus diisi 8. Dalam contoh ini, konstanta 1234567 dikirim melalui instruksi DOTNUM7219 dan hasilnya dapat dilihat pada gambar dibawah ini.
Selain angka, Text atau string pun bisa ditampilkan ke dotmatrix melalui instruksi DOTSTRING7219 namun karakternya dibatasi hanya 8 karakter saja. Berikut adalah contoh menampilkan data string ke modul dotmatrix
Hasilnya dapat dilihat pada gambar berikut
Data yang ditampilkan tidak harus dari konstanta saja. Data bisa diambil dari variabel I (16bit) dan variabel L (32bit) seprti pada contoh berikut
Data akumulasi timer pada instruksi SPWM disalin ke variabel I pada tangga nomor 2 dan ditampilkan terus menerus ke modul dot-matrix pada tangga nomor 3 sehingga tampilan dot-matrik akan berubah-ubah mengikuti perubahan nilai dari timer.