Program ini mengontrol lampu lalu lintas dengan mikrokontroler ATMega16 dengan cara menghidupkan dan mematikan pin 0 pada port A secara bergantian selama 5 detik dan 2 detik secara berulang untuk menyimulasikan lampu hijau dan merah. Program ini dibuat oleh M. Irvan Wahono dan Wahyu Eksanto dari Universitas Tidar.
Perancangan dan Pemrograman Walking Robot menggunakan Mikrokontroller ATMega16
1. Pemrograman Traffic Light
dengan Mikrokontroller
ATMega16
Dibuat oleh :
M. Irvan Wahono (1710501049)
Wahyu Eksanto (1710501056)
Dosen Pembimbing :
R. Suryoto Edy Raharjo, S.T., M.Eng.
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS TIDAR
4. • Program tersebut menghasilkan robot yang akan berjalan selama 5 detik dan akan berhenti selama 2
detik, serta akan diulang terus menerus sampai sumber daya dicabut. Penjelasan program tersebut
adalah sebagai berikut :
[1] baris pertama adalah komentar atau pernytaan yang tidak akan masuk dalam perintah program,
dengan diapit dengan tanda petik maka akan menjadi komentar yang tidak akan masuk dalam perintah.
[2] baris kedua ($regfile = “m16def.dat”) adalah cara memanggil data library bahwa program ini
menggunakan data dari atmega 16. Dengan ini perintah dibawahnya akan dimengerti oleh software
bahwa program digunakan pada atmega16
[3] baris ketiga ($crystal = 8000000) adalah sebuah sintaks untuk mengukur waktu, nilai 8000000
mempunyai perkiraan waktu sekitar 1 detik.
[4] baris keempat (config PORTA = Output) adalah perintah untuk mengatur port A pada atmega16
sebagai keluaran
[5] baris kelima ( do) adalah awalan untuk menjalankan program perintah
5. [6] baris keenam (PORTA = &B00000001) adalah perintah mengalirkan arus pada port A pin 0.
Pembacaan pin dari kiri kekanan adalah pin 7, pin 6, pin 5,.....,pin0. Atau jika menggunakan satu pin yaitu
pin 0 saja dapat ditulis PORTA = &B1.
[7] baris ketujuh (wait 5) adalah perintah untuk menunda perintah sebelumnya selama 5 detik, jadi robot
akan berjalan selama lima detik. Perintah wait ini akan diartikan menjadi detik, sedangkan perintah waitms
diartikan menjadi milidetik.
[8] baris kedelapan (PORTA = &B00000000) adalah perintah untuk menghentikan aliran arus pada pin 0
dan membuat robot berhenti
[9] baris kesembilan (wait 3) adalah perintah menunda perintah sebelumnya selama 2 detik atau robot akan
berhenti selama 3 detik
[10] baris kesepulu (Loop) adalah perulangan sehingga perintah baris ke-6 sampai ke-9 akan diulangi terus
menerus sampai sumber daya program atau robot dicabut
[11] baris kesebelas (end) adalah penutup program atau mengahiri program.