A. Pengantar
Display Panel P10 merupakan sebuah display berisi kumpulan led-led yang disusun secara matrix.
Fungsinya untuk menampilkan informasi berupa teks maupun gambar yang dapat diatur tampilannya
sesuai kebutuhan. Tentunya sudah sering kan melihat teks-teks berjalan di sepanjang jalan? Nah itu
merupakan salah satunya bisa menggunakan P10 LED Matrix ini.
B. Skenario
Bagaimana Cara Menggunakannya pada Arduino?
Sebenarnya cukup mudah dan simple, setelah anda mempunyai P10 selanjutnya hanya menambahkan
sebuah komponen yaitu DMD Connector. Konektor ini berfungsi untuk mengghubungkan P10 dan
Arduino, lebih lengkapnya kita bahas di bawah ini.
Komponen :
1. Arduino Uno;
2. P10 Led Matrix (32x16);
3. Kabel DMD;
4. Kabel USB tipe B (kabel printer);
5. Adaptor 5V 1A.
C. Langkah kerja
Skematik dan Perakitan
Susunlah komponen diatas seperti rangkaian berikut:
Pemasangan kabel DMD jangan sampai terbalik, silahkan lihat pada gambar di atas terdapat tanda
panah. Itu merupakan tanda dari kabel DMD dimaksudkan agar tidak terbalik. Lihatlah gambar berikut:
Program (sketch)
Setelah memahami Skematik dan sudah memasukan library yang dibutuhkan, langkah selanjutnya adalah
memasukkan program dibawah ini:
#include <SPI.h> //SPI.h must be included as DMD is written by SPI (the IDE complains otherwise)
#include <DMD.h> //
#include <TimerOne.h> //
#include "SystemFont5x7.h"
#include "Arial_black_16.h"
/*--------------------------------------------------------------------------------------
Interrupt handler for Timer1 (TimerOne) driven DMD refresh scanning, this gets
called at the period set in Timer1.initialize();
--------------------------------------------------------------------------------------*/
void ScanDMD()
{
dmd.scanDisplayBySPI();
}
/*--------------------------------------------------------------------------------------
setup
Called by the Arduino architecture before the main loop begins
--------------------------------------------------------------------------------------*/
void setup(void)
{
//initialize TimerOne's interrupt/CPU usage used to scan and refresh the display
Timer1.initialize( 5000 ); //period in microseconds to call ScanDMD. Anything longer than 5000 (5ms) and you can see
flicker.
Timer1.attachInterrupt( ScanDMD ); //attach the Timer1 interrupt to ScanDMD which goes to dmd.scanDisplayBySPI()
/*--------------------------------------------------------------------------------------
loop
Arduino architecture main loop
--------------------------------------------------------------------------------------*/
void loop(void)
{
byte b;
// 10 x 14 font clock, including demo of OR and NOR modes for pixels so that the flashing colon can be overlayed
dmd.clearScreen( true );
dmd.selectFont(Arial_Black_16);
dmd.drawChar( 0, 3, '2', GRAPHICS_NORMAL );
dmd.drawChar( 7, 3, '3', GRAPHICS_NORMAL );
dmd.drawChar( 17, 3, '4', GRAPHICS_NORMAL );
dmd.drawChar( 25, 3, '5', GRAPHICS_NORMAL );
dmd.drawChar( 15, 3, ':', GRAPHICS_OR ); // clock colon overlay on
delay( 1000 );
dmd.drawChar( 15, 3, ':', GRAPHICS_NOR ); // clock colon overlay off
delay( 1000 );
dmd.drawChar( 15, 3, ':', GRAPHICS_OR ); // clock colon overlay on
delay( 1000 );
dmd.drawChar( 15, 3, ':', GRAPHICS_NOR ); // clock colon overlay off
delay( 1000 );
dmd.drawChar( 15, 3, ':', GRAPHICS_OR ); // clock colon overlay on
delay( 1000 );
dmd.drawMarquee("Scrolling Text",14,(32*DISPLAYS_ACROSS)-1,0);
long start=millis();
long timer=start;
boolean ret=false;
while(!ret){
if ((timer+30) < millis()) {
ret=dmd.stepMarquee(-1,0);
timer=millis();
}
}
// half the pixels on
dmd.drawTestPattern( PATTERN_ALT_0 );
delay( 1000 );
// draw a circle
dmd.drawCircle( 16+ix, 8+iy, 5, GRAPHICS_NORMAL );
delay( 1000 );
// stripe chaser
for( b = 0 ; b < 20 ; b++ )
{
dmd.drawTestPattern( (b&1)+PATTERN_STRIPE_0 );
delay( 200 );
}
delay( 200 );
}
Program diatas didapat dari Arduino IDE, klik File > Examples > DMD > dmd_demo
Setelah berhasil terupload, makan panel display p10 akan menampilkan Animasi dan Running
Text seperti pada gambar berikut:
Jika kecerahan pada Panel Displaynya kurang karena hanya menggunakan power input dari Arduino,
anda bisa menambahkan Power Input 5 Volt DC yang bisa didapat dari adaptor Hp seperti berikut:
dmd.drawMarquee("Scrolling Text",14,(32*DISPLAYS_ACROSS)-1,0);
Ubahlah "Scrolling Text" diatas sesuai keinginan... atau silahkan ketik koding dibawah ini:
// File Library
#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include <Arial_Black_16_ISO_8859_1.h>
// Deklarasi Fungsi
#define DISPLAYS_ACROSS 1
#define DISPLAYS_DOWN 1
void ScanDMD()
{
dmd.scanDisplayBySPI();
}
void setup(){
// Setup DMD
delay(1000);
Serial.begin(9600);
Timer1.initialize( 1500 );
Timer1.attachInterrupt( ScanDMD );
dmd.clearScreen( true );
}
void DrawMHD(){
// Running Text
dmd.clearScreen( true );
dmd.selectFont(Arial_Black_16_ISO_8859_1);
dmd.drawMarquee("SMK Pelita Ciampea 2 - TJKT",27,(32*DISPLAYS_ACROSS)-1,0);
long start=millis();
long timer=start;
boolean ret=false;
while(!ret){
if ((timer+40) < millis()) {
ret=dmd.stepMarquee(-1,0);
timer=millis();
}
}
}
void loop(){
dmd.clearScreen(true);
DrawMHD();
dmd.clearScreen(true);
}
PENCAPAIAN KOMPETENSI
KOMPONEN/SUBKOMPONEN
NO. YA
PENILAIAN TIDAK
70-79 80-89 90-100
1 2 3 4 5 6
I PERSIAPAN KERJA
I.1 Hadir Tepat Waktu
I.2 Kerapihan
I.3 Kebersihan
SKOR KOMPONEN :
II PROSES (SISTEMATIKA DAN CARA KERJA)
II.1 Menentukan pemilihan alat dan
bahan
II.2 Melakukan perakitan dan koding
SKOR KOMPONEN :
III HASIL KERJA
III.1 Dapat menentukan pemilihan alat
dan bahan yang akan digunakan
III.2 Dapat merakit dan koding dengan
benar
SKOR KOMPONEN :
IV SIKAP KERJA
IV.1 Penggunaan Alat
SKOR KOMPONEN :
V WAKTU
V.1 Waktu Penyelesaian Praktik
SKOR KOMPONEN :
FASILITATOR : ____________________________
JURNAL PRAKTIKUM
Nama Siswa :
Kelas :
Hari / Tanggal :
Mata Pelajaran :
Materi Pokok :
Bogor,…………………….
Praktikan,