Anda di halaman 1dari 13

Analisa System SMS Gateway dengan Tiga Sensor

1. Mikrokontroler AVR
Arsitektur

mikrokontroler

jenis

AVR (Alf and Vegard RISC)

pertama kali

dikembangkan pada tahun 1996 oleh dua orang mahasiswa Norwegian Institute of
Technology yaitu Alf-Egil Bogen dan Vegard Wollan. Mikrokontroler AVR kemudian
dikembangkan lebih lanjut oleh Atmel. Seri pertama AVR yang dikeluarkan adalah
mikrokontroler 8 bit AT90S8515, dengan konfigurasi pin yang sama dengan mikrokontroler
8051, termasuk address dan data bus yang termultipleksi.

Mikrokontroler AVR menggunakan teknologi RISC (Reduced

Instruction

Set

Computer) dimana set instruksinya dikurangi dari segi ukurannya dan kompleksitas mode
pengalamatannya. Pada awal era industri komputer, bahasa pemrograman masih menggunakan
kode mesin dan bahasa assembly. Untuk mempermudah dalam pemrograman para desainer
komputer kemudian mengembangkan bahasa pemrograman tingkat tinggi yang mudah
dipahami manusia. Namun akibatnya, instruksi yang ada menjadi semakin komplek dan
membutuhkan lebih banyak memori. Dan tentu saja siklus eksekusi instruksinya menjadi
semakin lama. Dalam AVR dengan arsitektur RISC 8 bit, semua instruksi berukuran 16 bit dan
sebagian besar dieksekusi dalam 1 siklus clock. Berbeda dengan mikrokontroler MCS-51 yang
instruksinya bervariasi antara 8 bit sampai 32 bit dan dieksekusi selama 1 sampai 4 siklus
mesin, dimana 1 siklus mesin membutuhkan 12 periode clock.

Dalam perkembangannya, AVR dibagi menjadi beberapa varian yaitu AT90Sxx,


ATMega, AT86RFxx dan ATTiny. Pada dasarnya yang membedakan masing-masing varian
adalah kapasitas memori dan beberapa fitur tambahan saja.

2. Central Processing Unit (CPU)


Unit pemrosesan pusat (Central Processing Unit, CPU) Terdiri dari dua unit yaitu unit
pengendali (Control Unit, CU) dan unit aritmatika dan logika (Aritmetic and Logical Unit,
ALU). Unit aritmatika dan logika melaksanakan operasi aritmatika untuk data yang melaluinya.
Fungsi aritmatika yang lazim termasuk logika AND, logika OR dan Operasi pergeseran.
Fungsi utama sebuah unit pengendali adalah mengambil, mengkode dan melaksanakan
urutan instruksi sebuah program yang tersimpan dalam memori. Unit pengendali mengatur
urutan operasi sebuah sistem. Khususnya unit ini menghasilkan dan mengatur sinyal pengendali
yang diperlukan untuk mensinkronkan seluruh operasi sebuah sistem, selain itu juga aliran data
dan instruksi program di dalam dan di luar ALU.

3. Memori
Setiap sistem mikrokontroler memerlukan memori untuk dapat menyimpan program dan
data. Pada mikrokontroler sendiri sudah terdapat memori data dan memori program, ada
beberapa tingkatan memori diantaranya adalah register internal, memori utama dan memori
masal. Register internal adalah memori di dalam ALU. Waktu akses register ini sangat cepat
umumnya kurang dari 100ns.
Ada dua tipe logika memori, tergantung dari kemungkinan aksesnya, yaitu yang dihubungkan
secara acak ( Random Access Memory, RAM) yang bisa dibaca atau ditulisi, dan memori yang
hanya untuk dibaca saja (Read Only Memory, ROM). Dalam mikrokontroler, RAM itu disebut

sebagai memori data (Data Memory), sedangkan ROM dikenal sebagai memori program
(Program Memory). Random Access Memory (RAM) adalah memori yang dapat dibaca atau
ditulisi. Data dalam RAM akan terhapus (volatile) bila catu daya dihilangkan. Karena sifat RAM
yang volatile, maka program mikrokontroler tidak tersimpan dalam RAM. RAM hanya
digunakan untuk menyimpan data secara sementara. Terdapat dua teknologi yang dipakai untuk
membuat RAM yaitu RAM Statik dan RAM Dinamik. Dalam RAM statik satu bit informasi
tersimpan dalam sebuah flip-flop. RAM statik tidak memerlukan penyegar dan penangannya
tidak terlalu rumit. Isi RAM tetap selama catu daya diberikan. Sedangkan RAM Dinamik
menyimpan bit informasi sebagai muatan. Sel memori elementer dibuat dari kapasitansi gerbang
substrat transistor MOS.

4. Input/Output
Input/output diperlukan untuk berkomunikasi dengan dunia luar. Modul masukan
menyediakan informasi bagi ALU atau memori. Alat masukan yang khas seperti keyboard
(keypad) atau sensor (transducer). Modul keluaran menyajikan data yang datang dari ALU atau
melaksanakan perintah-perintah. Modul keluaran yang khas adalah printer, satu set lampu, atau
mekanisme pengendali motor stepper, relay, LED ( Ligh Emmitting Diode), atau LCD (Liquid
Crystal Display). Dalam mikrokontroler ATmega328 terdapat input output atau yang disebut pin
mapping seperti ditunjukkan gambar berikut ini :

5. Arsitektur Mikrokontroler ATmega328

Mikrokontroler ATmega328 bekerja dengan level tegangan TTL, dalam hal ini digunakan
tegangan sebesar 5 volt. Semua port yakni digital pin 0 samapi dengan 13 dan pin analog 0
sampai 5 bersifat bi-directional I/O dengan internal pull-up.
Untuk membangkitkan frekuensi kerja pada perancangan ini menggunakan osilator
kristal sebesar 16 MHz. Berdasarkan data sheet ATmega328 besar nilai kapasitor yang
digunakan harus berada pada 33 + 10 pF, pada perancangan ini digunakan kapasitor 22 pF.
Dengan demikian maka dapat dihasilkan waktu mendekati 1 mikrodetik setiap satu siklus mesin.
Reset (Pin 1) bekerja pada saat berlogika tinggi, transisi logika dari rendah ke tinggi akan
mereset sistem minimum ATmega328. Untuk menghasilkan sinyal tersebut digunakan kapasitor,
tahanan dan sebuah saklar push bottom. Rangkaian sistem minimum ATMEGA328 dapat
digambarkan seperti Gambar 4. 16

Gambar 4.16 Rangkaian Mikrokontroler ATMEGA328

Penyemat X1 dan X2 dihubungkan dengan kristal yang berfungsi sebagai pembentuk


sebuah isolator bagi mikrokontroler. Kristal 16 MHz ini didukung dua capasitor keramik C1 dan
C2 yang nilainya sama sebesar 22pF. Apabila terjadi beda potensial pada kedua kapasitor
tersebut maka kristal akan berosilasi. Pulsa yang keluar adalah berbentuk gigi gergaji dan akan
dikuatkan oleh rangkaian internal pembangkit rangkaian pulsa pada mikrokontroler sehingga
akan berubah menjadi pulsa clock. Untuk pembagian dari frekuensi internal mikrokontroler itu
sendiri yang diinisialisasi dengan program.
Penyemat Reset dihubungkan dengan saklar yang digunakan untuk me-Reset
mikrokontroller. Karena kaki reset ini aktif berlogic tinggi maka diperlukan Resistor R1 yang
nilainya 10K yang dihubungkan dengan tegangan 0 Volt untuk memastikan penyemat Reset

berlogic rendah saat sistem ini bekerja. Kapasitor C1=10F berfungsi untuk meredam adanya
kesalahan akibat penekanan saklar Reset.

6. Pewaktu CPU

Agar dapat mengeksekusi program, mikrokontroler membutuhkan pulsa clock. Pulsa ini
dapat dihasilkan dengan memasang rangkaian resonator pada pin XTAL1 dan XTAL2. Frekuensi
kerja maksimum ATmega328 adalah 16 MHz. Mikrokontroler ATmega328 memiliki osilator
internal (on-chip oscillator) yang dapat digunakan sebagai sumber clock bagi CPU. Untuk
menggunakan osilator internal diperlukan sebuah kristal atau resonator keramik antara pin
XTAL1 dan XTAL2 dan kapasitor yang dihubungkan ke ground. Jadi clock yang diperoleh CPU
berasal dari sinyal yang diberikan dari sebuah kristal. Penggunaan kristal dengan frekuensi dari 6
MHz sampai 16 MHz, sedangkan untuk kapasitor dapat bernilai 27 pF sampai 33 pF. Hubungan
oscilator untuk ATmega328 dapat dilihat pada gambar 4.17

ATmega328
XTAL 2
Crystal
oscilator

XTAL 1

Gambar 4.17 crystal 16 Mhz

Dalam mikrokontroler dikenal istilah Machine Cycle (MC) / Siklus Mesin, dimana :
1 MC = 6 state = 12 periode clock
Jika frekuensi crystal yang digunakan adalah 12 MHz maka 1 MC = 12/frekuensi crystal = 12/12
MHz =1uS

Gambar 4.18 Siklus Mesin


7. Sistem Kerja Keseluruhan

Sytsem kerja keseluruhan dari alat ini terbagi menjadi lima bagian penting dari blok
skematik seperti gambar diatas yang memiliki fungsinya masing-masing. Terdiri dari :

Blok serial converter RS232 : berfungsi untuk memprogrammer mikrokontroler


ATmega8 menggunakan komunikasi serial ke computer dengan menafaatkan IC
max232 seperti yang sudah penulis jelaskan dalam bab sebelumnya.

Blok Mikrokontroler yang berfungsi sebagai pusat pengendali input/output


seperti yang sduah penulis jelaskan pada bagian atas

Blok sensor finger print yang berfungsi sebagai penerima inputan berupa jari
manusia untuk mengakses brangkas

Blok relay berfungsi untuk penghubung antara output mikro ke selenoid

Blok lcd 16x2 untuk menampilkan karakter

System yang penulis rancang menggunakan satu buah sensor yaitu dengan menggunakan
sensor finger print yang merupakan sensor sidik jari optikal, yang dapat mendeteksi sidik jadi
dengan verifikasi yang sangat sederhana. Module sensor ini bekerja dengan otak utama berupa
chip DSP yang melakukan image rendering, kemudian mengkalkulasi, feature-finding dan
terakhir searching pada data yang sudah ada. Output sensor ini berupa TTL serial, yang
memungkinkan dapat dihubungkan ke mikrokontroler. Produk ini mampu menyimpan data
hingga 162 sidik jari pada FLASH memory internalnya. Produk ini dilengkapi dengan LED
merah pada lensa yang akan menyala sebagai indikator ketika pengambilan gambar berlangsung.
Sebelum module sensor ini dapat digunakan, terlebih dahulu harus memasukkan data
sidik jari. Jika data sudah masuk, maka kita dapat menggunakannya dengan baik. Mikrokontroler
akan mengecek apakah sidik jari yang kita inputkan sesuai dengan data yang tersimpan dalam
memory sensor finger print tersebut. Jika data ada maka brangkas akan terbuka dan data akan
ditampilkan ke lcd 16x2 karakter.

Untuk supply tegangan yang dipakai pada system ini menggunakan tegangan sebesar 12
volt DC. Tegangan ini diperoleh dari transformator universaldengan tegangan 12 volt, dengan
arus 1.2 Ampere. Karena pada masing-masing rangkaian membutuhkan tegangan sebesar 5 volt
maka untuk itu dibuatkan rangkaian regulator agar mendapatkan tegangan sebesar 5 volt.

Gambar 4.8
Rangkaian Power Supply

Pada rangkaian ini digunakan IC regulator 7805 untuk mendapatkan tegangan sebesar 5 volt.
Pada Gambar 3.7 merupakan skema rangkaian supply untuk ke masing-masing bagian
diantaranya tegangan 5 volt ke board minimum system ATMega8.
Perencanaan Program bahasa C pada system SMS gateway
Penulisan program C menggunakan software Arduino-21. Software tersebut berfungsi
untuk membuat listing program yang akan dimasukkan ke dalam mikrokontroler nantinya.
Tampilan software Arduino-21 dan cara bagaimana memasukkan program ke dalam
mikrokontroler dapat dilihat pada gambar 3.11.

Gambar 3.11 tampilan awal program


Untuk membuat bahasa C, pertama kita membuat file baru dengan cara mengklik new.
Kemudian kita ketikkan bahasa C pada kolom yang sudah tersedia. Namun kita juga dapat
membuka file program yang sudah dibuat sebelumnya dengan klik file kemudian klik

sketchbook dan selanjutnya pilih file program tersebut seperti terlihat Pada gambar 3.12.

Gambar 3.12 Membuka File Program


Selanjutnya adalah meng-compile program C dengan cara klik toolbar sebelah kiri jendela
program dan apabila tidak terdapat error maka program sudah siap untuk di upload ke rangkaian
mikrokontroler. Seperti terlihat dalam gambar 3.11. Status error dapat terjadi apabila dalam
penulisan program tidak sesuai dengan tata cara penulisan program dalam bahasa C yang sudah
ada, ini dapat diperbaiki dengan cara meng-klik file program yang error kemudian mengecek
dimana letak kesalahannya. Kemudian di-compile sekali lagi, jika tidak terdapat error maka
program sudah siap dimasukkan ke mikrkontroler.

Gambar 3.13 Proses Compile


Apabila tidak terdapat error pada proses compiler maka akan terlihat tulisan done compiling
pada program bagian bawah, itu menandakan bahwa program yang sudah dibuat sebelumnya
tidak mengalami kesalahan penulisan program. Selanjutnya adalah meng-upload program yang
sudah dibuat ke dalam mikrokontroler namun, sebelum meng-upload program terlebih dahulu
mengatur board yang digunakan dan serial port seperti terlihat pada gambar 3.14 .

Gambar 3.14 Mengatur board yang Digunakan


Untuk memilih mikrokontroler yang akan digunakan maka cukup meng-klik tool kemudian pilih
board selanjutnya pilih Arduino NG older w/ATmega8. Hal ini dilakukan karena mikrokontroler
yang digunakan adalah ATmega8. Selanjutnya adalah mengatur port serial yang digunakan agar
proses pemprograman dapat berjalan. Gambar 3.15 memperlihatkan proses pengaturan port
serial.

Gambar 3.15 Pemilihan port serial


Yang terakhir adalah proses uploading program ke dalam mikrokontroler dengan meng-klik
tombol upload pada toolbar sebelah kanan seperti terlihat pada gambar 3.16 apabila proses
uploading berhasil maka ditandai dengan tulisan done uploading. Maka mikrokontroler sudah
selesai diporgram.

Gambar 3.16

Program Selesai di-uploading