Testimonials ( 32 )
(5,0/5)

Review By Sigit Yatmono,
Sigit Yatmono
Toko terpercaya utk belanja komponen dan part robotika
22-07-2024
Verified Purchase
Review By Ade,
Ade
pelayanan ramah
21-02-2024
Verified Purchase
Review By azkal,
azkal
masnya ramah sekali
21-02-2024
Verified Purchase

Produk baru

Berita DigiWare

Mengendalikan Moving Sign dengan DT-AVR Uno R3

Dot matrix display (DMD) yang sering disebut moving sign atau running text banyak dipakai untuk berbagai keperluan sebagai media informasi, periklanan hingga hiburan. Banyak sekali varian dari DMD yang bisa dibedakan dari jarak pitch antar titik, kompatibilitas warna dan area penggunaannya. Pada dasarnya panel DMD dan panel layar LCD/LED memiliki mekanisme yang identik. Panel DMD terdiri dari rangkaian LED yang dirangkai menurut kolom dan baris. Dikarenakan banyaknya LED yang terpasang pada panel DMD, maka pengendalian tiap LED dibantu dengan rangkaian IC yang pada umumnya adalah shift register dan address selector dengan tujuan untuk menyederhanakan pengendalian tiap LED nya. Dengan bantuan rangkaian shift register dan address selector ini maka pengendalian tiap LED harus dilakukan secara bergantian satu per satu. Walaupun LED dinyalakan satu per satu namun hal tersebut dilakukan secara cepat oleh perangkat kendali sehingga mata kita melihatnya seolah-olah LED menyala secara bersamaan. Detil mengenai teori dan mekanisme dasar mengenai shift register dan address selector sebagai kendali LED pada panel DMD tidak akan di ekspos dalam application note ini, silakan untuk membaca artikel mengenai materi tersebut untuk informasi lebih lanjut.

Banyak sekali DMD siap pakai dan sudah terprogram yang dijual dipasaran, namun dalam aplikasi ini kita akan mempelajari bagaimana mengkoneksikan panel DMD dengan Arduino sebagai kendalinya dan memprogramnya agar kita bisa berkreasi membuat animasi sendiri. Berikut adalah alat dan bahan yang diperlukan untuk aplikasi kita kali ini:



Dari beberapa bahan-bahan yang dibutuhkan diatas, terdapat komponen-komponen utama yang bisa siswa pelajari spesifikasinya untuk menambah wawasan siswa, antara lain:

1. DT-AVR Uno R3

Modul mikrokontroler yang kompatibel dengan Arduino Uno dengan spesifikasi:

  • Berbasis ATmega328.
  • Frekuensi kerja 16 MHz.
  • Kecepatan proses sampai 16 MIPS (Million instructions per seconds).
  • Memory flash 32 KB (0,5 KB untuk bootloader), EEPROM 1K Byte, SRAM 2K Byte.
  • Memiliki 23 jalur I/O (termasuk 6 kanal jalur ADC 10-bit).
  • Memiliki port micro USB untuk jalur komunikasi data, pengisian kode program, ataupun jalur sumber catu daya.
  • Menggunakan crystal eksternal 16 MHz.
  • Memiliki antarmuka SPI, UART TTL, I2C dan USB.
  • Tersedia regulator tegangan internal 3,3 VDC (arus maks. 300 mA) dan 5 VDC (arus maks. 800 mA).
  • Memerlukan catu daya eksternal 7 - 12 VDC atau catu daya dari kabel USB yang terhubung ke komputer.



2. DT-I/O I2C Peripheral

DT-I/O I2C Peripheral merupakan modul rangkaian dengan antarmuka serial I2C yang terdiri dari optional 8-bit Analog-to-Digital & Digital-to-Analog Converter (ADDA), serial EEPROM, dan Real-Time Clock (RTC) DS1307. Modul ini dapat difungsikan sebagai input dan output dalam aplikasi seperti pengukur suhu, kendali kecepatan motor, absensi, datalogger, tampilan waktu, robotik, dan sebagainya. Dalam aplikasi, modul ini dapat berfungsi memberikan data waktu nyata yang merupakan keluaran dari RTC sehingga moving sign dapat menampilkan waktu, hari, tanggal, bulan dan tahun. Ditambah dengan serial EEPROM chip yang disediakan built-in di modul bisa kita manfaatkan sebagai media penyimpanan data eksternal berupa animasi, teks dan sebagainya. Sehingga moving sign dapat menampilkan variasi tampilan yang lebih banyak.

Spesifikasi :

  • 8-bit ADDA PCF8591 dengan pin alamat '000' (optional):
    • Input ADC 4 channel, dapat diprogram sebagai single ended atau differential input.
    • Output DAC 1 channel.
    • Waktu konversi maksimum ADC dan DAC = 90 us.
    • Error linieritas ADC dan DAC maksimum = 1,5 LSB.
    • Tegangan referensi VREF = 2,5 Volt (menggunakan LM336-2.5V).
    • Range input analog: 0 - 2,5 Volt (single ended input), -1,25 - +1,25 Volt (differential input).
    • Range output analog 0 - 2,5 Volt.
    • Tersedia 1 pin output dari internal osilator.
  • RTC:
    • Menghitung detik, menit, jam, tanggal, bulan, hari, dan tahun dalam format Binary-coded Decimal (BCD).
    • Terdapat kompensasi untuk tahun kabisat dan bulan dengan jumlah hari kurang dari 31, valid sampai dengan tahun 2100.
    • Terdapat 2 mode: 12 jam (AM/PM) dan 24 jam.
    • 56 byte Nonvolatile SRAM.
    • Baterai backup 3 VDC Lithium.
    • 1 pin output gelombang kotak dengan frekuensi dapat diprogram (1 Hz, 4 kHz, 8 kHz, atau 32 kHz).
  • Serial EEPROM:
    • 1 buah AT24C01A (dengan kapasitas 1 Kbit) dengan pin alamat '000'.
    • Tersedia 2 socket 8-pin DIP untuk AT24Cxxx, dengan pin alamat '001' dan '011'.
    • Antarmuka serial I2C, hanya memerlukan 2 jalur kabel yaitu data dan clock.
    • Catu daya 5 VDC.



3. Panel Dot Matrix Display P10 Single Color

Panel DMD yang umum di jual dipasaran yang memiliki pitch atau jarak antar titik tengah LED sebesar 10mm. Panel ini memiliki resolusi 16 baris x 32 kolom LED. Panel ini dapat dirangkai baik secara horizontal maupun vertikal agar bisa membentuk ukuran tampilan yang lebih besar. Pada kit A-UDIK telah disediakan 2 buah panel DMD P10 outdoor warna tunggal merah. Panel ini tersusun dari LED jenis defused berbentuk oval untuk memaksimalkan sudut penghilatan untuk penggunaan outdoor. Panel ini memerlukan catudaya 5 VDC dalam pengoperasiannya dan mengkonsumsi arus maksimal 3 Ampere.

Item ini tersedia di DigiWare dengan referensi kode produk 721-133, silakan menghubungi kami untuk informasi lebih lanjut



Pertama-tama, mari kita tengok fungsi pin to pin antarmuka dari modul DMD P10:

Gambar 4. Pinout soket input link pada papan PCB modul DMD P10 (kiri) dan petunjuk penandaan pada kabel pita konektornya (kanan).



Merangkai panel DMD P10 untuk membentuk display yang lebih besar adalah hal yang mudah, kita hanya perlu menyambungkan soket output link dari modul satu ke soket input link modul lainnya secara seri. Dalam aplikasi kita kali ini disediakan dua buah modul DMD P10 yang akan kita susun secara horizontal, sehinga ilustrasi penyusunan modul adalah sebagai berikut:

Gambar 5. Merangkai dua buah panel DMD P10 secara horizontal



Jika berencana merangkai panel DMD dengan jumlah banyak, dianjurkan untuk merangkainya dengan susunan sebagai berikut:

Gambar 6. Rangkaian koneksi ular kabel link panel DMD



Berikut adalah foto tampak belakang dari panel yang telah disusun secara horizontal:

Gambar 7. Dua buah panel DMD P10 setelah dirangkai



Hubungkan DT-AVR Uno R3 dengan Panel DMD P10 dan DT-I/O I2C Peripheral menggunakan kabel jumper secukupnya dengan hubungan sebagai berikut:

DT-AVR Uno R3Panel DMD P10
(Input Link Socket)
DT-I/O I2C Peripheral
5V (J4)-+5VDC (J1)
GND (J4)GNDGND (J1)
Pin 6 (J2)A-
Pin 7 (J2)B-
Pin 8 (J2)SCLK-
Pin 9 (J1)OE-
Pin 11 (J1)R-
Pin 13 (J1)CLK-
SDA (J1)-SDA (J4)
SCL (J1)-SCL (J4)

Tabel 1. Hubungan DT-AVR Uno R3 dengan Panel DMD P10 (Input Link Socket), dan DT-I/O I2C Peripheral



Tabel koneksi antar pin diatas dapat diilustrasikan di Gambar 8 sebagai berikut:

Gambar 8. Blok Diagram Aplikasi



Aplikasi kali ini bertujuan memberikan pengetahuan dasar mengenai penyusunan panel DMD dan bagaimana cara memprogram & mengendalikannya menggunakan DT-AVR Uno R3 dengan disediakannya library dan contoh program. Demostrasi penyusunan panel DMD dalam apllikasi ini disusun secara horizontal, adapun penyusunan panel DMD dapat dilakukan dengan bebas dan disesuaikan sesuai kebutuhan baik horizontal maupun vertikal. Untuk mencoba aplikasi ini, berikut adalah tahapan-tahapan yang perlu dilakukan:

  1. Hubungkanlah berbagai komponen yang dibutuhkan sesuai dengan Tabel 1 dan Gambar 3.
  2. Hubungkanlah kabel schoen (skun) catu daya panel ke power supply adaptor. Pastikan adaptor mempunyai tegangan (5 VDC) dan arus yang sesuai. Tegangan dan arus dibawah rekomendasi akan mengakibatkan intensitas cahaya LED kurang maksimal.
  3. Hubungkan kabel DT-AVR Uno R3 ke komputer menggunakan kabel micro USB.
  4. Install Arduino IDE dengan destinasi pemasangan di direkori C:
  5. Tambahkan library DMD, digitalWriteFast, TimerOne, Time dan DS1307RTC dengan mengekstrak keseluruhan folder didalam berkas Kit A-UDIK LED Message Display P10 Outdoor.zip ke folder library “C:∖Arduino∖libraries“.
  6. Jalankan program Arduino IDE.
  7. Atur board yang akan digunakan dengan memilih Tools – Board – Arduino Uno.
  8. Atur port serial yang akan digunakan pada Tools – Port – COMx (COMx disesuaikan dengan port serial DT-AVR Uno R3 yang muncul pada device manager).
  9. Buka salah satu contoh program yang disediakan dengan melakukan navigasi di menu File – Examples – DMD . Lalu lakukan perintah upload sketch dengan menekan tombol (Jika terjadi kendala saat proses upload, coba lakukan troubleshooting dengan bantuan yang merujuk pada laman https://www.arduino.cc/en/guide/troubleshooting).
  10. Cobalah mencoba berbagai contoh yang disediakan dan berkreasi dengan mengubah dan memodifikasi program.

Gambar 9. Menjalankan Program Contoh. Dari kiri ke kanan: teks berjalan, tampilan jam, tampilan kalender, demo jenis font, animasi bergerak.



Source code sketsa Arduino memiliki struktur dasar sebagai berikut, listing dibawah ini bisa dijadikan sebagai template untuk membuat program baru:

#include         /* SPI.h harus kita sertakan, karena library memanfaatkan waveform dari peripheral SPI untuk mengendalikan DMD */
#include         /* Library DMD yang menyediakan fungsi penampilan teks, gambar dsb */
#include    /* Library peripheral Timer1 untuk menjalankan prosedur pindai panel DMD secara periodik */
// Library yang memuat data font/huruf untuk penampilan teks pada DMD, tambahkan font yang diinginkan disini
#include "Arial_black_16.h"
#include "SystemFont5x7.h"
#include "Arial14.h"

//Isi dengan jumlah panel DMD yang di susun dalam kolom dan baris
#define DISPLAY_COLUMN_COUNT  2
#define DISPLAY_ROW_COUNT     1

//Isi dengan jumlah piksel per kolom dan baris dalam satu modul panel DMD
#define PIXELS_PER_COLUMN	32
#define PIXELS_PER_ROW		16
DMD dmd(DISPLAY_COLUMN_COUNT, DISPLAY_ROW_COUNT);

/*--------------------------------------------------------------------------------------
	Prosedur interupsi untuk memindai/menggambar panel DMD
  --------------------------------------------------------------------------------------*/
void ScanDMD()
{
  dmd.scanDisplayBySPI();
}

void setup(void)
{
  // Inisialisai Timer1 
  
  // Atur Perioda Timer1 sebesar 2000us (2ms), dapat diisi dengan rekomendasi minimal 500us (0.5ms).
  // nilai yang lebih besar dari 5000us dapat menimbulkan efek flickering.
  Timer1.initialize( 2000 ); 
  // Atur prosedur interupsi pindai DMD untuk bisa di jalankan secara periodik
  Timer1.attachInterrupt( ScanDMD ); 

  // Bersihkan & inisialisasi semua frame buffer DMD pada RAM
  // Normalnya true (semua piksel dalam keadaan mati), false (semua piksel dalam keadaan hidup)
  dmd.clearScreen( true );  
}
void loop(void)
{
	// Isilah dengan pemanggilan fungsi menggambar, tulis teks dan sebagainya sesuai kebutuhan
	// tampilan DMD yang diinginkan 
}





Selamat berinovasi!

All trademarks, company names, product names and trade names are the property of their respective owners.
All softwares are copyright by their respective creators and/or software publishers.