Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
Transcript of Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052 65
BAB III
PERANCANGAN DAN PEMBUATAN SISTEM
Pada bab III ini membahas bagaimana perancangan dan pembuatan sistem
alat penghitung jumlah peserta di dalam ruangan berbasis ATMega 16 dengan
SMS sebagai report dimulai dengan pembuatan perangkat keras (Hardware)
maupun pembuatan perangkat lunak (software).
Pembuatan perangkat keras yaitu berupa perancangan catu daya,
perancangan sistem minimum ATMega 16, perancangan LCD, perancangan seven
segment, perancangan RTC DS1307 dan perancangan komunikasi serialnya
sehingga mikrokontroler dapat mengirimkan informasi yang diperoleh berupa
jumlah peserta yang telah datang dengan bentuk berupa SMS ke seluruh HP
panitia suatu acara yang memanfaatkan alat ini.
Sedangkan untuk perangkat lunak meliputi pembuatan program C sehingga
alat dapat difungsikan sebagai penghitung dan AT Command yang dapat membuat
mikrokontroler dapat menyampaikan SMS ke seluruh HP panitia dengan
memanfaatkan modem sebagai perantaranya.
A. PERANCANGAN SISTEM
Perancangan sistem alat penghitung peserta di dalam ruangan
menggunakan sensor infra merah yang berbasis mikrokontroler ATMega 16
dengan SMS sebagai report ini bertujuan untuk mempermudah panitia sebuah
acara untuk memonitoring jumlah peserta di dalam ruangan. Dimana suatu
66
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
kondisi yaitu over kapasitas sering terjadi pada acara seminar, workshop dan
perlombaan. Dengan kondisi ruangan yang sudah melebihi kapasitas nya,
maka acara yang sedang diselenggarakan tidak efektif. Penggunaan SMS
akan sangat membantu panitia untuk memonitoring pertambahan jumlah
peserta yang datang dikarenakan panitia suatu acara tidak selalu berada di
tempat yang sama dan didekat alat tersebut untuk memantau perubahan setiap
waktunya.
Berikut merupakan blok diagram dari perancangan alat penghitung
peserta di dalam ruangan berbasis mikrokontroler ATMega 16 dengan SMS
sebagai report.
Gambar 3.1 Blok Diagram Perancangan Alat.
Berdasarkan blok diagram perancangan alat penghitung peserta di
dalam ruangan seperti pada gambar 3.1, terdiri dari rangkaian input dan
output, di mana rangkaian input hanya terdiri dari dua buah konfigurasi
67
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
rangkaian diantaranya ialah rangkaian sensor infra merah dan RTC DS1307
(Real Time Clock).
1. Infra Merah
Pemasangan sensor infra merah diletakan pada PIN 17 dan 18
tepatnya pada PIN dengan fungsi interupsi. Karena fungsi interupsi
adalah kondisi dimana pada saat sensor mulai bekerja, maka
mikrokontroler akan berhenti mengerjakan program yang sedang
dikerjakan dan melayani interupsi. Jika interupsi sudah selesai di
kerjakan maka mikrokontroler akan mulai lagi dengan rutin yang
sebelumnya telah terhenti.
Prinsip kerja sensor infra merah ialah memanfaatkan logika “1”
untuk sensor terbuka atau pancaran sinar infra merah ke photodioda
tidak terhalang dan logika “0” jika sensor tertutup yaitu pancaran sinar
infra merah ke photodioda terhalang. Pada saat sensor terbuka, maka
tidak ada tegangan yang mengalir atau 0 Volt sehingga seven segment
dan LCD yang berfungsi sebagai output tidak bekerja sebagai
penghitung, hanya berfungsi sebagai display.
Namun, pada saat kondisi sensor tertutup maka akan mengalirkan
tegangan 5 Volt yang bersumber dari proses interupsi sehingga akan
membuat seven segment mulai berfungsi untuk menampilkan jumlah
peserta yang telah datang dan LCD juga akan mengalami perubahan
seperti pada seven segment menampilkan jumlah peserta yang telah
datang.
68
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
2. RTC DS1307
RTC akan meng-input data berupa jam, tanggal, bulan dan tahun
yang akan muncul pada LCD. Selain itu RTC juga difungsikan sebagai
akurasi waktu pada saat SMS akan dikirim ke seluruh HP panitia acara
tersebut. Prinsip pengiriman SMS ditentukan oleh waktu mulainya alat
di operasikan.
Alat akan mengirim SMS ke seluruh HP panitia dengan durasi
waktu sepuluh menit sekali. Misal alat dinyalakan pukul 07:00 WIB,
waktu pengiriman SMS diasumsikan sepuluh menit sekali sehingga
pengiriman SMS pertama pada pukul 07:10 WIB. Maka mikrokontroler
akan berkolaborasi dengan RS232 dan memanfaatkan modem sebagai
media transmitter untuk menyampikan informasi berupa jumlah peserta
yang telah datang. HP yang dipakai oleh seluruh panitia dipergunakan
sebagai receiver. SMS yang dikirim bersifat broadcast, sedangkan isi
dari SMS tersebut berupa tanggal, waktu dan jumlah peserta yang
sudang datang.
Untuk konfigurasi rangkaian output dari pembuatan alat berupa
rangkaian LCD, seven segment dan komunikasi serial RS232.
1. LCD 2x16
Rangkaian LCD akan menampilkan jam, tanggal, bulan, tahun
yang diperoleh dari RTC dan jumlah peserta yang telah datang. Selain
sebagai display waktu, LCD juga difungsikan sebagai indikator bahwa
SMS telah dikirim dan terkirim
69
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
2. Seven Segment
Seven segment pada pembuatan alat ini dijadikan indikator adanya
pertambahan ataupun pengurangan jumlah peserta yang datang dan
keluar. Pemilihan seven segment karena tampilanya yang menyala
dengan karakterisrik angka yang lebih jelas, sehingga mempermudah
melihat perubahan yang tejadi.
3. Komunikasi Serial
RS232 dipakai untuk komunikasi serial antara mikrokontroler dan
HP dengan memanfaatkan modem sebagai media perantara komunikasi
keduanya. RS232 didampingi IC MAX323 dalam pengorasiannya,
MAX232 difungsikan sebagai konverter antara mikrokontroler dan
modem.
Hal ini karena tegangan mikrokontroler 0 – 5 Volt sedangakan
RS232 -3 – (-30 Volt) sampai 3 – 30 Volt, sehingga perlu IC yang dapat
meyamakan tegangan dari kedua perangkat tersebut yaitu MAX232.
Dengan adanya bantuan dari rangakaian RS232 maka komunikasi
antara mikrokontroler dan HP dengan memanfaatkan modem sebagai
perantara dapat difungsikan dengan baik. Sehingga pengiriman data
yang diperoleh mikrokontroler dapat dikirim ke seluruh HP panitia.
Ada tiga kondisi dimana SMS akan dikirim ke seluruh panitia
diantaranya adalah kondisi normal, kondisi ruangan penuh dan kondisi
ruangan over kapasitas berikut penjelasanya.
70
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
a) Kondisi Ruangan Normal
Kondisi normal ialah kondisi di mana ruangan masih mampu
menampung peserta yang datang. Pada kondisi ini alat akan
mengirim SMS ke seluruh HP panitia sepuluh menit sekali dimulai
dari alat dinyalakan dan jumlah dari peserta yang telah datang akan
muncul pada LCD dan seven segment yang dipakai sebagai
indikator pertambahan jumlah peserta.
b) Kondisi Ruangan Penuh (Peserta = 500 Orang)
Kondisi ruangan penuh ialah kondisi di mana ruangan telah
menampung peserta sesuai dengan kapasitasnya dan jumlah peserta
yang telah datang dan akan muncul pada LCD dan seven segment.
500 merupakan kondisi ruangan dianggap penuh. Pada kondisi ini
SMS akan dikirim keseluruh HP panitia dengan mengabaikan
asumsi waktu pengiriman SMS yaitu sepuluh menit sekali yang
telah ditentukan sebelumnya.
c) Kondisi Ruangan Over Kapasitas (Peserta > 500 Orang)
Kondisi over kapasitas ialah kondisi di mana ruangan sudah
melebihi dari daya tampungnya. Seperti pada rencana rangcangan,
ruangan dianggap penuh jika sudah mencapai 500 orang. Dimana
pada kondisi ini peserta yang datang sudah mencapai 501 atau >
500, sehingga SMS akan dikirim ke seluruh HP panitia dengan
mengabaikan asumsi waktu pengiriman SMS yaitu sepuluh menit
sekali yang telah ditentukan sebelumnya.
71
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
B. PERANCANGAN DAN PEMBUATAN HARDWARE
Perancangan dan pembuatan hardware meliputi pembuatan rangkaian
secara schematic baik dari rangkaian infra merah, LCD, RTC, seven segment,
dan beberapa komponen pendukung lainnya. Selain itu terdapat pula
perhitungan komponen yang dipergunakan untuk membuat alat ini.
1. Perancangan Sistem Minimum ATMega 16
Rangkaian minimum ialah rangkaian yang harus dimiliki sebuah
sistem dengan menggunakan mikrokontroler sebagai pengendalinya.
Rangkaian sistem minimum ATMega 16 terdiri dari rangkaian reset dan
rangkaian oscillator. Berikut merupakan gambar rangkaian sistem
minimum ATMega 16.
Gambar 3.2 Rangkaian Sistem Minimum ATMega 16.
Pada pembuatan alat ini hampir semua PIN mikrokontroler dipakai
hanya beberapa PIN saja yang tidak dipakai. adapun PIN yang dipakai
pada pembuatan alat ini ditunjukan oleh tabel 3.1 di bawah ini.
72
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Tabel 3.1 PIN ATMega 16 yang dipergunakan
No PIN Fungsi
1 Pin 9 Sebagai reset ATMega 16.
2 Pin 10,11 Sebagai VCC dan GND
3 Pin 12, 13 Sebagai Xtal (Rangkaian Oscillator).
4 Pin 33-40 Sebagain Pin output yang terhubung ke LCD.
5 Pin 1-7 Sebagai Pin output yang terhubung ke seven
segment.
6 Pin 22-23 Sebagai Pin input yang terhubung ke rangkaian
RTC.
7 Pin 14-15 Sebagai Pin output yang terhubung ke rangkaian
komunikasi serial (MAX232 dan RS232).
8 Pin 16-17 Sebagai Pin Input yang terhubung ke sensor infra
merah.
9 Pin 19-21 Sebagai Pin input yang terhubung ke rangkaian
seven segment.
a) Rangkaian Reset
Rangakaian reset pada mikrokontroler ATMega 16 berfungsi
untuk mengembalikan kondisi mikrokontroler ke kondisi awal, di
mana kondisi ini dipelukan pada saat terjadi kesalahan program yang
sedang berjalan. Pada pembuatan alat penghitung peserta dengan
menggunakan sensor infra merah, rangkaian reset terhubung ke PIN
reset yang sudah tersedia pada mikokontroler ATMega 16.
Pada pembuatan alat ini menggunakan frekuensi oscillator
sebesar 8 MHz, sehingga waktu yang diperlukan mikrokontroler
untuk melakukan reset dapat dihitung sebagai berikut.
73
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
T = 𝐶 𝑥 12
𝐹𝑟𝑒𝑘𝑢𝑒𝑛𝑠𝑖 𝑂𝑠𝑖𝑙𝑎𝑡𝑜𝑟
T = 2 𝑥 12
8.000.000
T = 0,0000003 sekon
= 3 µs
Rangkaian reset dari alat ini terpasang pada PIN 9, rangkaian
sendiri terdiri dari komponen saklar. Tegangan kerja dari
mikrokontroler ATMega 16 sendiri berkisar 4,5 Volt – 5,5 Volt.
Pada perancangan sistem minimum reset, dipakai komponen
elektronika seperti kapasitor sebesar 10 µF dan resistor 10 KΩ.
Nilai dari komponen yang dipakai dalam sistem reset telah
tertulis pada datasheet, sehingga mempermudah dalam perancangan.
Nilai dari kedua komponen yang dipakai dapat dihitung untuk
mencari nilai dari waktu yang dibutuhkan mikrokontroler untuk
melakukan reset.
Adapun rumus yang dipergunakan untuk menghitung waktu
reset tersebut ialah menggunakan rumus 2.2 yang tertera pada dasar
teori pembuatan tugas akhir ini.
T reset = R x C
T reset = 10 KΩ x 10 µF
T reset = 0,1 Second
74
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
0,1 second ialah waktu yang dibutuhkan mikrokontroler untuk
me - reset. Dan berikut ialah rangkaian sistem minimum reset untuk
mikrokontoler ATMega 16.
Gambar 3.3 Rangkaian Reset pada Mikrokontroler ATMega 16.
b) Rangkaian Oscillator
Rangkaian oscillator ialah rangkaian yang dipakai untuk
memperoleh frekuensi clock pada mikrokontroler. Untuk dapat
memperoleh frekuensi clock maka diperlukan komponen eletronika
yang dapat menghasilkan frekuensi clock tersebut yaitu kristal.
Pemilihan nilai dari kristal bergantung dari kebutuhan perancangan.
semakin besar nilai kristal yang dipilih, maka semakin cepat
eksekusi program yang dijalankan.
Pada pembuatan alat ini, nilai kristal yang dipakai bernilai 8
MHz. Untuk pemasangan rangkaian oscillator pada mikrokontroler
75
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
yaitu PIN 12 dan PIN 13. PIN yang dipergunakan untuk pemasangan
rangkaian oscillator telah tertera pada datasheet, sehingga
mempermudah dalam proses perancangannya. Berikut ialah
konfigurasi rangkaian oscillator.
Gambar 3.4 Rangkaian Oscillator.
Berdasarkan gambar 3.4 dapat dilihat bahwa rangkaian
oscillator tersebut menggunakan satu kristal dengan nilai 8 MHz dan
dua kapasitor dengan nilai 22pF. Dari nilai kedua komponen
tersebut, maka dapat dihitung dengan menggunakan rumus 2.3. Dan
berikut adalah waktu yang dibutuhkan selama siklus mesin untuk
melakukan eksekusi program.
T= 𝐶 𝑥 12
𝑓𝑟𝑒𝑘𝑢𝑒𝑛𝑠𝑖 𝑂𝑠𝑖𝑙𝑎𝑡𝑜𝑟
T= 1 𝑥 12
8000000 𝐻𝑧
T= 1,5 µs
76
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Dari hasil perhitungan di atas, maka mikrokontroler
membutuhkan waktu 1,5 µs untuk melakukan eksekusi program.
Dalam arti lain 1,5 µs ialah waktu setiap mikrokontroler melakukan
satu siklus mesin.
2. Perancangan Sensor Infra Merah
Pembuatan alat pada Tugas Akhir ini, menggunakan sensor infra
merah. Sensor infra merah ini tidak berdiri sendiri melainkan bekerja
sama dengan photodioda. Photodioda adalah perangkat yang sangat
sensitif dengan sinar infra merah, sehingga jika ada yang menghalangi
pancaran sinar infra merah ke photodioda maka akan dihitung satu dan
begitu seterusnya sampai pada batas kapasitas dari ruangan yang telah di
utarakan pada rencana rancangan sebelumnya. Pada pembuatan alat ini,
sensor infa merah diletakan pada PIN interupsi mikrokontroler.
Interupsi adalah kondisi dimana pada saat program utama sedang
dieksekusi oleh mikrokontroler dan kemudian berhenti sejenak untuk
melayani program khusus atau rutin tertentu yaitu program pada saat
photodioda tidak menerima pancaran infra merah. Jika kondisi ini sudah
terpenuhi maka mikrokontroler akan kembali menjalankan program
utama. Program utama pada pembuatan alat ini adalah program RTC
yaitu program yang akan menampilan jam dan tanggal pada LCD.
Sedangkan program khusus atau rutin tertentu adalah interupsi 0 dan
interupsi 1.
77
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Adapun prinsip kerja dari sensor infra merah tersebut adalah
menggunakan logika 0 dan 1. Di mana logika “0” menghasilkan 5 Volt
dan logika “1” menghsilkan 0 Volt. Kondisi “0” merupakan kondisi di
mana photodioda yang sensitif akan pancaran infra merah tidak
menerima pancaran infra merah tersebut sehingga infra merah akan
mengirim logika “0” kepada mikrokontroler dan mikrokontroler
mengkonversikan logika “0” tersebut menjadi arus sebesar 5 Volt. Arus
ini akan membantu menggerakan seven segment melakukan perubahan
segment, dari C0 menjadi F9. Sedangkan kondisi “1” merupakan kondisi
dimana photodioda masih menerima pancaran infra merah sehingga
kondisi ini disebut dengan kondisi normal.
a) Pemancar Infra Merah
Berikut adalah skematik dari rangkaian infra merah, terdapat
beberapa komponen yang mendukung kinerja dari infra merah yaitu
resistor yang berfungsi untuk menghambat arus yang masuk.
Gambar 3.5 Rangkaian LED Infra Merah.
78
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Dari gambar 3.5 dapat dijelaskan agar infra merah dapat
berfungsi dengan baik dipergunakan resistor 220 KΩ untuk
menghambat arus dari catu daya sehingga menghasilkan nilai
resistensi infra merah 3,61 Volt. nilai tegangan tersebut merupakan
tegangan operasi infra merah yang diperoleh.
b) Penerima Photodioda
Berikut adalah skematik dari rangkaian photodioda, terdapat
beberapa komponen yang mendukung kinerja dari infra merah yaitu
resistor yang berfungsi untuk menghambat arus yang masuk.
Gambar 3.6 Rangkaian Photodioda.
Rangkaian pada gambar 3.6 merupakan lanjutan dari gambar
3.5. secara skematik susunan dari infra merah dan photodioda sama.
Perbedaannya hanya pada fungsi yaitu infra merah merupakan
pemancar yang sifatnya tegak lurus dan photodioda merupakan
penerima yang sensitif dengan pancaran infra merah.
79
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Gambar 3.7 Rangkaian konfigurasi Infra Merah.
Pada perancangan sensor infra merah pada gambar 3.7, tampak
bahwa sensor infra merah dipasang pada interupsi 0 dan interupsi 1.
Di mana untuk masing-masing sensor menggunakan PIN 16 untuk
sensor yang berfungsi sebagai sensor pintu masuk dan PIN 17 untuk
sensor yang berfungsi sebagai sensor pintu keluar.
3. Perancangan Rangkaian ATMega 16 dan LCD
Untuk pembuatan alat pada Tugas Akhir ini menggunakan LCD
16x2 yang terdiri dari 16 PIN. LCD dengan tipe ini terdiri dari 16
karakter dua baris. Dengan kata lain LCD ini dapat menampilkan 32
karakter, masing-masing baris terdiri dari 16 karekter. Pada pembuatan
Tugas Akhir ini LCD berfungsi sebagai display yang akan menampilkan
data berupa jam, tanggal dan jumlah peserta yang telah datang. Setiap
pertambahan jumlah peserta yang datang akan tampak pada LCD. Bukan
80
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
hanya itu, LCD juga akan berfungsi sebagai indikator yang menandakan
SMS telah dikirim dan SMS terkirim. Jika LCD telah menyelesaikan
fungsinya sebagai indikator SMS telah dikirim LCD akan kembali ke
fungsi utama nya yaitu menampilkan jam, tanggal dan jumlah peserta.
Modul LCD mampu melakukan transfer data melalui 8 jalur data
yaitu (D0-D7) maupun 4 jalur data yaitu (D4-D7) dengan jalur data lain
dibiarkan untuk tidak terkoneksi ke PIN mikrokontroler. Pada pembuatan
alat ini menggunakan mode 4 bit karena LCD difungsikan sebagai write.
Proses pengiriman dan menampilkan data jam, tanggal dan jumlah
peserta dipakai tiga PIN masukan control diantara nya ialah PIN register
select (RS), PIN read/write (R/W) dan PIN enable (E).
Berdasarkan konfigurasi mikokontroler ATMega 16 dan LCD 16x2
yang ditunjukan gambar 3.8 terlihat bahwa LCD dipasang pada port A
ATMega 16 dimulai dari PIN 33 – 40. Jalur pengiriman data
menggunakan mode 4 bit (D4-D7) yang memakai PIN 33 – PIN 36 pada
ATMega 16. PIN Enable yang terhubung pada PIN 38 ATMega 16
berfungsi untuk memulai proses transfer data karakter atau data perintah
pada LCD. Berikut adalah konfigurasi antara ATMega 16 dan modul
LCD.
81
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Gambar 3.8 Konfigurasi ATMega 16 dan LCD 2x16.
Berdasarkan gambar 3.8 PIN R/W yang terhubung pada PIN 39
ATMega 16 berfungsi untuk melakukan perintah membaca dan menulis
data karakter pada LCD. Pada pengaturan contrast dan brightness LCD
bisa diatur dengan menambah komponen berupa resistor trimpot untuk
pengaturannya.
Seperti tampak pada gambar 3.8 di atas maka dapat dilihat bahwa
pengaturan contrast dan brightness dilakukan pada PIN 3 LCD. Dimana
contras voltage akan terhubung ke komponen trimpot yang nantinya akan
difungsikan sebagai contrast dan brightness. Dengan menggunakan
komponen ini, jika ditemukan tampilan pada LCD yang kurang terang
maupun terlalu terang, dapat diatur langsung pada hardware.
82
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
4. Perancangan Rangkaian Mikrokontroler ATMega 16 dan RTC
RTC (Real Time Clock) adalah sistem yang biasa difungsikan
sebagai pengaturan waktu baik jam, hari,tanggal, bulan dan tahun. RTC
akan sangat membantu pada pembuatan alat ini, karena diperlukan
akurasi waktu yang tepat pada saat SMS akan dikirim ke HP panitia.
Bukan hanya itu, RTC juga memiliki kelebihan lain, diantara nya ialah
RTC dapat menyimpan data berupa jam, tanggal, bulan dan tahun.
Seperti pada saat alat dinyalakan, maka jam dan tanggal dari alat
tersebut sudah sama dengan waktu alat dinyalakan. Ini karena RTC
memiliki arus tambahan yang akan tetap memberi pasokan arus ke RTC
sehingga jika alat dimatikan, RTC akan tetap bekerja mengelolah data
berupa jam dan tanggal tersebut. Mode yang dipilih juga beragam bisa
12 ataupun 24 jam dengan format AM dan PM. Seperti fungsinya yang
menampilkan jam, RTC mampu menghitung mulai dari detik, menit, jam,
tanggal, bulan dan tahun dengan format yang telah disebutkan
sebelumnya.
Pada pembuatan alat ini, IC DS1307 atau RTC DS1307
menggunakan teknik I2C yaitu sebuah teknik yang menggunakan dua
jalur untuk keperluan transfer data nya secara seri. Seperti namanya
komunikasi dua jalur maka yang dipergunakan untuk pentransmisian data
hanya dua PIN yaitu SDA untuk data dan SCL untuk sinyal clock.
Berikut merupakan rangkaian konfigurasi mikrokontroler ATMega 16
dengan RTC DS1307 yang dipergunakan pada pembuatan alat ini.
83
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Gambar 3.9 konfigutasi ATMega 16 dan RTC DS1307.
Berdasarkan rangkaian konfigurasi gambar 3.9 RTC diletakan pada
port C dengan memanfaatkan dua PIN yaitu PIN 22 SCL untuk
komunikasi data nya dan PIN 23 untuk SDA yang dipergunakan untuk
membangkitkan sinyal clock. Pada rangkaian RTC ini dilengkapi dengan
beberapa komponen yaitu resistor 1K8Ω dan kristal 32.768 KHz.
5. Perancangan Mikrokontroler ATMega 16 dan Seven Segment
Perancangan seven segment pada alat ini difungsikan sebagai
indikator adanya pertambahan jumlah peserta yang masuk kedalam
ruangan. Selain sebagai indikator seven segment juga dijadikan sebagai
penghitung. Jenis seven segment yang dipergunakan yaitu common
anode, yaitu jenis seven segment dengan logika “1” jika ingin
menyalakan seven segment. Untuk menyalakan seven segment transistor
84
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
difungsikan sebagai saklar. Adapun rangkaian seven segment ditunjukan
oleh gambar berikut.
Gambar 3.10 Rangkaian Konfigurasi ATMega 16 dan Seven Segment.
Berdasarkan rangkaian konfigurasi ATMega 16 dan seven segment,
maka dapat dicari dengan persamaan 2.4, 2.5 dan 2.6. untuk mencari arus
kolektor dapat dipresentasikan dengan persamaan 2.4 :
IC = 𝑉𝑐𝑐
𝑅𝑐 IB
IC = 5 𝑉𝑜𝑙𝑡
330 Ω
IB = 15 Ampere
Dengan diketahuinya nilai arus kolektor maka dapat dicari arus
basisnya dengan persamaan 2.5 :
IB = 𝐼𝑐
ℎ𝑓𝑒 IB
85
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
IC = 15 𝐴
125 IB
IC = 0,12 mA
Dari kedua perhitungan di atas nilai dari hfe merupakan nilai yang
diperoleh dari datasheet transistor BC557. maka dapat dicari nilai dari
resistor basis dengan persamaan 2.6 :
VB = IB x RB +0,6 V
VB = 0,12 mA x 330 Ω +0,6 V
VB = 40,2 Volt
sehingga diperoleh :
RB = RC = 𝑉𝐵−𝑉𝐵𝐸
𝐼𝐵VRB
RB = 40,2 −0,6
0,12
RB = 330 Ω
Jika parameter arus, tegangan basis dan nilai dari resistornya sudah
diperoleh maka dapat dihitung nilai dari tegangan kolektor dan emiter
nya dengan menggunakan persamaan 2.8.
VCE = VCC – IC x RC
VCE = 5 V – 15mA x 330 Ω
VCE = 4,945 Volt
Dari perhitungan di atas dapat diambil kesimpulan bahwa nilai VCE
sama dengan VCC yaitu sebesar 4,945 Volt mendekati 5 Volt.
86
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Maka disipasi daya berdasarkan rumus 2.9 diperoleh :
PD = IC x VCE
PD = 15 mA x 4,945 V
PD = 0,74 watt
6. Perancangan Rangkaian Mikrokontroler ATMega 16 dan RS232
dengan Modem Serial Wavecom.
Perancangan mikrokontroler ATMega 16 dan RS232 adalah sistem
yang akan mengatur komunikasi serial antara mikrokontroler dan modem
serial. Mikrokontroler akan mengirimkan data berupa jam, tanggal dan
jumlah peserta yang masuk dan keluar ke HP panitia yang telah
ditentukan nomernya.
Untuk dapat saling berkomunikasi antara mikokontroler dan
modem diperlukan sebuah IC konverter yaitu IC MAX 232. IC ini
berfungsi untuk mengkonversi tegangan dari kedua perangkat yang tidak
sama yaitu untuk tegangan mikrokontroler 0 – 5 Volt sedangkan modem
+15 – (-15) Volt dengan kondisi seperti ini maka diperlukan sebuah
konverter yang dapat menyamakan tegangan dari kedua perangkat
tersebut. Berikut adalah rangkaian konfigurasi antara mikrokontroler dan
modem.
87
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Gambar 3.11 konfigurasi Mikrokontroler ATMega 16 dan Modem.
Berdasarkan rangkaian konfigurasi gambar 3.11, terlihat bahwa
untuk melakukan komunikasi serial diperlukan beberapa perangkat
seperti ICMAX232 dan juga DB9. Untuk sistem konfigurasi MAX232
dan DB9 dapat dilihat pada datasheet begitu pula dengan nilai dari
komponen elektronika yang dapat membantu kinerja dari perangkat
tersebut.
Untuk menghubungkan IC MAX232 dan mikrokontroler ATMega
16 hanya dipergunakan dua PIN yaitu PIN 14 dan 15. Dimana PIN 14
ialah PIN Rx yang difungsikan untuk menerima data yang memang
sudah tersedia pada mikrokontroler ATMega 16 sedangkan PIN 16 ialah
PIN Tx yang dipergunakan untuk mengirim data. Modem pada perangkat
ini difungsikan sebagai perantara yang dapat menyampaikan SMS ke HP
panitia acara tersebut.
88
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
7. Perancangan Catu Daya
Catu daya merupakan sumber tegangan yang akan men-suplay
seluruh tegangan pada pembuatan alat ini sehingga alat dapat bekerja.
Adapun besar tegangan yang dipergunakan adalah 5 Volt sesuai dengan
tegangan dari keseluruhan perangkat yang dipergunakan. Pada
perancangan sistem catu daya ini terdiri dari beberapa blok bagian
diantaranya ialah transformator yang dipergunakan untuk
mengkonversikan tegangan AC menjadi Tegangan DC, blok rectifier
berfungsi sebagai penyearah arus, blok filter sebagai penyaring tegangan
yang naik turun sehingga dengan adanya filter mampu untuk mengurangi
tegangan ripple, blok regulator berfungsi untuk menghasilkan tegangan 5
Volt yang diperlukan oleh sistem kerja mikrokontroler ATMega 16.
berikut merupakan blok catu daya secara detail yang dipergunakan pada
pembuatan alat pada Tugas Akhir ini.
Gambar 3.12 Rangkaian Catu Daya.
Rangkaian catu daya pada gambar 3.12 merupakan rangkaian yang
akan memberikan tegangan sebesar 5 Volt sehingga dapat
89
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
mengoprasikan keseluruhan rangkaian Mikrokontroler ATMega 16.
Adapun tegangan reference tegangan kerja antar 4,5 Volt – 5,5 Volt.
Pada rangkaian catu daya yang dipergunakan dapat dicari
perhitungan tegangan output ( DCV ) yang dihasilkan penyearah
gelombang penuh tersebut, kemudian oleh IC LM7805 tegangan searah
(VDC) tesebut diubah menjadi tegangan DC 5 volt yang nantinya dapat
dipergunakan untuk men-suplay seluruh tegangan yang diperlukan alat
ini. Pada Tugas Akhir ini menggunakan penyearah gelombang penuh.
Besarnya nilai tegangan DC dapat dicari dengan rumus sebagai berikut:
VDC = 2𝑉𝑝
𝜋
Dimana Vp dapat dicari terlebih dahulu dengan menggunakan
rumus sebagai berikut:
Vp = 𝑉𝑟𝑚𝑠
0,707
Vp = 6
0,707
Vp = 8,487 Volt
Setelah Vp = 8,487 Volt dimasukan ke persamaan sebelumnnya
yaitu :
VDC = 2𝑉𝑝
𝜋
VDC = 2 𝑥 8,487
3,14
VDC = 5,41 Volt
90
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Dari perhitungan di atas maka diperoleh nilai VDC dari penyearah
sebesar 5,41 V dan tegangan ini akan dikelolah LM7805 menjadi
tegangan yang dibutuhkan perangkat yaitu 5 Volt. tegangan 5 Volt
merupakan tegangan yang diharapkan untuk memasok tegangan
perangkat walaupun tegangan 5 Volt jarang diperoleh. Namun
berdasarkan datasheet dari mikrokontroler ATMega 16 dapat beroprasi
pada range tegangan 4,5 Volt – 5,5 Volt.
Jika tegangan DC sudah diperoleh maka dapat dihitung tegangan
ripple dari rangkain catu daya yang dipergunakan dengan menggunakan
persamaan 2.7 pada bab dua.
VDC = 𝑣𝑜𝑢𝑡 − 𝑉𝑟𝑖𝑝
2
5,41 = 8,487 − 𝑉𝑟𝑖𝑝
2
𝑉𝑟𝑖𝑝
2 = 8,487 − 5,41
𝑉𝑟𝑖𝑝
2 = 3,077
Vrip = 2 x 3,077
Vrip = 6,154 Volt
Bila tegangan ripple sudah diperoleh maka dapat dicari nilai dari
kapasitor yang akan dipergunakan untuk mengurangi ripple yang
terdapat pada rangkaian catu daya dengan menggunakan persamaan 2.8
pada bab dua yang sudah dibahas sebelumnya dan berikut merupakan
hasil perhitungan kapasitor.
91
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Vrip = 1
𝑓 𝐶
6,154 = 1
100 𝑥 𝐶
615,4 x C = 1
C = 1
615,4
= 0,001624 Farad
= 1,624 mF
= 1624 µF
Berdasarkan hasil perhitungan tersebut dapat disimpulkan untuk
dapat membuang tegangan ripple sebesar 6,154 Volt sehingga
menghasilkan tegangan keluaran sebesar 5 Volt diperlukan kapasitor
dengan nilai 1624µF pada praktik nya nilai tersebut di bulatkan menjadi
2000 µF, di karenakan di pasaran tidak terdapat nilai kapasitor 1624µF
maka dipergunakan kapasitor dengan nilai 1000µF. Sehingga untuk
memenuhi kebutuhan catu daya dipergunakan kapasitor sebanyak dua
buah.
8. Rangkaian Sistem Keseluruhan
Berikut adalah perancangan rangkaian sistem keseluruhan pada
pembuatan Tugas Akhir alat penghitung jumlah peserta di dalam ruangan
menggungkan sensor infra merah berbasis mikrokontroler Atmega 16
dengan SMS sebagai report.
92
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
C. PERANCANGAN DAN PEMBUATAN PROGRAM
Pembuatan software pada alat penghitung jumlah peserta di dalam
ruangan menggunakan sensor infra merah berbasis mikrokontroler ATMega
16 dengan SMS sebagai report dimulai dari pembuatan flowchat, pembuatan
program tampilan di LCD seperti jam, tanggal dan jumlah peserta di dalam
ruangan, program tampilan seven segment, program komunikasi serial dan
pembuatan program interupsi yang dipergunakan untuk kerja dari sensor.
untuk membuat program pada alat ini dipergunakan bahasa C. Aplikasi yang
dipergunakan untuk membuat program pada Tugas Akhir ini adalah Code
Vision AVR C Compiler aplikasi ini mampu yang merancang dan membuat
program sehingga alat dapat berfungsi seperti yang diinginkan dan eXtreme
Burner – AVR yang dimanfaatkan untuk mengunduh program yang telah
dibuat sehingga program dapat di-input ke dalam mikrokontroler.
1. Code Vision AVR C Compiler sebagai Program Mikrokontroler
ATMega 16
Code Vision AVR C Compiler ialah alat bantu yang dipergunakan
untuk memprogram bahasa C. Dengan memanfaatkan aplikasi ini akan
mempermudah kerja dalam lingkungan perkembangan perangkat lunak
seperti pembuatan program alat penghitung jumlah peserta di dalam
ruangan ini. Code Vision AVR C Compiler ini dilengkapi dengan source
code editor, compiler, linker dan dapat memanggil ATMel AVR Studio
untuk debugger nya. Pemrograman dengan menggunakan Code Vision
93
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
AVR C Compiler terbilang mudah, karena terdapat beberapa aplikasi
bantuan yang akan mempermudah proses pemrogramman seperti
memanfaatkan fasilitas Run The Codewizardavr Automatic Program
Generator . Berikut tampilan awal dari Code Vision AVR C
Compiler.
Gambar 3.15 Tampilan awal Code Vision AVR C Compiler.
Berikut ialah beberapa aplikasi dari Run The Codewizardavr
Automatic Program Generator yang dapat dipergunakan untuk
mempermudah pemrograman. Selain itu, pada Code Vision AVR C
Compiler terdiri dari beberapa struktur proyek dan file, seperti file source
(*.c), file project (*.Prj) dan file projek codewizard (*.cwp). pada proses
pembuatan program source merupakan sumber dari project, di dalam
satu source dapat diisi dengan beberapa project. Dengan adanya fasilitas
ini akan mempermudah pemrograman karena untuk membuat banyak
program tidak diperlukan banyak source.
94
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Gambar 3.16 Aplikasi Menu Run The Codewizardavr Automatic
Program Generator.
Dengan memanfaatkan aplikasi ini, akan mempermudah proses
pemrograman karena aplikasi ini akan membuat library secara otomatis,
alamat-alamat port yang dipergunakan pada pembuatan alat.
2. AT Command
AT Command dapat dipergunakan untuk menginstruksikan perintah
mengirim SMS seperti yang akan dilakukan alat agar dapat mengirimkan
data yang diperoleh. Untuk dapat mengirim SMS ke seluruh HP panitia
yang telah ditentukan sebelumnya dipergunakan sebuah perintah
AT+CMGS. Ini merupakan perintah untuk mengirim SMS. Adapun
format pengiriman SMS dengan menggunakan AT+CMGS (“Nomer
Tujuan”) dilanjutkan dengan isi SMS yang akan dikirimkan. Selain itu
AT Command juga dapat dipergunakan untuk melakukan uji coba
terhadap modem yang dipergunakan dalam keadaan baik atau tidak.
95
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Untuk dapat melakukan ini dapat dipergunakan sebuah aplikasi yaitu
hyperterminal.
Gambar 3.17 Uji Coba Modem Dengan Hyperterminal.
Untuk dapat melakukan ini hanya diperlukan untuk membuka
hyperterminal dan pasangkan modem pada komputer atau laptop yang
dipergunakan untuk uji coba modem. “AT” pada hyperterminal
merupakan perintah untuk uji coba modem, jika muncul “OK” ini
menandakan modem yang akan dipergunakan dalam keadaan bagus.
3. Alur dan Penjelasan Program
Alur program dari alat yang menggunakan aplikasi infra merah
untuk menghitung jumlah peserta di dalam ruangan berbasis
mikrokontroler ATMega 16 dengan SMS sebagai report ialah
menggunakan bahasa C dengan dibantu software Code Vision AVR C
Compiler dan eXtreme Burner – AVR untuk mengunduh program
kedalam mikrokontroler. Rancangan alur program dari alat ini dapat
dilihat pada flowchart di bawah ini.
96
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Gambar 3.18 Flowchart Program.
97
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Berdasarkan flowchart pembuatan program, maka ketika program
sudah dimulai dengan inisialisasi RTC yaitu dengan memberikan alamat
sumber dari RTC, selanjutnya inisialisasri LCD sehingga LCD dapat
menampilkan jam, tanggal dan jumlah peserta. Untuk jam dan tanggal
yang ditampilkan bersumber dari RTC yang sudah lebih dahulu
diinisialisasi.
Pada Tugas Akhir ini LCD difungsikan sebagai display yang akan
menampilkan waktu di mana alat mulai dinyalakan. Selain waktu LCD
juga difungsikan sebagai display yang menampilkan jumlah peserta yang
sudah datang. Untuk peletakan sensor infra merah, diletakan pada fungsi
interupsi yang dimiliki oleh mikrokontroler ATMega 16. Adapun
interupsi yang dipergunakan adalah INT0 dan INT1. Interupsi merupakan
suatu kondisi dimana CPU berhenti mengerjakan program utama. Dan
melayani program khusus yaitu program yang dipergunakan untuk
sensor. Jika program khusus sudah selesai dikerjakan, maka CPU akan
kembali mengerjakan program utama. Pada saat proses interupsi terjadi
pada sensor masuk, maka sensor akan memberikan logika “0” ke
mikrokontroler dan mikrokontroler akan mengelolah logika tersebut
menjadi arus sebesar 5 Volt yang akan dipergunakan untuk menyalakan
segment pada seven segment yang dipergunakan sebagai indikator adanya
peserta yang datang. Hal ini juga sama dengan proses interupsi pada
sensor keluar, hanya saja logika yang diperikan “1” dan menghasilkan 0
Volt tegangan sehingga tidak dapat menyalakan segment.
98
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Waktu yang diprogram pada alat difungsikan sebagai akurasi dari
pengririman SMS yang akan dilakukan. Ada tiga kondisi SMS dikirim.
Di antaranya adalah kondisi normal yaitu kondisi di mana jumlah peserta
yang datang masih dalam daya tampung ruangan sehingga SMS akan
dikirim sepuluh menit sekali ke seluruh HP panitia yang telah ditentukan
sebagai receiver. Selain kondisi normal ada kondisi ruangan full yaitu
kondisi di mana ruangan sudah penuh, yaitu mencapai 500 orang seperti
yang telah ditentukan pada rencana rancangan. SMS akan dikirim pada
kondisi ini dengan mengabaikan asumsi waktu yang telah ditentukan.
Dan terakhir merupakan kondisi ruangan over capacity yaitu ruangan
sudah melebihi dari 500, pada rencana rancangan ruangan dianggap
sudah melebihi kapasitas nya yaitu 501 dan SMS akan dikirim dengan
mengabaikan asumsi waktu yang telah ditentukan.
a) Program Inisialisasi Fungsi RTC dan LCD
Program inisialisasi fungsi RTC dan LCD merupakan program
yang akan memberikan alamat PIN yang dipergunakan untuk
meletakan RTC dan LCD. Sebelum membuat program inisialisasi
fungsi RTC dan LCD terlebih dahulu akan dilakukan pembuatan
library untuk mikrokontroler ATMega16. Adapun bentuk dari
pembuatan library dari mikokontroler ATMega 16 adalah sebagai
berikut.
99
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
#include <mega16.h> // Mega16 dapat diganti sesuai dengan
jenis mikro yang dipergunakan.
Jika pembuatan library telah dilakukan maka dapat
melanjutkan dengan membuat program penginisialisasian RTC dan
LCD. Adapun bentuk dari pemrograman tersebut adalah sebagai
berikut.
#include <mega16.h>// library mikrokontroler ATMega16
#include <delay.h>// header membuat waktu tunda.
#include <stdio.h> // standar untuk memanggil fungsi
pustaka
// I2C Bus functions
#asm // code assembly standar Code Vision.
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h> // sistem komunikasi bawaan dari IC
RTC.
// DS1307 Real Time Clock functions
#include <ds1307.h> // Membuat library RTC
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
Pada listing program di atas, terlihat beberapa alamat di
antaranya ialah pengalamatan RTC yang menggunakan 0x15 atau
PORTC sebagai input dari RTC. Selain itu perlu diketahui letak dari
100
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
PIN SDA untuk data dan PIN SCLuntuk sinyal clock pada RTC
diletakan pada PORT C0 dan PORT C1 ini merupakan standar untuk
melakukan pemrograman RTC. Sedangkan 0x1B atau PORTA
merupakan alamat dari LCD dipasangkan pada mikrokontroler
ATMega16.
b) Program Pendeklarasian Inisialisasi Variabel yang dipergunakan
Pada pembuatan program ini berisikan variabel apa saja yang
akan dipergunakan untuk pembuatan program alat. Variabel harus
mempunyai nama supaya suatu program dapat menggunakan nilai
yang tersimpan di dalamnya, Nama dari variabel dapat dibentuk
sendiri oleh pembuat program sesuai dengan kententuan nama
pengenal. Variabel belum dapat dipergunakan di dalam program
sebelum dideklarasian terlebih dahulu.[10] Dan berikut merupakan
program yang berisikan variabel yang dipergunakan.
// Declare your global variables here
Unsignedchar
h,m,s,d,t,y,f_kirim,i,menit,ruangan_penuh;
char buffer[16];
charangka[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0
x82,0xF8,0x80, 0x90};
unsigned int rat,pul,sat,jumlah,masuk,keluar;
101
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Berdasarkan listing program di atas variabel yang
dipergunakan merupakan konstanta numerik interger. Ini merupakan
nilai numerik bilangan bulat. Sesuai dengan tipe data nya konstanta
numerik interger nya. Yang mana pada pembuatan program ini
dipergunakan beberapa tipe data di antaranya unsigned char, char
dan unisigned int. Penggunaan tipe data ini berdasarkan jangkauan
nilai masing-masing tipe nya. Seperti unsigned char dapat
menjangkau 0 – 255, char -128 – 128 dan unisigned int 0 – 65535.
Dari menggunakan ketiga tipe data ini, sudah dapat memenuhi
semua karakteristik angka yang dipergunakan.
c) Pembuatan Inisialisasi Seven Segment dan Fungsi Seven Segment
Pada program ini berisikan alamat dari PIN – PIN yang
diperggunakan seven segment, baik berupa PIN input maupun PIN
output nya. Berikut merupakan program dari inisialisasi seven
segment dan Fungsi seven segment.
#include <mega16.h>
#include <delay.h>
charangka[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0
x82,0xF8, 0x80,0x90};//bentuk heksa dari 0–9.
unsigned int rat,pul,sat,jumlah; // variabel yang
dipergunakan
//------menampilkan angka ke 7 segment-----
102
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
void display_7segment()// merupakan fungsi utama dari
7segment
{
PORTB=angka[rat]; // input tampilkan ratusan
PORTD=0B01100000; // output
//delay_ms(3); // delay dipergunakan “3” bukan ketentuan
PORTB=angka[pul]; //input tampilkan puluhan
PORTD=0B10100000;// output
//delay_ms(3);
PORTB=angka[sat]; //input tampilkan satuan
PORTD=0B11000000;
//delay_ms(3);
}
void main(void)
{
DDRA=0xFF;
DDRB=0xFF;
PORTD=0xFF;
DDRD.5=1;
DDRD.6=1;
DDRD.7=1;
while (1)
{
display_7segment();
rat=jumlah/100;
pul=(jumlah%100)/10;
sat=(jumlah%100)%10;
};
}
103
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Berdasarkan listing program di atas untuk membuat program
seven segment, diharuskan untuk mendeklarasikan variabel yang
dipergunakan. ini akan mempermudah untuk pemanggilan variabel
yang dipergunakan. seven segment menggunakan dua PORT
mikrokontroler untuk dapat beroprasi di antara nya adalah PORTB
dan PORTD. PORTB merupakan masukan dari seven segment
sedangkan PORTD ialah output dari seven segment tersebut.
sedangkan PORTD=0xFF merupakan logika data yang dipergunakan
yaitu low data. sedangkan DDRA=0xFF dan DDRB=0xFF
merupakan alamat yang menjadi arah data akan dikirim.
display_7segment rat, pul dan sat merupakan bentuk pengoprasian
yang hasil nya dapat dipergunakan untuk operasi seven segment.
d) Pembuatan Program Menampilkan Fungsi RTC Ke LCD.
Setelah melakukan inisialisasi fungsi RTC maka selanjutnya
menampilkan fungsi RTC tersebut ke LCD. Ini merupakan program
yang akan menampilkan waktu dan jumlah peserta yang datang ke
LCD. Adapun bentuk program dari RTC ke LCD adalah sebagai
berikut:
#include <mega16.h>
#include <delay.h>
#include <stdio.h>
// I2C Bus functions
104
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTC
#endasm
#include <lcd.h>
// Declare your global variables here
unsigned char h,m,s,d,t,y;
char buffer[16];
Listing program di atas, merupakan inisialisasi dari fungsi
RTC ke LCD agar jam dan tanggal dapat muncul pada LCD.
void main(void)// fungsi utama program RTC
{
// I2C Bus initialization// komunikasi bawaan IC.
i2c_init();// inisialisasi komunikasi RTC.
rtc_init(0,0,0);
//rtc_set_time(11,20,15);
//rtc_set_date(7,7,12);
delay_ms(100); // delay waktu, tidak terlalu presisi.
lcd_init(16);//16 merupakan jenis LCD yang dipergunakan.
lcd_clear(); // menghapus tulisan pada LCD.
105
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
while (1) // perintah untuk mengulang.
{
// Place your code here
rtc_get_date(&d,&t,&y);
rtc_get_time(&h,&m,&s);
sprintf( buffer,"%d/%d/%d",d,t,y);
lcd_gotoxy(0,0);// perintah untuk pindah dari
baris x ke y dan sebalik nya
lcd_puts(buffer);// perintah menapilkan hasil
yang dideklarasikan dengan
variabel buffer.
sprintf( buffer,"%d:%d:%d",h,m,s);
lcd_gotoxy(0,1);
lcd_puts(buffer);
}
};
Dari listing program di atas dipergunakan salah satu operator
unary. Operator unary merupakan operator yang hanya
menggunakan sebuah operand saja atau bandingkan dengan operator
operator yang lainya yang menggunakan dua buah operand.[10]
Adapun bentuk operand yang dipergunakan adalah “&” merupakan
operand yang menghasilkan alamat memori operand atau operator
pointer. ”%d” merupakan kode format untuk fungsi menampilkan
nilai desimal integer.
//rtc_set_time(11,20,15) dan //rtc_set_date(7,7,12); merupakan
setting waktu yang diatur. Time merupakan waktu awal jam diatur,
sedangkan date merupakan tanggal awal diatur. Jika suatu saat jam
106
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
dan tanggal mengalami keterlambatan atau error, dapat dilakukan
setting ulang dengan menggunakan code vision. Pada saat proses
setting, tanda “//” dihilangkan terlebih dahulu dan kemudian di
compile. Jika sudah tanda “//” akan kembali diaktifkan dan
kemudian di compile. “//” difungsikan untuk meng - non aktifkan
fungsi RTC set agar pada saat alat mulai dinyalakan lagi, program
ini tidak akan dieksekusi oleh mikrokontroler.
e) Program Mengaktifkan Interupsi Untuk Sensor Infra Merah Baik
Pintu Masuk Maupun Pintu Keluar.
Interupsi merupakan sebuah sistem yang disediakan oleh
mikokontroler ATMega16. Interupsi merupakan sebuah kondisi di
mana sebuah CPU berhenti dari program rutin yang sedang
dijalankan untuk melayani perogram khusus atau rutin khusus. Jika
CPU sudah selesai mengerjakan rutin khusus tersebut, maka CPU
akan kembali mengerjakan rutin utama yang terhenti karena adanya
interupsi. Berikut merupakan program interupsi yang dipergunakan
pada alat ini. Adapun interupsi yang dipergunakan untuk program ini
adalah INT0 untuk pintu masuk dan INT1 untuk pintu keluar yang
nantinya akan mempermudah proses penghitungan jumlah peserta
yang datang.
#include <mega16.h>
#include <delay.h>
107
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
// Declare your global variables here
unsigned char
h,m,s,d,t,y,f_kirim,i,menit,ruangan_penuh;
char buffer[16];
charangka[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0
x82,0xF8,0x80,0x90};
unsigned int rat,pul,sat,jumlah,masuk,keluar;
void main(void)
{
DDRA=0xFF;
DDRB=0xFF;
PORTD=0xFF;
#asm("sei")
}
void display_7segment()
// ------ pintu masuk
interrupt [EXT_INT0] void ext_int0_isr(void)//
program interupasi.
{
GICR=0b10000000;//int0 OFF
//delay_ms(250); //delay anti bounching, bisa
disesuaikan jika menggunakan sensor
yang bagus.
for(i=0;i<20;i++)
{
display_7segment();
}
jumlah++; //jumlah ditambah 1
sprintf( buffer,"jml=%d ",jumlah);
lcd_gotoxy(8,0);
lcd_puts(buffer);
108
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
GICR=0b11000000;//int0 ON
}
//-------pintu keluar
interrupt[EXT_INT1]void ext_int1_isr(void)
//program interupsi.
{
GICR=0b01000000;//int0 OFF
//delay_ms(250); //delay anti bounching, bisa disesuaikan
for(i=0;i<20;i++)
{
display_7segment();
}
if(jumlah>0)
{
jumlah--; // jumlah dikurangi 1 ini untuk menghindari
jika pada saat kondisi 0, down tertekan.
sehingga mengakibatkan muncul nya nilai
minus ataupun nilai lebih dari 500.
}
GICR=0b11000000;//int0 ON
sprintf( buffer,"jml=%d ",jumlah);
lcd_gotoxy(8,0);
lcd_puts(buffer);
}
GICR=0b11000000; //interupsi ekst 0 & 1 aktif
MCUCR=0x00; //low level
};
}
Pada listing program terdapat #asm("sei") Ini perintah untuk
mengaktifkan sistem interupsi. Kode tersebut adalah kode assembly,
109
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
ini merupakan sebuah kode untuk membuat program dari
CodeWizard dan mengaktifkan interupsi secara otomatis akan tampil
kode tersebut. Sedangkan GICR=0b11000000 GICR adalah register
untuk mengaktifkan interupsi eksternal. Bit ke 7 jika diisi “1” maka
interupsi eksternal 1 aktif, jika diisi “0” maka tidak aktif. Bit ke 6
jika diisi “1” maka interupsi eksternal 0 aktif, jika diisi “0” maka
tidak aktif. Dan MCUCR=0x00 Ini register untuk menentukan
kondisi sinyal ada interupsi eksternal. Jika isinya “0” maka kondisi
yang dipilih adalah “LOW LEVEL”, artinya begitu ada sinyal LOW
pada PIN interupsi eksternal akan terjadi interupsi.
f) Program Inisialisasi Komunikasi Serial dan Pengiriman SMS.
Program ini merupakan program yang akan mengirimkan SMS
ke seluruh HP receiver yang telah ditentukan. Sebelum membuat
program ini, diharuskan untuk memberikan alamat dari komunikasi
serial. Di mana untuk nilai baud rate yang dipergunakan untuk
komunikasi serial ini adalah 9600. Untuk membuat program kirim
SMS ini menggunakan AT Command. Karena alat ini hanya
difungsikan sebagai pengirim SMS maka bentuk AT Command yang
dipakai adalah AT+CMGS. Ini adalah perintah untuk mengirim
SMS. Adapun struktur untuk pengiriman SMS ini ialah AT+CMGS
(No tujuan SMS akan dikirim) untuk lebih jelas nya dapat dilihat
pada program berikut.
110
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
#include <mega16.h>
#include <delay.h>
#include <stdio.h>
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functi ons
#include <ds1307.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTC
#endasm
#include <lcd.h>
// Declare your global variables here
Unsigned char h,m,s,d,t,y,f_kirim,i,menit,
ruangan_penuh;
char buffer[16];
charangka[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0
x82,0xF8,0x80,0x90};
unsigned int rat,pul,sat,jumlah,masuk,keluar;
Listing program di atas ialah penginisialisasian dari RTC dan
LCD ini dipergunakan karena pengiriman SMS berpatokan pada
waktu yang tertera pada LCD. Dan LCD juga sebagai indikator SMS
sedang dikirim dan SMS terkirim.
111
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
//---------fungsi kirim sms
void send_sms()
{
#asm("cli")
delay_ms(2000);
printf("AT+CMGS=085270994452\r\n");
//----nomor HP tujuan : 085270994452, bisa ganti yang lain
//printf("085270994452\r\n");
//----- tunggu 700 ms
delay_ms(1000);
//----- isi sms yang dikirim
printf("REPORT SEMINAR NASIONAL AKATEL");
printf("\r\n");
printf("Jam=%d:%d:%d WIB",h,m,s);
printf("\r\n");
printf("Tanggal=%d-%d-%d ",d,t,y);
printf("\r\n");
printf("Jumlah Peserta=%d Orang",jumlah);
//printf("Tes Kirim SMS");
//----- kode akhiran untuk perintah kirim sms
putchar(26);
printf("\r\n");
delay_ms(1000);
//----- tunggu 1 detik
lcd_clear();
lcd_putsf("Terkirim...");
delay_ms(2000);
#asm("sei");
}
112
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Listing program di atas ialah program dari AT Command. Di
karenakan alat hanya mengirim SMS maka kode yang dipakai adalah
AT+CMGS. Setelah kode ini diinisialisasi pada program pengiriman
SMS maka dapat dilanjukan dengan meng-input isi SMS yang akan
dikirim ke nomer tujuan yang telah ditentukan. printf("\r\n") adalah
kode yang dipakai untuk memunculkan karakterisrik enter pada hasil
SMS yang akan dikirim. Untuk delay yang dipergunakan tidak
presisi, sehingga dapat diganti.
//----- kode akhiran untuk perintah kirim sms
putchar(26);
printf("\r\n");
delay_ms(1000);
//----- tunggu 1 detik
lcd_clear();
lcd_putsf("Terkirim...");
delay_ms(2000);
#asm("sei");
*/
Listing program di atas ialah program yang dipakai sebagai
indikator SMS terkirim. Indikator ini akan muncul pada LCD,
sehingga pada saat SMS sudah terkirim maka tulisan terkirim pada
LCD akan terhapus dan kembali memunculkan waktu dan jumlah
peserta yang telah datang.
113
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
void send_sms_warning()
{
#asm("cli")
delay_ms(200);
printf("AT+CMGS=085270994452\r\n");
delay_ms(1000);
printf("WARNING !!!!!!!");
printf("\r\n");
printf("Room is Over Capacity");
putchar(26);
printf("\r\n");
delay_ms(2000);
lcd_clear();
lcd_putsf("SMS terkirim");
delay_ms(2000);
#asm("sei");
Listing program di atas ialah program yang dipergunakan
untuk mengirim SMS yang menandakan ruangan sudah penuh. Pada
program tersebut terdapat #asm("cli") ini adalah tanda yang dipakai
untuk mematikan fungsi integer. Karena pada program pengiriman
SMS fungsi interger tidak dipergunakan. sifat dari tanda tersebut
sementara dan bersifat lokal, hanya pada program tersebut.
}
void main(void)
{
// USART Baud rate: 9600
UCSRA=0x00;
114
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
USART ialah alamat dari komunikasi serial alat ini, untuk
dapat memperoleh alamat ini mudah, dapat menggunakan fasilitas
Run The Codewizardavr Automatic Program Generator yang
tersedia pada Code Vision.
//send_sms();
delay_ms(1000);
lcd_gotoxy(8,0);
lcd_putsf("jml=0");
#asm("sei")
rtc_get_time(&h,&m,&s);
menit=m;
menit=menit+3;
if(menit>=60)
{
menit=menit-60;
}
while (1)
{
// Place your code here
rtc_get_date(&d,&t,&y);
rtc_get_time(&h,&m,&s);
sprintf( buffer,"%d/%d/%d ",d,t,y);
lcd_gotoxy(0,0);
115
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
lcd_puts(buffer);
sprintf( buffer,"%d:%d:%d ",h,m,s);
lcd_gotoxy(0,1);
lcd_puts(buffer);
rat=jumlah/100;
pul=(jumlah%100)/10;
sat=(jumlah%100)%10;
for(i=0;i<50;i++)
if((jumlah>=500)&&(f_kirim==0)) // program
SMS dikirim jika jumlah pengujung sudah mencapai
500.
{
lcd_clear();
lcd_putsf("send sms");
send_sms();
f_kirim=1;// variabel yang dipergunakan.
delay_ms(2000);
}
if((jumlah>=501)&&(ruangan_penuh==0))//
program SMS dikirim jika jumlah peserta sudah
melebihi dari yang telah ditentukan.
{
lcd_clear();
lcd_putsf("send sms");
send_sms_warning();
ruangan_penuh=1;
delay_ms(2000);
}
if((menit==m)&&(s<=2))// program pengiriman SMS
selama sepuluh menit
sekali.
116
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
{
lcd_clear();
lcd_putsf("send sms");
send_sms();
s=1;
delay_ms(2000);
menit=menit+3;
if(menit>=60)// program pengiriman SMS selama
sepuluh menit sekali.
{
menit=menit-60;
}
};
}
}
Listing program di atas ialah program kondisi SMS akan
dikirim ke HP receiver, mulai dari kondisi normal yaitu SMS yang
dikirim sepuluh menit sekali, SMS yang dikirim pada saat jumlah
pengunjung sudah mencapai 500 seperti jumlah yang telah
ditentukan pada rencana rancangan sebelumnya dan kondisi terakhir
merupakan kondisi di mana peserta sudah melebihi dari jumlah yang
telah ditentukan yaitu 501. Pada kondisi ini, SMS akan dikirim ke
semua HP panitia yang telah ditentukan dengan mengabaikan asumsi
waktu yang telah di tentukan sebelumnya.
117
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
4. Melakukan Compile Program pada Code Vision.
Melakukan compile program bertujuan untuk menghasilkan
program dengan ekstensi *.hex. Program dengan ekstensi ini merupakan
program yang akan diunduh ke dalam alat dengan menggunakan software
download mikrokontroler dan menggunakan alat yang disebut dengan
downloder. Berikut merupakan cara yang dapat dilakukan untuk
memperoleh program *.hex.
a) Klik tombol make the project yang terdapat pada toolbar. Jika sudah
dilakukan maka akan muncul jendela baru yang akan menunjukan
jika terdapat kesalahan pada program yang sudah dibuat. Jika pada
jendela baru tersebut tidak terdapat error, maka program dapat
lansung diunduh ke alat. Adapun bentuk dari jendela baru tersebut
adalah sebagai berikut.
Gambar 3.18 Jendela Compile Code Vision.
118
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
b) Dari jendela tersebut, dapat diketahui jika program masih terjadi
error. Dan error tersebut akan ditampilkan oleh Code Vision.
Dengan meng-klik error tersebut, akan ditunjukan kesalahan –
kesalahan dari program yang telah dibuat.
5. Download Program ke ATMega16
Untuk dapat memasukan program yang telah dibuat diperlukan
sebuah alat yang disebut dengan downloader. Sedangkan untuk
membuat downloader dapat bekerja sebagaimana fungsinya. Pada
pembuatan alat ini, dipergunakan software yaitu eXtreme Burner – AVR.
untuk dapat menggunakan software ini pertama – tama diharuskan untuk
memilih tipe mikrokontroler yang dipergunakan. Di mana pada
pembuatan alat ini dipergunakan mikrokontroler ATMega16. Untuk
dapat melakukan ini, pilih menu chip yang terdapat pada toolbar dan
pilih Mikro16.
Gambar 3.19 Tampilan awal eXtreme Burner – AVR.
119
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Tool open pada toolbar dipergunakan untuk membuka file yang
akan diunduh. Program yang diunduh ke dalam mikokontroler
merupakan program dengan ekstensi *.hex. Bila program berhasil
dibuka, maka tabel yang berisikan FFFF akan terisi dengan kode-kode
dari program yang telah diunduh. Karena program akan diunduh kedalam
mikokontroler, maka pilih write flash pada menu toolbar untuk mencatan
semua program kedalam mikrokontroler.
120
Tugas Akhir BAB III Perancangan Dan Pembuatan Sistem
AKATEL Sandhy Putra Purwokerto D309052
Gambar 3.13 Rangkain Sistem Keseluruhan.