CARA MEMBUAT RUNING LED

Aplikasi Runing Led dalam penerapan kehidupan sehari-hari tentunya bisa dibilang hampir tidak ada, lalu apa manfaatnya artikel ini ditulis. artikel ini di tulis semata-mata hanya untuk menunjukan bagaimana Mikrokontroler bekerja, dari aplikasi yang paling sederhana kemudian meningkat ke aplikasi yang lebih komplek. contohnya Runing Text. Runing text memberi informasi yang jelas. misalnya menunjukan sebuah tempat Jalan, Masjid, atau yang lain.berbeda dengan Runing Led. apalah artinya Runing Led yang hanya berganti nyalanya. akan tetapi bangaimana mau bisa membuat aplikasi yang komplek kalau aplikasi yang sederhana saja tidak bisa.
melanjutkan latihan sebelumnya tentang mengedipkan led, kali ini latihan selanjutnya yaitu membuat nyala Led bergantian secara urut sampai Led paling ujung/tepi dan kembali ke Led yang pertama, demikian secara terus menerus. sehingga tampak seperti Led yang berjalan atau Runing Led.
masih ingat disesi sebelumnya tentang bagaimana sebuah Led di nyalakan dan dimatikan secara terus menerus dengan beberapa perintah yaitu "Set/Reset" dan "toggle" yang diletakan diantara Do........Loop (perulangan/Looping) dengan menambahkan perintah "Wait" untuk memberi selang waktu antara nyala dam mati. lalu bagaimana dengan Runing Led? algoritmanya seperti ini, nyalakan Led pertama dulu, sementara Led yang lainnya dibuat mati, beri tundaan sesaat "Wait",  kemudian nyalakan Led yang kedua sementara Led lain dibuat mati, demikian secara terus menerus. untuk memudahkan sebaiknya menggunakan PORTx yang di isi dengan data yang mewakili nyala Led. misalnya PORTD=&b01111111, perintah ini akan membuat Led pertama menyala dan lanya mati jika Led disusun Common Anoda (CA), sebaliknya jika Lednya Common Katoda maka Led pertama mati dan lainya akan menyala semua. jangan lupa ditambah "wait" untuk jeda pergantian antar Led.
ingat! tanda " ' " adalah menunjukan komentar program, bukan bagian dari program dan tidak akan ikut di kompilasi.
berikut bentuk dasar Programnya:
do
Portd=&b01111111 'nyalakan led pertama
wait 1
Portd=&b10111111 'nyalakan Led kedua
. 'dan seterusnya
. 'sampai
. 'Led yang terakhir
.
.
Loop
end


mudah bukan?
selain dengan cara diatas, untuk membuat Runing Led bisa memakai metode lain, yaitu menggunakan tabel yang kita simpan di ROM. untuk kemudian tabel kita baca menggunakan instruksi "Lookup". cara ini lebih efisien jika kita menangani jumlah Led yang banyak.untuk membuat tabel di ROM kita letakan diluar Do........Loop. meletakan tabelnya sebagai berikut
Do
Portd=lookup(led,dataled) 'nilai Portd akan sesuai dengan salah satu data di ROM
'tergantung dari nilai variable Led, jika variabel Led
' bernilai 2 misalnya maka Portd=&b11011111
incr led 'nilai variabel Led harus dinaikan 1 untuk menunjuk ke 'tabel berikutnya
if led=8 then 'dan jika nilai Led=8 kembalikan lagi ke nilai 0
led=0 'untuk mengulang dari awal lagi
end if
wait 1 'jeda pergantian nyala Led
Loop
'buat tabel dibawah ini
dataled:
data &b01111111 'jika led=0
data &b10111111 'jika led=1
data &b11011111 'jika led=2
data &b11101111 'jika led=3
data &b11110111 'jika led=4
data   &b11111011 'jika led=5
data &b11111101 'jika led=6
data &b11111110 'jika led=7
end
dengan cara yang kedua ini kita bisa membuat tabel animasi Led yang lebih menarik, kalau memakai cara pertama tentunya tidak akan effisien.
masih adakah cara yang lain untuk membuat Runing Led???     tentunya ada.
instruksi "Rotate" akan memutar isi suatu variabel, misalnya variabel bernilai 01111111 maka akan diputar kekanan atau kekiri tergantung perintah setelah rotate
Rotate led,right,1 'akan memutar isi variabel ke kanan satu langkah
Rotate led,left,2 'akan memutar isi variabel kekiri dua langkah
berikut kode lengkapnya
config Portd=output 'buat Portd sebagai output
dim led as byte 'membuat variabel Led di RAM (Declarasi Variable)
led=&b01111111 'beri nilai variabel Led
do
Portd=led
rotate Led,right,1
wait 1
loop
end
ini adalah cara yang paling sederhana, perhatikan kode dan banfingkan dengan kode lain. akan tetapi dalam sebuah kasus2 tertentu kita tidak mungkin mengguanakan cara ini. misalnya untuk mengirim data ke seven segmen.
masihkah ada yang lain? ya pastinya ada.:) tapi capek ngetiknya
coba perhatikan kode berikut
reset portd.0
set portd.1
set portd.2
set portd.3
set portd.4
set portd.5
set portd.6
set portd.7
wait 1 'tunggu 1 detik
set portd.0
reset portd.1
set portd.2
set portd.3
set portd.4
set portd.5
set portd.6
set portd.7
wait 1 'tunggu 1 detik
set portd.0
set portd.1
reset portd.2
set portd.3
set portd.4
set portd.5
set portd.6
set portd.7
wait 1 'tunggu 1 detik
capekdeh..................! itu baru sampai led yang ke tiga, bagaimana mau sampai Led ke delapan, apalagi untuk animasi. hasilnya sama-sama membuat Led nyala bergantian tapi caranya sangat berbeda.
jadi bisa diambil kesimpulan bahwa untuk membuat sebuah Led menyala bergantian ataupun membuat animasi Led bisa menggunakan beberapa metode. tentunya dipilih metode yang sesuai dengan aplikasi yang sedang di buat.
instruksi "wait", misalnya wait 1 sebenarnya tidaklah tepat 1 detik, untuk aplikasi yang kritis dimana pewaktuan menjadi tujuan utama maka sudah tidak tepat lagi jika kita menggunakan "wait". untuk penggunaan timing yang akurat bisa memakai TImer yang telah disediakan mikrokontroler.
bagaimana menggunakan timer? klik membuat timer 1 detik
ikuti materi selanjutnya yaitu tentang bagaimana menyalakan atau mengirim data ke seven segmen. setelah menguasai seven segmen bisa diharapkan membuat Jam Digital, AVO meter atau apapun yang menggunakan seveb segmen. tentunya diikuti dengan penguasaan materi yang lain yang berhubungan. misalnya Jam, jam membutuhkan RTC (Real Time Clock) yang berarti kita juga harus menguasai bagaimana mengakses RTC ini.



Artikel Terkait

CARA MEMBUAT RUNING LED
4/ 5