Setelah kita belajar memprogram running LED menggunakan mikrokontroler ATMega dengan baik dari kanan atau dari kiri, sekarang kita ditantang untuk membuat program running led dari luar ke dalam. Led di kedua ujung akan menyala pertama kali, kemudian nyala led seolah-olah bergerak ke tengah, setelah keduanya bertemu ditengah, nyala LED akan kembali dari ujung dan bergerak lagi ke tengah.
Agak lebih rumit dibanding pembuatan program running led biasa. Karena bisa disebut ini merupakan program double running led. Pada program inner running led ini, kita membutuhkan setidaknya 3 variabel (bisa menggunakan variabel global maupun lokal) yaitu geser, gkanan, dan gkiri.
Variabel gkanan, digunakan untuk mengatur nyala 4 buah led paling atas (PORTA.5-PORTA8) sementara variable gkiri digunakan untuk mengatur 4 led sisanya dimana kedua variable ini akan menggunakan shift register sampai led ke 4 dan 5 menyala bersamaan. Selanjutnya keduanya kembali menyalakan led paling ujung. Variabel geser, berfungsi menjumlahkan kedua variabel gkanan dan gkiri untuk dikeluarkan di PORTA. Dengan demikian PORTA akan menampakan dua led yang berjalan dari ujung ke tengah secara bersamaan.
Berikut adalah listing program untuk inner LED menggunakan Codevision AVR.
#include <mega16.h> #include <delay.h> //program diambil dari https://anotherorion.com //running led inner int geser, gkanan, gkiri=0; void main(void) { PORTA=0x00; DDRA=0xFF; delay_ms(50); gkanan=0x80; gkiri=0x01; while (1) { if(gkanan<0x10) { gkanan=0x80; } if(gkiri>0x08) { gkiri=0x01; } geser=gkiri+gkanan; PORTA=geser; gkanan>>=1; gkiri<<=1; delay_ms(50); }; }
Untuk rangkaian skematiknya sama seperti rangkaian running led.
Nah setelah anda belajar menyalakan dua led dari ujung ke tengah ( inner running led) tentunya anda dapat berkreasi dengan membuat outer running led, kedua led akan bergerak dari tengah ke masing-masing ujung atau cross running led; kedua led berjalan dari ujung menuju ujung yang lain. Selamat mencoba
Gan mksdnya 0x01 dan 0x80 Ini mksdnya apa gan??
Mohon penjelasannya
0x maksudnya angka ditulis dalam kode hexa mas, jadi itu angka 01 hexa dan 80 hexa
mantap gan… tapi gambarnya kok gak bisa muncul ya gan?
www candrasahabat.blogspot com
tes komentar
MANTAP