BAB III
PERANCANGAN SISTEM
3.1 Konfigurasi Sistem
Alat yang dibutuhkan mampu memberikan informasi shio, elemen, dan angka gua pengguna. Selain itu, sistem harus mampu memberikan informasi untuk setiap arah mata angin yang ditunjuk oleh pengguna, dengan memasukkan tanggal lahir dan jenis kelamin.
Kerja alat dimulai dari pemasukan data pengguna berupa tahun lahir, tahun lahir akan dikurangi dengan angka 1900 kemudian di MOD 12 untuk menghasilkan kategori shio dan di MOD 10 untuk elemen shio. Untuk menghasilkan angka gua, maka dicari angka tahun tunggal terlebih dahulu. Angka tahun tunggal adalah hasil penjumlahan dari tiap tiap bilangan pada tahun. Sebagai contoh, tahun kelahiran= 1989 maka angka tahun tunggalnya adalah 1+9+8+9=27. Angka gua pria adalah bilangan hasil dari pengurangan 11 dengan angka tahun tunggal. Angka gua wanita adalah bilangan hasil dari penjumlahan 4 dengan angka tahun tunggal. Ada beberapa perlakuan khusus, yaitu untuk angka gua sama dengan 5, untuk pria diganti dengan 2, sedangkan untuk wanita diganti dengan 8. Data yang diperoleh dari angka gua digunakan untuk memberikan informasi tentang kualitas dari arah mata angin yang ditunjukkan oleh pengguna, serta saran peletakan interior untuk tiap-tiap arah mata angin.
Informasi arah mata angin diperoleh dari modul kompas CMPS03 . Data diperoleh dengan komunikasi I2C, dan sudut yang terbaca dari 00 hingga 359,90. Sudut tersebut dibagi menjadi 8 mata angin, yaitu timur, tenggara, selatan, barat daya, barat, barat laut, utara, dan timur laut.
3.2 Perancangan Perangkat Keras
Perangkat keras atau hardware yang dibutuhkan untuk menyokong konfigurasi yang diinginkan adalah, catu daya, sistem minimum ATmega32, modul kompas
CMPS03 push button, hubungan antar rangkaian di tunjukkan oleh Gambar 3.1.
Fungsi dari masing-masing bagian adalah, catu daya adalah jantung sistem yang akan memberikan daya kepada bagian lain untuk beroperasi. Mikrokontroler merupakan bagian yang berfungsi sebagai otak dari sistem ini, dan akan memperoleh data dari push button dan modul kompas CMPS0. Data yang diperoleh akan diproses dan ditampilkan pada LCD.
3.2.1 Modul kompas CMPS03
Sensor kompas yang digunakan pada sistem ini merupakan modul siap pakai. Pada penggunaannya, ada dua macam cara pengambilan data, yaitu dengan PWM dan dengan I2C. Pada sistem yang dibuat digunakan I2C sebagai sarana pengambilan data, sebab proses dan tingkat ketelitiannya lebih baik daripada PWM.
Gambar 3.2 Modul kompas CMPS03
Modul kompas CMPS03 dapat langsung digunakan bila menggunakan mode PWM, namun dengan I2C modul ini perlu ditambah beberapa resistor sebagai pull-up. Untai tambahan untuk modul kompas CMPS03 ditunjukkan pada Gambar 3.2.
Komponen tambahan untuk membantu kerja CMPS03 sangat sedikit, yaitu resistor dan push button. Resistor pada pin SDA dan SCL modul kompas berfungsi sebagai pull-up resistor. Hal ini memudahkan modul karena perangkat hanya perlu memberikan keluaran 0(low) untuk membuat jalur menjadi low, dan untuk membuat jalur menjadi high perangkat tidak perlu memberikan keluaran apapun. Push button digunakan sebagai sarana untuk mengkalibrasi modul kompas. Pengkalibrasian perlu dilakukan karena sudut inklinasi tiap daerah berbeda-beda.
Proses kalibrasi modul dengan push button adalah sebagai berikut,
1. Modul kompas diletakkan secara horisontal dan orientasi utara modul kompas menghadap arah utara bumi, dan tekan push button.
2. Modul kompas diletakkan secara horisontal dan orientasi utara modul kompas menghadap arah timur bumi, dan tekan push button.
3. Modul kompas diletakkan secara horisontal dan orientasi utara modul kompas menghadap arah selatan bumi, dan tekan push button.
4. Modul kompas diletakkan secara horisontal dan orientasi utara modul kompas menghadap arah barat bumi, dan tekan push button
5. Orientasi arah dari kompas diperiksa, dan apabila sudah tepat penunjukan arahnya, maka modul kompas sudah terkalibrasi dengan baik.
Catu daya berfungsi sebagai pensuplai tegangan listrik DC agar untai lain dapat bekerja dengan baik. Mikrokontroler ATmega32, modul kompas, LCD dan push button memerlukan tegangan 5V. Kebutuhan tersebut dapat dipenuhi dengan menggunakan tenaga baterai ataupun dari PLN dengan bantuan adaptor. Namun sebelum baterai ataupun adaptor digunakan sebagai pensuplai tegangan, perlu diingat bahwa tegangan baterai dan adaptor di pasaran tidak semuanya sama dengan 5V, maka perlu ditambah dengan suatu untai yang mampu menurunkan tegangan input menjadi 5V dengan toleransi 0,2V. Untai yang digunakan ditunjukkan pada Gambar 3.3.
Gambar 3.3 Catu daya
Komponen utama dari untai catu daya adalah IC 7805, yaitu IC regulator yang akan mengatur tegangan input menjadi 5V DC dengan ketentuan tegangan masuknya lebih besar dari 8V dan di bawah 25V. Komponen baterai adalah soket untuk baterai, sedangkan ONOFF adalah soket untuk saklar pengatur input tegangan. Tegangan keluaran adalah VCC dan GND. Tegangan keluaran inilah yang menjadi sumber
tegangan bagi setiap komponen dalam sistem ini.
3.2.3 Untai mikrokontroler ATmega32
Semua proses data, dan penampilan hasil kerja sistem dilakukan oleh mikrokontroler ATmega32. Mikrokontroler belum dapat menjalankan tugasnya dengan baik bila tidak ada dukungan dari beberapa komponen lain seperti oscillator atau biasa disebut kristal, dan pe-reset. Gambar 3.4 menunjukkan sistem minimum yang digunakan.
Gambar 3.4 Rangkaian minimum sistem ATmega32
Pada untai sistem minimum ATmega32, terdapat beberapa komponen, antara lain, Kristal sebagai sumber detak eksternal, pe-reset mikrokontroler, dan lampu indikator. Pada ATmega32 terdapat 4 port untuk input dan output, penggunaan dari port yang tersedia adalah: portA digunakan untuk LCD 2x16, portC digunakan untuk komunikasi dengan modul kompas secara I2C, yaitu pinC.0 sebagai SCL dan pinC.1sebagai SDA, dan portD digunakan untuk saluran masukan data dari push button, yaitu pinD.3, pinD.4, pinD.5.
Program yang telah dibuat di komputer di-download ke mikrokontroler menggunakan sistem isp, dan jalur yang digunakan adalah portB.6 sebagai MISO, dan portB.5 sebagai MOSI, portB.7 sebagai SCK. Tegangan 5V dihubungkan pada pin AREFF, AVCC, VCC. AVCC perlu dihubungkan dengan tegangan 5V agar portA dapat digunakan.
Gambar 3.5 Untai penampil LCD
Untai LCD ditunjukkan oleh Gambar 3.5.
LCD dapat digunakan secara langsung karena LCD yang digunakan merupakan modul siap pakai, namun ada tambahan beberapa komponen untuk membuat hasil kerja LCD lebih baik, yaitu potensiometer dengan ukuran 50KΩ. Komponen ini digunakan untuk mengatur kontras dari LCD. Selain itu, agar tampilan lebih menarik, maka lampu LCD diaktifkan, yaitu dengan menghubungkan pin 15 dengan VCC dan pin 16 dengan GND.
3.2.5 Untai push button
Data yang diperoleh dari push button adalah keputusan ya atau tidak, oleh karena itu, push button berfungsi menghubungkan pin dari mikrokontroler dengan data low (GND), untainya ditunjukkan oleh Gambar 3.6.
Ketika pengguna memilih untuk menekan tombol maka akan menghubungkan pin dari mikrokontroler dengan ground(GND), dan mikrokontroler mengartikan sebagai “ya”.
Seluruh untai yang ada, dirangkai mejadi satu sehingga menjad
Gambar 3.6 Untai push button
Seluruh untai yang ada, dirangkai mejadi satu sehingga menjadi untai perangkat keras yang mampu mendukung sistem penunjuk orientasi arah interior rumah digital dengan metode Feng Shui. Secara keseluruhan, untai sistem tampak pada Gambar 3.7.
3.3 Perancangan Perangkat Lunak
Perangkat lunak diperlukan sebagai pikiran utama yang mampu memberikan hasil yang sesuai dengan konfigurasi sistem, dan ditanam ke dalam otak sistem, yaitu mikrokontroler. Jika hanya perangkat keras saja, sistem belum dapat bekerja sebagai sistem penunjuk orientasi arah interior rumah digital dengan metode Feng Shui, oleh
karena itu, perangkat lunak diperlukan.
Program yang dibuat secara garis besar adalah, mengambil data tahun kelahiran dan jenis kelamin pengguna, kemudian memproses data dan menampilkan hasilnya di LCD. Setelah itu, pengguna diberi kesempatan untuk menunjukkan suatu arah, data arah diperoleh dengan komunikasi I2C dengan modul kompas, ketika tombol ditekan, maka program menyimpan arah dan menerjemahkan ke bentuk saran yang cocok untuk pengguna. Program kembali memberikan kesempatan pengguna untuk menunjuk suatu arah bila seluruh tampilan di LCD sudah selesai. Detil program ditunjukkan oleh diagram alir pada Gambar 3.8. Pembuatan program dibagi menjadi beberapa prosedur untuk mempermudah proses analisa dari program, selain itu untuk memudahkan dalam pelacakan kesalahan. Pada program utama, terdapat 6 prosedur yaitu isi_data, proses_data, compass_read2, compass_read3, pilih, dan tampil.
Gambar 3.7 Untai sistem penunjuk orientasi arah interior rumah digital dengan metode feng shui
Gambar 3.8 Diagram alir program utama
M ul ai Kon fig uras i L CD Ko nfi gu rasi p i n Kon figu ras i I2C De kl a ra si v ar iab elH ap us LC D Tun gg u 1 00m S da ta=d at aH*2 56 d ata=da ta or d a taL s ud ut=d ata/ 10 s ud ut 2=da ta m od 10H ap us l cd Sud ut≥ 33 7, 5 a nd su du t <22 ,4? Su du t≥22 ,5 o r sud u t< 67 , 4? Sud ut ≥67 ,5 or su du t < 11 2 ,4? Sud ut≥ 11 2 ,5 o r sud u t< 15 7, 4? Sud ut≥ 15 7 ,5 o r sud u t< 20 2, 4? Sud ut≥ 20 2 ,5 o r sud u t< 24 7, 4? Sud ut≥ 24 7 ,5 o r sud u t< 29 2, 4? Sud ut≥ 29 2 ,5 o r sud u t< 33 7, 4? A y y y y y y y y Tun gg u 1 7mS i si _d ata pr os es_d ata co mp as s_re ad2 co mp as s_re ad3 B Ar ah =1 Ar ah =0 Ar ah =2 Ar ah =3 Ar ah =4 Ar ah =5 Ar ah =6 Ar ah =7 Tu l is LC D “Se lam a t Dat an g=” "Ma su kka n da ta" Tuli s L CD “Utara ” Tul i s L CD “Timu r La ut” Tul i s L CD “Timu r” Tul i s L CD “Ten gg a ra ” Tul i s L CD “Se la tan ” Tu l is LC D “Ba ra t Da ya” Tu l is LC D “Ba rat” Tu l is LC D “Ba ra t La ut”
Gambar 3.8 Diagram alir program utama
3.3.1 Prosedur isi_data
Prosedur isi_data adalah prosedur untuk mendapatkan data dari pengguna. Data yang diambil adalah tahun kelahiran dan jenis kelamin. Pada Gambar 3.9 ditunjukkan diagram alir dari prosedur isi_data. Pada prosedur ini, pertama-tama, diambil langkah menghapus tampilan di LCD, kemudian untuk mempercantik tampilan, ditulis tahun lahir dari pengguna, yaitu dengan selalu menimpa angka tahun pada kolom 13 baris pertama bila ada perubahan data tahun. Perubahan ini karena penekanan pada tombol di pinD.3 untuk menaikkan angka tahun dan pinD.4 untuk menurunkan angka tahun. Bila pinD.5 ditekan, maka program mensudahi pengisian data tahun dan memulai pengisian data jenis kelamin. Pada awal program telah di-setting secara default bahwa jenis kelamin dari pengguna adalah pria atau dalam program dideklarasikan sebagai nilai 0 untuk sex-nya dan ditulis PA. Perubahan data dapat dilakukan dengan menekan pinD.3. Penekanan tombol mengakibatkan menambahkan angka 1 pada variabel sex, namun karena jenis kelamin hanya ada 2, maka ketika nilai sex sama dengan atau lebih dari 2 maka secara otomatis nilai sex sama dengan 1. Setelah didapat nilai sex, untuk mempermudah pengguna, maka nilai tersebut ditafsirkan sebagai PA(putra/pria) untuk nilai sex sama dengan 0 dan PI(putrid/wanita) untuk nilai sex sama dengan 1. Penekanan tombol pinD.5 menyebabkan proses pengambilan data selesai, dan keluar dari prosedur isi_data. Ada beberapa variasi tampilan pada LCD setelah penekanan pinD.5. A PinD.5 ditekan ? Pilih Tampil Hapus LCD Tunggu 150mS B n Tulis LCD “silahkan tunjuk suatu arah"
Isi _d at a( ) Ha pu s L C D U ba h tip e d a ta ta hu n d a ri in te g e r m e nja di ch a r
PinD .3 dit eka n?nP in D.4 d ite kan? Pin D . 5 dite ka n? T u ng g u 2 5m S T un g g u 25 mS T u n gg u 1 0 0m S T a h un d it am b ah 1T ah u n d iku ra n g i 1 U ba h tip e d a ta ta hu n d a ri in te g e r m e nja di ch a rda r i i nt eg er m e n ja d i cha rUb ah t ip e da ta t ah un n PinD .3 d it ek a n? n
Pin D .5 dit eka n? T u ng gu 10 0 mS S e x d itam b ah 1 Sex ≥ 2? S ex= 0y Se x= 0?y n Se x= 1?y y T u n gg u 8 8m S H ap us LC D H ap us LC D T u n gg u 8 8m S H ap us LC D T u n gg u 8 8m S T u n gg u 4 0m S Re tu rn T ulis “T a hu n lah ir ” di LC D b a ris 1 ko lom 1 T u lis da ta ta h un d i L C D b ar is 1 ko lo m 13 T u lis da ta ta h un d i L C D b ar is 1 ko lo m 13T u lis d at a t a h u n d iL C D b ar is 1 ko lo m 1 3 T u lis “ J en is ke lam in :” di L C D b ar is 2 ko lo m 0T u lis “ PA” di L CD b ar is 2 ko lo m 1 5 T u lis “ PA” di L CD b ar is 1 kolo m 1 5 T u lis “ PI” d i L CD b ar is 1 kolo m 1 5 T ulis “ T e r im a Ka sih” d i L CD T ulis “ M e mp r os es D at a” d i L CD T u lis “******* ********* ” di LC D
Gambar 3.9 Diagram alir prosedur isi_dat
3.3.2 Prosedur proses_data
Setelah data diperoleh, program akan memangil prosedur proses_data untuk memproses masukkan sehingga diperoleh hasil berupa shio, elemen dan angka gua. Pemrosesan data dimulai dengan menampilkan keluaran apa saja yang akan diperoleh, yaitu shio dan elemen. Selanjutnya, menghitung nilai dari tempTahun yang merupakan absolut dari pengurangan tahun kelahiran dengan 1900. Selain itu juga dihitung nilai tempShio dan tempElemen, yang merupakan hasil mod 12 dan mod 10 dari tempTahun. Nilai tempShio dan tempElemen dicek dan akan menampilkan informasi tentang shio dan elemen pengguna.
Proses selanjutnya adalah menghitung gua. Nilai gua diperoleh dengan cara mengurangkan 11 dengan angka tahun tunggal atau menjumlahkan 4 dengan angka tahun tunggal. Kemungkinan tersebut bergantung terhadap jenis kelamin dari pengguna. Angka tahun tunggal diperoleh dengan cara menjumlahkan setiap angka pada satuan, puluhan, ratusan dan ribuan. Setelah angka tahun tunggal langkah terakhir adalah menghitung nilai gua sesuai dengan jenis kelamin pengguna. Khusus untuk nilai gua sama dengan 5, akan diganti menjadi 2 untuk laki-laki, dan menjadi 8 untuk perempuan.
Komunikasi I2C pada modul kompas CMPS03 ada dua macam, dengan bahasa sederhana adalah pembacaan ketelitian rendah dan pembacaan ketelitian tinggi. Pembacaan dengan ketelitian rendah hanya membaca data pada register 1, data yang diperoleh adalah 1byte data untuk 3600. Pembacaan dengan ketelitian tinggi, data yang dibaca adalah data pada register 2 dan register 3, dengan rage data dari 0 hingga 3599 untuk 359,90. Pada sistem ini, digunakan pembacaan dengan ketelitian tinggi, dan proses pembacaan data dari register 2 dan 3 di lakukan oleh prosedur compass_read2 dan compass_read3. Pada Gambar 3.10 ditunjukkan diagram alir untuk prosedur compass_read2.
Proses pembacaan data dimulai dengan membuka komunikasi I2C, kemudian mengirimkan alamat modul kompas digital dengan read/write low (0xC0). Pada pembacaan dengan ketelitian tinggi, maka pembacaan untuk byte high adalah register 2, maka perlu dikirimkan alamat register untuk dibaca, yaitu 0x02. Setelah itu, mengirimkan sinyal untuk memulai komunikasi I2C lagi dan mengirimkan alamat modul kompas digital dengan read/write high (0xC1). Hasil pembacaan data pada register 2 disimpan dalam variabel dataH, dan komunikasi I2C diputus atau dihentikan.
compass_read2 Memulai komunikasi I 2C Kiri m sinyal read/write low
Menul is pada register dengan alamat 02 Memulai komunikasi I 2C Kirim sinyal read/write high
dataH=hasil baca dari register2 Komunikasi I 2C diputus
Gambar 3.10 Diagram alir prosedur compass_read2
3.3.4 Prosedur compass_read3
Diagram alir dari prosedur compass_read3 ditunjukkan pada Gambar 3.11
compass_read3 Memulai komunikasi I 2C Kiri m sinyal read/write low
Menul is pada register dengan alamat 03 Memulai komunikasi I 2C Kirim sinyal read/write high
dataL=hasil baca dari register3 Komunikasi I 2C diputus Return
Gambar 3.11 Diagram alir prosedur compass_read3
Pembacaan pada register 3 adalah untuk mendapatkan data byte low dari data arah. Cara pembacaan data dari register 3 mirip dengan pembacaan data pada register 2, perbedaannya hanya pada alamat saja.
3.3.5 Prosedur pilih
Pada prosedur pilih, ada 64 kemungkinan yang dapat terjadi. Proses pemilihan didasarkan pada angka gua dari pengguna (8 kemungkinan) dan arah yang dipilih oleh pengguna(8 kemungkinan), jadi banyak dari kemungkinan adalah 8 x 8= 64. Pemilihan kemungkinan digunakan metode if then guna mempermudah proses pemrograman. Gambar 3.12 merupakan diagram alir dari prosedur pilih.
Prosedur ini digunakan sebagai sarana untuk menampilkan sejumlah kalimat yang tidak dapat ditampilkan dalam 1 layar, karena jumlah karakter LCD terbatas. Membuat tulisan berjalan dari kanan ke kiri merupakan salah satu metode untuk mengatasi masalah tersebut, selain itu membuat tampilan lebih menarik.
A B X=6dany=0? X=6dany=1? X=6dany=2? X=6dany=3? X=6dany=4? X=6dany=5? X=6dany=6? X=6dany=7? T ampilkan1=kelu arj 2 Ta mpi lkan1=keluarb2 T ampilkan1=kelu arj 3 T ampilkan1=kelu arj 1 Ta mpi lkan1=keluarb3 Ta mpi lkan1=keluarb1 Ta mpi lkan1=keluarb4 yyy T ampilkan1=kelu arj 4 yyyyy X=7dany=0? X=7dany=1? X=7dany=2? X=7dany=3? X=7dany=4? X=7dany=5? X=7dany=6? X=7dany=7? X=8dany=0? X=8dany=1? X=8dany=2? X=8dany=3? X=8dany=4? X=8dany=5? X=8dany=6? X=8dany=7? T ampilkan1=keluarj 4 yTa mpi lkan1=kel uarb3 T ampilkan1=keluarj 1 T ampilkan1=keluarj 2 T ampilkan1=keluarj 3 Ta mpi lkan1=kel uarb2 Ta mpi lkan1=kel uarb4 Ta mpi lkan1=kel uarb1 T ampilkan1=keluarj 3 Ta mpi lkan1=kel uarb4 T ampilkan1=keluarj 2 T ampilkan1=keluarj 4 Ta mpi lkan1=kel uarb1 Ta mpi lkan1=kel uarb3 Ta mpi lkan1=kel uarb2 yyy yyyyy yyT ampilkan1=keluarj 1 yyy yy X=9dany=0? X=9dany=1? X=9dany=2? X=9dany=3? X=9dany=4? X=9dany=5? X=9dany=6? X=9dany=7?
Ta mpi lkan1=kel uarb3 T ampilkan1=keluarj 4 Ta mpi lkan1=kel uarb1 Ta mpi lkan1=kel uarb2 Ta mpi lkan1=kel uarb4 T ampilkan1=keluarj 2 T ampilkan1=keluarj 3 T ampilkan1=keluarj 1 yy yyyyy y Ret urn pil ih() X=1dan y=0? X=1dan y=1? X=1dan y=2? X=1dan y=3? X=1dan y=4? X=1dan y=5? X=1dan y=6? X=1dan y=7? X=2dan y=0? X=2dan y=1? X=2dan y=2? X=2dan y=3? X=2dan y=4? X=2dan y=5? X=2dan y=6? X=2dan y=7?
Tampi lkan1=ke luarb4 yTa mpi lkan1=keluarj 3 Tampi lkan1=ke luarb2 Tampi lkan1=ke luarb1 Tampi lkan1=ke luarb3 Ta mpi lkan1=keluarj 1 Ta mpi lkan1=keluarj 4 Ta mpi lkan1=keluarj 2 Ta mpi lkan1=keluarj 1 Tampi lkan1=ke luarb1 Ta mpi lkan1=keluarj 4 Ta mpi lkan1=keluarj 2 Tampi lkan1=ke luarb4 Tampi lkan1=ke luarb2 Tampi lkan1=ke luarb3 y yyyyy yyyy Ta mpi lkan1=keluarj 3 yyyy y X=3dan y=0? X=3dan y=1? X=3dan y=2? X=3dan y=3? X=3dan y=4? X=3dan y=5? X=3dan y=6? X=3dan y=7? X=4dan y=0? X=4dan y=1? X=4dan y=2? X=4dan y=3? X=4dan y=4? X=4dan y=5? X=4dan y=6? X=4dan y=7?
Tampi lkan1=ke luarb2 yTa mpi lkan1=keluarj 2 Tampi lkan1=ke luarb4 Tampi lkan1=ke luarb3 Tampi lkan1=ke luarb1 Ta mpi lkan1=keluarj 4 Ta mpi lkan1=keluarj 1 Ta mpi lkan1=keluarj 3 Tampi lkan1=ke luarb1 Ta mpi lkan1=keluarj 1 Tampi lkan1=ke luarb3 Tampi lkan1=ke luarb2 Ta mpi lkan1=keluarj 3 Ta mpi lkan1=keluarj 2 Ta mpi lkan1=keluarj 4 yy yyyy yyyy
Tampi lkan1=ke luarb4 yyyyy
Gambar 3.12 Diagram alir prosedur pilih
Pembuatan tulisan berjalan dimulai dengan pemanggilan prosedur, dan bahan yang akan ditampilkan sudah dipersiapkan sebelumnya oleh prosedur pilih. Prosedur akan mendeklarasikan beberapa variable yang akan digunakan. Kemudian menghitung jumlah karakter dari pesan yang akan di tampilkan, dan disimpan dalam variabel panjangTulisan. Layar LCD baris pertama akan dimunculkan arah yang ditunjuk, caranya dengan mengecek nilai variabel arah, bila sama dengan 0 maka utara, bila 1 maka timur laut dan seterusnya.
Gambar 3.13 Diagram alir prosedur tampilkan
Prosedur akan memulai mengisi kolom terakhir dari baris 2 LCD dengan karakter –karakter pesan, dimulai dari karakter pertama hingga karakter ke 15 karena jumlah dari LCD yang digunakan hanya mampu menampilkan sebanyak 16 karakter. Proses di atas akan membuat tampilan seolah-olah muncul dari kanan, dan bergeser 1 karakter ke ke kiri perlahan-lahan dengan delay 17mS. Selanjutnya, untuk menyelesaikan seluruh pesan, maka memulai suatu perulangan baru yang akan menuliskan karakter di LCD baris 2 kolom pertama, yaitu dengan menuliskan karaker kedua dari pesan di kolom pertama LCD.
Menuliskan karater selanjutnya ke arah kanan, bila sudah mencapai ujung kanan, akan kembali dari kolom pertama, namun yang ditulis adalah karakter ketiga pesan, dan hal ini berlanjut terus menerus hingga pesan selesai ditampilkan.
Perulangan ini, bila dijalankan secara terpisah dengan perulangan pertama, akan membuat tulisan yang seolah-olah bergeser dari kanan ke kiri, namun perbedaannya dengan perulangan pertama adalah pada perulangan ini, tulisan tiba-tiba muncul di pojok kiri dan kurang menarik. Diagram alir dari prosedur ini ditunjukkan oleh Gambar 3.13.
Mulai Deklarasi variable panjangTulisan=banyak karakter tampilkan1Hapus LCD
Arah=0 ?Arah=1 ? Arah=2 ? Arah=3 ? Arah=4 ?Arah=5 ?Arah=6 ? Arah=7 ? y y y y y y y y i= karakt er LCD i≥1?baris 2, kolom ke ike LCD J=0i=i+1J<karakt erLCD-1?yTulis Karakt er ke-j dari t ampilkan1J=J+1
Tunggu 17 mS y i=0 i≤ panjangTul i s a n ? y i=i+1 j=0 Ke L CD Baris 2 kol om 1 j<16? Karakt er ke (j+i) dari tampilkan1 kosong?yTunggu 100 mS
Return j=j+1 Tunggu 17 mS
Ret urn T ul is “Utara” d i LCD bari s Tuli s “Timur Laut”1 di LCD baris 1Tul is “Timur” di LCD baris 1“Tenggara”Tulis di LCD baris 1 T ul is “Selatan” di LCD baris 1 Tulis “Barat Daya” di LCD baris 1 T ul is “Barat ” di LCD bari s 1Tuli s “Barat Laut” di LCD baris 1 Tu lis karakt er ke (i+j) dari t ampil kan1