sensor posisi untuk mendeteksi getaran

advertisement
PROYEK AKHIR
PEMBUATAN SENSOR POSISI FARADAY UNTUK PENDETEKSI
DINI GEMPA PADA GEDUNG
Rachmat Winadi
NRP.7104 030 050
Dosen Pembimbing :
Alridjajis, Dipl.Eng
NIP. 132.233.833
JURUSAN TEKNIK ELEKTRONIKA
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
1
SURABAYA
2007
PROYEK AKHIR
PEMBUATAN SENSOR POSISI FARADAY UNTUK
PENDETEKSI DINI GEMPA PADA GEDUNG
Rachmat Winadi
7104 030 050
Dosen Pembimbing :
Alrijadjis, Dipl. Eng.
132 233 833
JURUSAN TEKNIK ELEKTRONIKA
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA 2007
2
PEMBUATAN SENSOR POSISI FARADAY UNTUK
PENDETEKSI DINI GEMPA PADA GEDUNG
Oleh:
RACHMAT WINADI
7104 030 050
Proyek Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk
Memperoleh Gelar Ahli Madya (A.Md.)
Di
Politeknik Elektronika Negeri Surabaya
Institut Teknologi Sepuluh Nopember Surabaya
Disetujui Oleh:
Tim Penguji Proyek Akhir
Dosen Pembimbing
1. Ir. Retno Sukmaningrum, MT.
NIP. 132 233 199
1. Alrijadjis, Dipl. Eng
NIP. 132 233 833
2. Firman Arifin, ST.
NIP. 132 296 743
3. Ali Husein Alasiry, ST, M.Eng.
NIP. 132 256 937
Mengetahui
Ketua Jurusan Teknik Elektronika
Mohammad Syafrudin, ST, M.Eng
NIP. 131 884 954
3
Abstrak
Hasil monitoring gempa bumi yang dilakukan oleh BMG
menunjukkan bahwa aktifitas gempa bumi di Indonesia tergolong
sangat aktif. Oleh sebab itu, diperlukan sebuah alat yang dapat
memberikan informasi dengan cepat dan tepat. Proyek akhir ini
merupakan aplikasi dari Hukum Faraday, dimana lilitan digunakan
sebagai sensor pendeteksi getaran. Namun, pada proyek akhir ini
digunakan metode yang berbeda dimana kumparan sekunder diganti
dengan dua buah resistor yang dihubungkan secara paralel dan
terletak melingkari kumparan primer. Jika sensor mendeteksi getaran
pada range skala richter tertentu maka secara otomatis akan
mengaktifkan sistem keamanan pada gedung. Dari hasil pengujian
sistem secara keseluruhan dapat diketahui bahwa sensor yang telah
dibuat mampu mendeteksi getaran maksimal 6 skala richter.
Kata kunci: gempa bumi, primer, sekunder,skala richter
4
+++++++++Halaman ini sengaja dikosongkan+++++++++
5
Abstract
The result from earthquake monitoring done by BMG indicate
that earthquake activity in Indonesia was very active. Because of that,
an appliance which can give information swiftly and precisely needed.
This final project represent application from Faraday Law, where the
circumference used as a censor to detect vibration. But with different
method where the secondary bobbin changed with two resistor
connected parallelly and located encircle to the primary bobbin. If the
censor detect vibration at any certain range of scale richter it will
automatically activate security system of the building. From whole
system examination result the censor which have been made are able to
detect 6 scale richter maximal vibration.
Key word: earthquake, primary, secondary, richter scale
6
+++++++++Halaman ini sengaja dikosongkan+++++++++
7
KATA PENGANTAR
Alhamdulillah, puji syukur kami panjatkan kehadhirat Allah SWT
yang telah memberikan kekuatan kepada kami sehingga kami dapat
menyelesaikan buku laporan proyek akhir kami yang berjudul:
“ PEMBUATAN SENSOR POSISI FARADAY UNTUK
PENDETEKSI
DINI GEMPA PADA GEDUNG ”
Proyek akhir ini disusun untuk melengkapi persyaratan akademik
dalam menyelesaikan kuliah program Diploma III di Politeknik
Elektronika Negeri Surabaya.
Kami menyadari bahwa buku ini masih jauh dari kesempurnaan,
oleh karena itu saran dan kritik yang sifatnya membangun senantiasa
kami nantikan. Harapan kami adalah semoga apa yang telah kami tulis
pada buku proyek akhir ini dapat bermanfaat bagi kami dan rekan-rekan
mahasiswa pada khususnya dan seluruh pembaca pada umumnya.
Demikian pengantar yang dapat kami sampaikan semoga setiap apa
yang kami kerjakan akan menjadi amal dan manfaat baik bagi diri kami
ataupun orang lain.
Surabaya, Juli 2007
Penyusun
8
+++++++++Halaman ini sengaja dikosongkan+++++++++
9
UCAPAN TERIMA KASIH
Ucapan terima kasih dan rasa syukur yang tak terhingga, kami
persembahkan kepada Allah SWT semata karena atas Rahmat dan
Hidayah-Nya, maka proyek akhir ini dapat kami selesaikan. Pada
kesempatan ini kami juga ingin sampaikan rasa hormat dan terima kasih
yang sebesar-besarnya kepada semua pihak yang telah membantu
dalam menyelesaikan proyek akhir ini, mulai dari persiapan hingga
akhirnya dapat kami selesaikan proyek akhir ini, secara khusus kami
ucapkan banyak-banyak terima kasih kepada:
1. Ibunda dan Ayahanda serta kakak-kakakku yang senantiasa
mendo’akan
dan
memberikan
dukungannya
dalam
menyelesaikan proyek akhir ini.
2. Bapak Dr. Ir. Titon Dutono, M.Eng, selaku Direktur Politeknik
Elektronika Negeri Surabaya – ITS.
3. Bapak Mohammad Syafruddin, ST, M.Eng, selaku Kepala
Jurusan Teknik Elektronika.
4. Bapak Alrijadjis, Dipl Eng, selaku dosen pembimbing yang
selalu membina kami dengan kesabarannya.
5. Bapak dan Ibu dosen Politeknik Elektronika Negeri Surabaya –
ITS yang telah memberikan ilmunya kepada kami.
6. Seluruh Mahasiswa jurusan Elektronika PENS-ITS angkatan
2004 terima kasih atas dukungannya.
7. Buat arek Eb-D3 spesial buat KUKUH alias “BUDI” dan Qiky
F.Z alias “BAIM WONG” thanks 4 a lot lah.
8. Arek-arek Lab. Workshop atas segala bantuan dan dukungannya
selama ini.
9. Dan kepada semua yang tak dapat disebutkan satu-persatu.
Semoga segala bantuan yang telah diberikan diterima oleh Allah
SWT. Menyadari atas keterbatasan dan kemampuan yamg kami miliki,
maka dalam penulisan buku Proyek Akhir ini masih banyak terdapat
kekurangan dan kami menghargai apabila ada kritik maupun saran yang
bersifat membangun untuk perbaikan buku Proyek Akhir ini.
Terakhir, kami minta maaf atas segala kesalahan kami baik yang
disengaja maupun yang tidak. Semoga Allah SWT membalas segala
amal kebaikan anda semua. Amin.
10
+++++++++Halaman ini sengaja dikosongkan+++++++++
11
DAFTAR ISI
HALAMAN JUDUL....................................................................i
HALAMAN PENGESAHAN .....................................................iii
ABSTRAK....................................................................................v
KATA PENGANTAR .................................................................vii
UCAPAN TERIMA KASIH .......................................................ix
DAFTAR ISI ................................................................................xi
DAFTAR GAMBAR ...................................................................xv
DAFTAR TABEL........................................................................xvii
BAB I PENDAHULUAN
1.1 Latar Belakang .......................................................................1
1.2 Tujuan.....................................................................................1
1.3 Permasalahan..........................................................................1
1.4 Batasan Masalah.....................................................................2
1.5 Metodologi .............................................................................2
1.6 Sistematika Pembahasan ........................................................3
BAB II TEORI PENUNJANG
2.1 Sensor Getaran .......................................................................5
2.2 Operasional Amplifier ............................................................7
2.2.1 Rangkaian Penguat Membalik.......................................8
2.2.2 Rangkaian Penguat Tak membalik ................................9
2.2.3 Rangkaian Pengikut Tegangan ......................................10
2.3 Mikrokontroller ......................................................................10
2.3.1 Gambaran Umum ..........................................................10
2.3.2 Perlengkapan Dasar Mikrokontroler..............................11
2.3.2.1 CPU ...................................................................11
2.3.2.2 Alamat ...............................................................11
2.3.2.3 Data....................................................................11
2.3.2.4 Pengendali .........................................................11
2.3.2.5 Memori ..............................................................11
2.3.2.6 RAM ..................................................................12
2.3.2.7 ROM ..................................................................12
2.3.2.8 Input / Output.....................................................12
2.3.3 Mikrokontroler AVR ATmega 16 ................................12
2.3.4 Konfigurasi Pin AVR ATmega 16 ...............................14
2.3.5 Struktur Memori ...........................................................16
2.3.6 Interupt .........................................................................20
12
2.3.7 Port sebagai input/output digital.......................................20
2.3.8 Port sebagai Analag Digital Converter (ADC).................21
2.3.9 Timer ................................................................................26
2.3.10 Serial pada ATmega16 ...................................................34
2.4 Bahasa C ....................................................................................39
2.4.1 Sejarah dan Standar C ......................................................39
2.4.2 Tipe Data..........................................................................39
2.4.3 Pengenalan Fungsi-Fungsi Dasar .....................................41
2.4.4 Pengenalan Praprosesor #include .....................................41
2.4.5 Operator Relasi.................................................................42
2.4.6 Operator Logika ...............................................................42
2.4.7 Pernyataan Bahasa C........................................................42
2.4.7.1 Pernyataan if...............................................................42
2.4.7.2 Pernyataan if-else .......................................................43
2.4.7.3 Pernyataan Switch ......................................................44
2.4.7.3.1 Pernyataan switch Tunggal......................................44
2.4.8 Perulangan FOR ...............................................................45
2.4.9 Perulangan While dan Do While......................................45
2.4.10 Lompatan........................................................................45
2.5 Skala Richter ..............................................................................46
BAB III PERANCANGAN DAN PEMBUATAN
PERANGKAT KERAS DAN LUNAK
3.1 Perancangan dan Pembuatan Perangkat Keras...........................49
3.1.1 Sistem Kerja ......................................................................49
3.1.2 Perancangan Sensor Getaran .............................................50
3.1.3 Perancangan Rangkaian Operasional Amplifier................52
3.1.3.1 Penguat Non-Inverting ...............................................52
3.1.3.2 Rangkaian Penyearah .................................................53
3.1.3.3 Rangkaian Pengubah AC ke DC ................................54
3.1.3.4 Rangkaian Differensial...............................................54
3.1.4 Rangkaian Mikrokontroler AVR ATMega16....................55
3.1.4.1 Port Paralel .................................................................56
3.1.4.3 Diagram Blok dan Konfigurasi Pin ADC...................57
3.1.4.4 Perancangan Rangkaian untuk simulasi .....................59
3.2 Perancangan dan Pembuatan Perangkat Lunak ..........................60
3.2.1. CodeVision AVR .............................................................60
13
BAB IV PENGUJIAN DAN ANALISA
4.1 Pengujian Perangkat Keras.....................................................65
4.1.1 Pengujian Sensor Getaran..............................................65
4.1.2 Pengujian Operasional Amplifier ..................................67
4.1.2.1 Pengujian Penguat Non-Inverting............................67
4.1.2.2 Pengujian Rangkaian Rectifier dan
Pengubah AC ke DC..........................................69
4.1.2.3 Pengujian Rangkaian differensial ............................71
4.2. Pengujian Sistem Keseluruhan ...............................................72
BAB V PENUTUP
5.1 Kesimpulan.............................................................................77
5.2 Saran.......................................................................................77
DAFTAR PUSTAKA
LAMPIRAN 1 : LISTING PROGRAM AVR
LAMPIRAN 2 : PENGUJIAN FREKUENSI
LAMPIRAN 3 : FOTO ALAT
RIWAYAT HIDUP PENULIS
14
+++++++++Halaman ini sengaja dikosongkan+++++++++
15
DAFTAR GAMBAR
Gambar 2.1
Gambar 2.2
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21
Gambar 2.22
Gambar 2.23
Gambar 2.24
Gambar
Gambar
Gambar
Gambar
Gambar
Gambar
2.25
2.26
2.27
2.28
2.29
2.30
Medan magnet menghasilkan arus konstan
pada rangkaian......................................................... 5
Dua buah Voltmeter yang identik mengukur
tegangan yang berbeda pada titik A dan B .............. 5
Rangkaian percobaan sensor.................................... 7
Rangkaian Penguat Inverting................................... 8
Rangkaian Penguat Non-Inverting........................... 9
Rangkaian Buffer..................................................... 10
Blok Diagram Arsitektur Atmega16........................ 14
Pin-pin Atmega16 Kemasan 40 pin ......................... 15
Peta Memori Flash .................................................. 17
Peta Memori SRAM ................................................ 18
Register alamat EEPROM Bit 15…8 ...................... 18
Register data EEPROM Bit Bit 7…0....................... 19
Register kontrol EEPROM Bit Bit 7…0.................. 19
Timing diagram untuk Mode single-conversion ...... 22
Register ADMUX.................................................... 22
Register ADCSRA................................................... 23
Register ADCLAR = 0 ............................................ 24
Register ADCLAR = 1 ............................................ 24
Register SFIOR........................................................ 25
Blok diagram timer/counter ..................................... 26
Timing diagram timer/counter,
Tanpa prescaling...................................................... 27
Timing diagram timer/counter,
Dengan prescaling ................................................... 28
Timing diagram timer/counter, menyeting
OCFO, dengan pescaler (fclk_I/O/8)....................... 28
Timing diagram timer/counter,
menyetingOCFO, pengosongan data timer
sesuai dengan datapembanding,
dengan pescaler (fclk_I/O/8) ................................... 29
Regiter timer counter 8 bit ....................................... 29
Register timer TCNT0 ............................................. 32
Register timer OCR0 ............................................... 33
Register timer TIFR................................................. 33
Block diagram clock generasi logic......................... 35
Operasi synchronous Clock ..................................... 38
16
Gambar 2.31
Gambar 2.32
Gambar 2.33
Gambar 3.1
Gambar 3.2
Gambar 3.3
Gambar 3.4
Gambar 3.5
Gambar 3.6
Gambar 3.7
Gambar 3.8
Gambar 3.9
Gambar 3.10
Gambar 3.11
Gambar 3.12
Gambar 3.13
Gambar 3.14
Gambar 3.15
Gambar 3.16
Gambar 3.17
Gambar 4.1
Gambar 4.2
Gambar 4.3
Gambar 4.4
Gambar 4.5
Gambar 4.6
Gambar 4.8
..
Diagram alir if ...........................................................43
Diagram alir if-else....................................................44
Perhitungan Skala Richter .........................................46
Diagram Blok Rangkaian ..........................................49
Desain konstruksi sensor ...........................................51
Flowchart sistem........................................................52
Rangkaian penguat non-inverting..............................53
Rangkaian Penyearah ................................................53
Rangkaian pengubah ac-ke-dc...................................54
Rangkaian differensial...............................................54
Rangkaian mikrokontroler Atmega16 .......................55
Rangkaian Downloader .............................................57
Blok Diagram ADC Mikrokontroler ATmega16.......58
Rangkaian simulasi pada gedung ..............................59
Tampilan CodeVisionAVR .......................................60
Tampilan new file......................................................61
Tampilan option di Wizard AVR ..............................61
Tampilan option IC port ............................................62
Tampilan Port C AVR ...............................................62
Tampilan Save general project ..................................63
Rangkaian pengujian sensor getaran .........................65
Rangkaian pengujian penguat non-inverting .............67
Bentuk sinyal output penguat ....................................69
Rangkaian pengujian rectifier dan
pengubah ac ke dc .....................................................70
Rangkaian pengujian differensial ..............................71
Perhitungan Skala Richter .........................................73
Data yang terbaca ADC.............................................74
17
DAFTAR TABEL
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
Tabel
.
2.1
2.2
2.3
2.4
2.5
Interrupt vektor....................................................... 20
Konfigurasi pin port ............................................... 21
Bit pemilih tegangan ref ......................................... 23
Pemilihan scaning ADC ......................................... 25
Deskripsi Bit Mode Pembangkit Bentuk
Gelombang .............................................................. 30
2.6 Mode Output Pembanding, tanpa PWM................. 30
2.7 Mode Output Pembanding, Mode fast PWM ......... 31
2.8 Mode Output Pembanding,
Mode phase correct PWM ....................................... 31
2.9 Deskripsi bit clock select........................................ 32
2.10 Persamaan untuk menyeting perhitungan
register boud rate .................................................... 36
2.11 Tipe-tipe data dasar ................................................ 40
2.12 Operator Relasi....................................................... 42
2.13 Operator Logika ..................................................... 42
2.14 Skala Richter .......................................................... 47
4.1 Hasil pengujian sensor............................................ 66
4.2 Hasil pengukuran rangkaian penguat...................... 68
4.3 Hasil Pengukuran Rangkaian
Pengubah AC ke DC................................................ 70
4.4 Hasil Pengukuran Rangkaian Differensial.............. 72
4.5 Hasil Pengujian Sistem Secara Keseluruhan .......... 74
18
+++++++++Halaman ini sengaja dikosongkan+++++++++
19
BAB I
PENDAHULUAN
1.1. LATAR BELAKANG
Dengan berkembangnya teknologi serta tingkat mobilitas manusia
yang semakin meningkat maka manusia dituntut untuk segera
mengetahui sesuatu yang terjadi secara cepat.
Selama ini masyarakat mengetahui Hukum Faraday hanya sebatas
prinsip “perubahan fluks magnetik menyebabkan perubahan ggl induksi
pada ujung kumparan”. Padahal dari prinsip ini, kita bisa
mengembangkan ke berbagai macam aplikasi yang sangat berguna
dalam kehidupan sehari-hari kita. Misalnya digunakan untuk pendeteksi
gempa bumi secara real time sekaligus mengontrol aksi pada sebuah
gedung dengan cara mengolah sinyal analog yang dihasilkan.
Pada proyek akhir ini kami mencoba membuat sebuah sensor yang
dapat mendeteksi getaran dengan menggunakan prinsip Hukum
Faraday. Sensor ini terdiri dari sebuah kumparan dengan intinya yang
dapat bergerak. Dari pergerakan kumparan dan inti ini menyebabkan
perubahan ggl induksi yang dihasilkan. Perubahan ggl induksi ini
menghasilkan suatu bentuk sinyal tertentu. Sinyal analog ini kemudian
diubah ke data digital melalui rangkaian ADC (Analog Digital
Converter) dan kemudian digunakan untuk mengontrol suatu aksi pada
simulasi gedung.
1.2. TUJUAN
Adapun tujuan dari proyek akhir ini adalah:
1. Sebagai penelitian untuk mengetahui hubungan antara getaran
mekanis (pegas) yang merubah posisi solenoid terhadap
perubahan ggl induksi.
2. Membuat simulasi untuk mengontrol sistem pada gedung
berdasarkan perubahan ggl induksi.
1.3. PERMASALAHAN
Masalah yang ditangani dari proyek akhir ini adalah mempelajari
hubungan atau pengaruh getaran yang merubah posisi solenoid terhadap
sinyal ggl induksi yang dihasilkan dan melakukan aksi pada sebuah
gedung.
20
1.4. BATASAN MASALAH
Dalam proyek akhir ini masalah akan dibatasi pada:
1. Ukuran solenoid (diameter email, panjang email, diameter inti
ferit dan panjang inti ferit) tidak ditentukan atau diabaikan.
2. Konstanta pegas diabaikan, hanya dipakai pegas yang
memiliki kelenturan yang sebanding dengan berat dari
soleniod.
3. Sensor yang digunakan hanya satu dan perubahan posisi
solenoid hanya berada pada posisi vertikal (naik-turun).
4. Kebebasan getaran tidak dapat melebihi jarak lintasan.
5. Besar tegangan yang terdeteksi tidak ditampilkan.
6. Software yang dibuat digunakan untuk mengontrol aksi pada
simulasi gedung berdasarkan tegangan dari sensor.
1.5. METODOLOGI
Metodologi dalam pembuatan proyek akhir ini adalah sebagai
berikut:
1. Study Literatur
Mempelajari tentang Hukum Faraday, pengubah data analog
ke digital, mikrokontroler Atmega16, dan komunikasi serial.
2. Perancangan dan Pembuatan Perangkat Keras dan Lunak
Untuk perangkat keras mendesain bentuk konstruksi dari
sensor dan menentukan nilai-nilainya agar didapatkan sensor
yang memiliki sensitifitas yang tinggi, membuat sebuah
simulasi aksi pada gedung, membuat rangkaian driver
(penguat), minimum sistem mikrokontroler dan komunikasi
serial menggunakan RS-232. Untuk perangkat lunak adalah
membuat inisialisasi terhadap jalur RS-232 dan inisialisasi
terhadap banyaknya bit per karakter, stop bit, parity, baud
rate. Mengecek status dari port serial dan mengambil data dari
hardware melalui jalur komunikasi serial RS-232.
3. Pengujian dan Analisa Perangkat Keras dan Lunak
Untuk perangkat keras melakukan pengujian dan pengambilan
data terhadap rangkaian sensor, penguat, ADC dan komunikasi
serial serta melakukan analisa praktis terhadap hasil yang
diperoleh.
4. Penulisan Laporan
Penulisan laporan dilakukan sesuai data yang diperoleh dari
proyek akhir.
21
1.6. SISTEMATIKA PEMBAHASAN
Sistematika pembahasan proyek akhir ini
kerangka pembahasan sebagai berikut:
disusun dengan
•
BAB I
:
PENDAHULUAN
Bab ini berisi tentang uraian latar belakang,
tujuan, permasalahan, batasan masalah,
metodologi dan sistematika pembahasan.
•
BAB II :
TEORI PENUNJANG
Bab ini berisi tentang teori-teori penunjang
dalam proses perancangan dan pembuatan
perangkat keras dan lunak dari proyek akhir
yang secara garis besar menguraikan tentang
sensor, operasional amplifier, pengubah data
analog ke digital dan interfacing RS-232 .
•
BAB III :
PERANCANGAN DAN PEMBUATAN
PERANGKAT KERAS DAN LUNAK
Bab ini berisi tentang penjelasan mengenai
perancangan serta realisasi studi yang
meliputi pembuatan sensor, operasional
amplifier, komunikasi serial dan program
untuk mengontrol aksi pada simulasi
gedung.
•
BAB IV :
PENGUJIAN DAN ANALISA
Bab ini berisi tentang pengujian dan analisa
praktis terhadap hasil pengamatan secara
keseluruhan dari sistem yang telah dibuat.
•
BAB V :
PENUTUP
Bab ini berisi tentang kesimpulan dari
pembahasan sebelumnya serta saran-saran
guna pengembangan dan penyempurnaan
proyek akhir lebih lanjut.
22
+++++++++Halaman ini sengaja dikosongkan+++++++++
23
BAB II
TEORI PENUNJANG
2.1. SENSOR GETARAN
Gambar 2.1 menunjukkan dua buah resistor R1 (1kΩ) dan R2
(3kΩ) yang terhubung secara parallel. Menurut Hukum Faraday,
perubahan medan magnet H meningkat secara linier terhadap waktu,
menghasilkan arus konstan sebesar 1mA di dalam rangkaian. Apa
tegangan yang melewati titik A-B? Berdasarkan Hukum Ohm, tegangan
yang melewati dua resistor seharusnya berbeda, tapi bagaimana bisa
berbeda jika kedua resistor tersebut terhubung pada titik yang sama A
dan B?
Gambar 2.1 Medan magnet menghasilkan arus konstan pada
rangkaian 1
Tegangan yang terukur tergantung pada posisi kawat yang
menghubungkannya ke voltmeter. Jika dua voltmeter yang identik
dihubungkan melewati titik A-B seperti pada gambar 2.2, simulasi
tegangan yang terukur akan bernilai -1V dan +3V.
1
www.ligo.caltech.edu
24
Gambar 2.2 Dua buah voltmeter yang identik mengukur tegangan
yang berbeda pada titik A dan B 2
Tegangan digambarkan sebagai integral garis dari medan listrik
dari titik A ke B sepanjang alur C (Persamaan 2.1). Medan listrik
induksi dalam contoh ini tidak konservatif karena integral rangkaian
tertutup dari medan listrik tidak bernilai 0 (nol) (persamaan 2.2). Jadi,
tegangan di persamaan 1 tergantung dari arah aliran ( dalam contoh ini
).
Integrasi medan listrik dari titik A ke B sepanjang alur C1 (gambar
2.2) mempunyai nilai yang berbeda dengan integrasi sepanjang alur C2.
Kemudian, tegangan yang terukur tergantung dari voltmeter berada
pada alur mana. Cara lain untuk memahami kejadian ini adalah dengan
mempertimbangkan arus di dalam rangkaian, dimana arus 1mA
melewati kedua transistor.
VAB = −∫c E · dl
∫ E · dl = −
d
...............(2.1)
∫ B · da
...............(2.2)
dt
Untuk mengamati penomena ini, dibuat percobaan seperti gambar
2.3. Medan magnet dihasilkan oleh inti ferit induktor (solenoid) yang
digerakkan oleh gelombang sinus. Ukuran solenoid, amplitudo dan
frekuensi gelombang sinus dan nilai resistor tidak ditentukan, tapi
resultan dari tegangan induktansi harus cukup besar untuk pengukuran.
Dengan menggunakan oscilloscope dual channel, pengukuran
tegangan secara bersama-sama dengan probe pertama pada R1 dan
probe kedua pada R2. Diharapkan untuk penunjukkan nilai, amplitudo
gelombang sinus induksi pada R2 adalah tiga kali lebih besar daripada
R1 dan mempunyai polaritas yang berbeda.
Gambar
2.3
menunjukkan
rangkaian
detektor
yang
membandingkan amplitudo gelombang sinus dari sensor dengan
tegangan referensi yang dihasilkan dari perbandingan antara R3 dan R4
dengan tegangan supply (Vcc). Saat komparator mengukur R1,
amplitudo gelombang sinus terlalu kecil untuk mengaktifkan
komparator sehingga outputnya bernilai 0 (nol) atau berlogic rendah.
Saat komparator mengukur R3, amplitudonya cukup besar untuk
2
www.ligo.caltech.edu
25
membangkitkan osilasi pada output komparator.
menghasilkan logic high pada output komparator.
Sinyal
ini
Gambar 2.3 Rangkaian percobaan 3
2.2. OPERATIONAL AMPLIFIER
Penguat operasional atau Op-Amp adalah rangkaian elektronika
yang dirancang dan dikemas secara khusus sehingga dengan
menambahkan komponen luar sedikit saja dapat dipakai untuk berbagai
keperluan. Hingga kini Op-Amp yang dirakit dari kompoenenkomponen diskrit dan dikemas dalam rangkaian tersegel masih
dirasakan begitu mahal oleh insinyur dan teknisi yang pernah
menggunakannya. Namun, kini dengan teknologi rangkaian terpadu
(IC) yamg telah ditingkatkan, Op-Amp dalam bentuk kemasan IC
menjadi jauh lebih murah dan amat luas pemakaiannya.
Pada mulanya Op-Amp digunakan untuk rangkaian perhitungan
analog rangkaian pengaturan dan rangkaian instrumentasi. Fungsi
utamanya adalah untuk melakukan operasi matematika linier (tegangan
dan arus), integrasi dan penguatan. Kini Op-Amp dapat dijumpai
dimana saja, dalam berbagai bidang : reproduksi suara, sistem
komunikasi, sistem pengolahan digital, elektronik komersial, dan aneka
macam perangkat hobby.
Dalam konfigurasinya kita akan menemukan Op-Amp dengan
masukan dan keluaran tunggal, masukan dan keluaran differensial atau
masukan differensial dan keluaran tunggal. Konfigurasi terakhir ini
3
www.ligo.caltech.edu
26
banyak digunakan dalam industri elektronika. Konfigurasi ini juga akan
dipakai sebagai kerangka landasan dari buku ini. Setiap orang yang
terlibat dalam elektronika mau tak mau harus memahami kegunaan OpAmp, mengetahui karakteristiknya, mampu mengenali konfigurasi dasar
rangkaian Op-Amp dan mampu bekerja sama dengannya.
2.2.1. Rangkaian Penguat Membalik ( Inverting Amplifier )
Sebuah penguat menerima arus atau tegangan kecil pada input dan
menjadikan arus atau tegangan lebih besar pada outputnya. Penguat OpAmp memiliki penguatan yang relatif linier outputnya dikendalikan
sebagai fungsi input.
Gambar 2.4 Rangkaian Penguat Inverting 4
Penyusunan loop seperti gambar 2.4 disebut umpan balik negatif
(degenaratif). Tegangan dengan fasa yang berlawanan pada output
dibalikkan kembali pada masukan membalik sehingga cenderung
melawan tegangan input aslinya sehingga output merupakan tegangan
membalik tegangan input, dimana:
⎛ Rf ⎞
⎟ • Vin
⎝ Ri ⎠
Vout = −⎜
Av = −
Rf
................(2.3)
................(2.4)
Ri
Tanda minus diabaikan dalam hitungan dan hanya menunjukkan
bahwa output berlawanan fasa terhadap input. Impedansi input
4
Robert F. Coughlin, Frederick F. Driscoll, “Operational Amplifiers and Linier
Integrated Circuits”, Penerbit Erlangga, Jakarta, 1994.
27
rangkaian sama dengan Ri, sedangkan lebar pita (bandwidth) dibagi
satu ditambah penguatan loop tertutup.
2.2.2.
Rangkaian Penguat Tak Membalik (Non Inverting
Amplifier)
Sebuah penguat impedansi tinggi tak membalik ditunjukkan pada
gambar 2.5. Impedansi input rangkaian ini sangat besar dimana sama
dengan impedansi antara input-input differensialnya dikalikan
penguatan loop (penguatan loop terbuka dibagi penguatan loop
tertutup). Tegangan pada output tidak dibalik polaritasnya (sama)
terhadap tegangan input.
Gambar 2.5 Rangkaian Penguat Non Inverting 5
Rangkaian Op-Amp ini akan memberikan penguatan loop tertutup
sebesar Rf/Ri ditambah satu, sehingga tegangan pada output adalah:
⎛ Rf ⎞
+ 1 ⎟ • Vin
⎝ Ri ⎠
Vout = ⎜
Av =
Rf
+1
...................(2.5)
...................(2.6)
Ri
Lebar pita 3 dB loop tertutup diberikan oleh frekuensi penguatan
satu Op-Amp dibagi penguatan loop terttutup.
5
Robert F. Coughlin, Frederick F. Driscoll, “Operational Amplifiers and Linier
Integrated Circuits”, Penerbit Erlangga, Jakarta, 1994.
28
Satu hal yang penting untuk diperhatikan perbedaannya dengan
penguat membalik adalah output akan menjadi saturasi bila input
dibiarkan mengambang.
2.2.3. Rangkaian Pengikut Tegangan (Buffer)
Pengikut tegangan didefinisikan sebagai rangkaian dengan
penguatan satu atau kurang dengan output mengikuti input, diantara
input dan output terhadap isolasi impedansi. Op-Amp yang berguna
sebagai pengikut tegangan digambarkan sebagai berikut:
Gambar 2.6 Rangkaian Buffer 6
Rangkaian ini memiliki impedansi input yang sangat tinggi serta
impedansi output yang sangat rendah. Keuntungan ini menjadikannya
amat ideal untuk meyangga atau mengisolasi rangkaian.
2.3 MIKROKONTROLER
2.3.1 Gambaran Umum
Sering kita mendengar istilah mikrokomputer, mikroprosesor,
dan mikrokontroler. Mikroprosesor adalah bagian CPU (central
processing unit) dari sebuah komputer, tanpa memori, I/O, dan
periferal yang dibutuhkan oleh suatu sistem lengkap. Supaya dapat
bekerja, mikroprosesor memerlukan perangkat pendukung seperti
RAM, ROM dan I/O.
Bila sebuah miroprosesor dikombinasi dengan I/O dan memori
(RAM/ROM) akan dihasilkan sebuah mikrokomputer. Sebagai
terobosan mikrokomputer ini dapat juga dibuat dalam bentuk single
chip yaitu Single Chip Microcomputer (SCM) yang selanjutnya
disebut sebagai mikrokontroler.
6
Robert F. Coughlin, Frederick F. Driscoll, “Operational Amplifiers and Linier
Integrated Circuits”, Penerbit Erlangga, Jakarta, 1994.
29
Perbedaan yang menonjol antara mikrokomputer dengan
mikrokontroler (SCM) adalah pada penggunaan perangkat I/O dan
media penyimpan program. Bila mikrokomputer menggunakan
disket atau harddrive lainnya maka mikrokontroler menggunakan
EPROM sebagai penyimpan programnya. Sedangkan keuntungan
mikrokontroler dibandingkan dengan mikroprosesor adalah pada
mikrokontroler sudah terdapat RAM dan peralatan I/O pendukung
sehingga tidak perlu menambahkannya.
2.3.2 Perlengkapan Dasar Mikrokontroler
2.3.2.1 CPU
Unit pengolah pusat (CPU) terdiri atas dua bagian yaitu unit
pengendali (CU) serta unit aritmatika dan logika (ALU). Fungsi
utama unit pengendali adalah untuk mengambil, mengkode, dan
melaksanakan urutan instruksi sebuah program yang tersimpan
dalam memori. Sedangkan unit aritmatika dan perhitungan
bertugas untuk menangani operasi perhitungan maupun bolean
dalam program.
2.3.2.2 Alamat
Pada mikroprosesor/mikrokontroler, apabila suatu alat
dihubungkan dengan mikrokontroler maka harus ditetapkan
terlebih dahulu alamat (address) dari alat tersebut. Untuk
menghindari terjadinya dua alat bekerja secara bersamaan yang
mungkin akan meyebabkan kerusakan.
2.3.2.3 Data
Mikrokontroler ATmega16 mempunyai lebar bus data 8 bit.
Merupakan mikrokontroler CMOS 8-bit daya-rendah berbasis
arsitektur RISC yang ditingkatkan.
2.3.2.4 Pengendali
Selain bus alamat dan bus data mikroprosesor/mikrokontroler
dilengkapi juga dengan bus pengendali (control bus), yang
fungsinya
untuk
menyerempakkan
operasi
mikroprosesor/mikrokontroler dengan operasi rangkaian luar.
2.3.2.5 Memori
Mikroprosesor/mikrokontroler memerlukan memori untuk
menyimpan program/data. Ada beberapa tingkatan memori,
30
diantaranya register internal, memori utama, dan memori massal.
Sesuai dengan urutan tersebut waktu aksesnya dari yang lebih
cepat ke yang lebih lambat.
2.3.2.6 RAM
RAM (Random Acces Memory) adalah memori yang dapat
dibaca atau ditulisi. Data dalam RAM akan terhapus bila catu daya
dihilangkan. Oleh karena itu program mikrokontroller tidak
disimpan dalam RAM. Ada dua teknologi yang dipakai untuk
membuat RAM, yaitu RAM static dan RAM dynamic.
2.3.2.7 ROM
ROM (Read Only Memory) merupakan memori yang hanya
dapat dibaca. Data dalam ROM tidak akan terhapus meskipun catu
daya dimatikan. Oleh karena itu ROM dapat digunakan untuk
menyimpan program. Ada beberapa jenis ROM antara lain ROM
murni, PROM, EPROM, EAPROM. ROM adalah memori yang
sudah diprogram oleh pabrik, PROM dapat diprogram oleh
pemakai sekali saja. Sedangkan EPROM merupakan PROM yang
dapat diprogram ulang.
2.3.2.8 Input / Output
I/O dibutuhkan untuk melakukan hubungan dengan piranti di
luar sistem. I/O dapat menerima data dari alat lain dan dapat pula
mengirim data ke alat lain. Ada dua perantara I/O yang dipakai,
yaitu piranti untuk hubungan serial (UART) dan piranti untuk
hubungan paralel (PIO).
2.3.3 Mikrokontroler AVR ATmega 16
AVR merupakan seri mikrokontroler CMOS 8-bit buatan
Atmel, berbasis arsitektur RISC (Reduced Instruction Set
Computer) yang ditingkatkan. Hampir semua instruksi dieksekusi
dalam satu siklus clock. AVR mempunyai 32 register generalpurpose, timer/counter fleksibel dengan mode compare, interrupt
internal dan eksternal, serial UART, programmable Watchdog
Timer, dan mode power saving. Mempunyai ADC dan PWM
internal. AVR juga mempunyai In-System Programmable Flash on-
31
chip yang mengijinkan memori program untuk diprogram ulang
dalam sistem menggunakan hubungan serial SPI. ATmega16
adalah mikrokontroler CMOS 8-bit daya-rendah berbasis arsitektur
RISC yang ditingkatkan. Untuk lebih jelas tentang arsitektur dari
ATmega16 ditunjukan pada gambar 2.3.3.1 ATmega16
mempunyai throughput mendekati 1 MIPS per MHz membuat
disainer sistem untuk mengoptimasi komsumsi daya versus
kecepatan proses.
Beberapa keistimewaan dari AVR ATmega16 antara lain:
1. Advanced RISC Architecture
ƒ 130 Powerful Instructions – Most Single Clock Cycle
Execution
ƒ 32 x 8 General Purpose Fully Static Operation
ƒ Up to 16 MIPS Throughput at 16 MHz
ƒ On-chip 2-cycle Multiplier
2. Nonvolatile Program and Data Memories
ƒ 8K Bytes of In-System Self-Programmable Flash
ƒ Optional Boot Code Section with Independent Lock Bits
ƒ 512 Bytes EEPROM
ƒ 512 Bytes Internal SRAM
ƒ Programming Lock for Software Security
3. Peripheral Features
ƒ Two 8-bit Timer/Counters with Separate Prescalers and
Compare Mode
ƒ Two 8-bit Timer/Counters with Separate Prescalers and
Compare Modes
ƒ One 16-bit Timer/Counter with Separate Prescaler, Compare
Mode, and Capture Mode
ƒ Real Time Counter with Separate Oscillator
ƒ Four PWM Channels
ƒ 8-channel, 10-bit ADC
ƒ Byte-oriented Two-wire Serial Interface
ƒ Programmable Serial USART
4. Special Microcontroller Features
ƒ Power-on Reset and Programmable Brown-out Detection
ƒ Internal Calibrated RC Oscillator
ƒ External and Internal Interrupt Sources
ƒ Six Sleep Modes: Idle, ADC Noise Reduction, Power-save,
Power-down, Standby and Extended Standby
32
5. I/O and Package
ƒ 32 Programmable I/O Lines
ƒ 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad
MLF
6. Operating Voltages
ƒ 2.7 - 5.5V for ATmega16L
ƒ 4.5 - 5.5V for Atmega16
Gambar 2.7 Blok Diagram Arsitektur ATmega161
2.3.4 Konfigurasi Pin AVR ATmega 16
Pin-pin pada ATmega16 dengan kemasan 40-pin DIP (dual
inline package) ditunjukkan oleh gambar 2.3.4.1 Kemasan pin
tersebut terdiri dari 4 Port yaitu Port A, Port B, Port C,Port D yang
masing masing Port terdiri dari 8 buah pin. Selain itu juga terdapat
RESET, VCC, GND 2 buah, VCC, AVCC, XTAL1, XTAL2 dan
AREF.
33
Gambar 2.8 Pin-pin ATmega16 kemasan 40-pin2
Diskripsi dari pin-pin ATmega 16L adalah sebagai berikut :
1. VCC : Supply tegangan digital.
2. GND : Ground
3. Port A : Port A sebagai input analog ke A/D konverter. Port A
juga sebagai 8-bit bi-directional port I/O, jika A/D
konverter tidak digunakan. Pin-pin port dapat
menyediakan resistor-resistor internal pull-up. Ketika
port A digunakan sebagai input dan pull eksternal
yang rendah akan menjadi sumber arus jika resistorresistor pull-up diaktifkan. Pin-pin port A adalah tristate ketika kondisi reset menjadi aktif sekalipun
clock tidak aktif.
4. Port B : Port B adalah port I/O 8-bit bi-directional dengan
resistor-resistor internal pull-up. Buffer output port B
mempunyai karaketristik drive yang simetris dengan
kemampuan keduanya sink dan source yang tinggi.
Sebagai input, port B yang mempunyai pull eksternal
yang rendah akan menjadi sumber arus jika resistorresistor pull-up diaktifkan. Pin-pin port B adalah tristate ketika kondisi reset menjadi aktif sekalipun
clock tidak aktif.
2
www.atmel.com / AT mega 16 hal 2
34
5. Port C : Port C adalah port I/O 8-bit bi-directional dengan
resistor-resistor internal pull-up. Buffer output port C
mempunyai karaketristik drive yang simetris dengan
kemampuan keduanya sink dan source yang tinggi.
Sebagai input, port C yang mempunyai pull eksternal
yang rendah akan menjadi sumber arus jika resistorresistor pull-up diaktifkan. Pin-pin port C adalah tristate ketika kondisi reset menjadi aktif seklipun clock
tidak aktif. Jika antarmuka JTAG enable, resistorresistor pull-up pada pin-pin PC5(TDI), PC3(TMS),
PC2(TCK) akan diktifkan sekalipun terjadi reset.
6. Port D : Port D adalah port I/O 8-bit bi-directional dengan
resistor-resistor internal pull-up. Buffer output port D
mempunyai karaketristik drive yang simetris dengan
kemampuan keduanya sink dan source yang tinggi.
Sebagai input, port D yang mempunyai pull eksternal
yang rendah akan menjadi sumber arus jika resistorresistor pull-up diaktifkan. Pin-pin port D adalah tristate ketika kondisi reset menjadi aktif seklipun clock
tidak aktif.
7. Reset : Sebuah low level pulsa yang lebih lama daripada
lebar pulsa minimum pada pin ini akan menghasilkan
reset meskipun clock tidak berjalan.
8. XTAL1 : Input inverting penguat Oscilator dan input intenal
clock operasi rangkaian.
9. XTAL2 : Output dari inverting penguat Oscilator.
10. AVCC : Pin supply tegangan untuk PortA dan A/D converter .
Sebaiknya eksternalnya dihubungkan ke VCC
meskipun ADC tidak digunakan. Jika ADCdigunakan
seharusnya dihubungkan ke VCC melalui low pas
filter.
11. AREF : Pin referensi analog untuk A/D konverter.
2.3.5 Struktur Memori
Untuk memaksimalkan performa dan paralelisme, AVR
menggunakan arsitektur Harvard (dengan memori dan bus terpisah
untuk program dan data). Instruksi pada memori program
dieksekusi dengan pipelining single level. Selagi sebuah instruksi
sedang dikerjakan, instruksi berikutnya diambil dari memori
program.
35
1. Flash Memori
ATmega16 memiliki 16K byte flash memori dengan lebar 16
atau 32 bit. Kapasitas memori itu sendiri terbagi manjadi dua
bagian yaitu bagian boot program dan bagian aplikasi program.
Gambar 2.9 Peta Memori Flash 3
Flash memori memiliki kemampuan mencapai 10.000 write
dan erase.
2. Memori SRAM
Penempatan memori data yang lebih rendah dari 1120
menunjukkan register, I/O memori, dan data internal SRAM. 96
alamatmemori pertama untuk file register dan memori I/O, dan
1024 alamat memori berikutnya untuk data internal SRAM. Lima
mode pengalamatan yang berbeda pada data memori yaitu direct,
indirect, indirect dis-placement, indirect pre-decreament dan
indirect post-increament .Pada file register, mode indirect mulai
dari register R26-R31. Pengalamatan mode direct mencapai
keseuruhan kapasitas data. Pengalamatan mode indirect displacement mencapai 63 alamat memori dari register X atau Y.
Ketika meggunakan mode pengalamatan indirect dengan predecrement dan post increment register X, Y, dan Z akan didicrement-kan atau di-increment-kan. Pada ATmega16 memiliki
32 register, 64 register I/O dan 1024 data internal SRAM yang
dapat mengakses semua mode-mode pengalamatan.
3
www.atmel.com / AT mega 16 hal 14
36
Gambar 2.10 Peta Memori SRAM4
3. Memori EEPROM
Pada EEPROM ATmega16 memiliki memori sebesar 512 byte
engan daya tahan 100.000 siklus write/read.
Register-register pada memori EEPROM :
ƒ Bit 15…9 – Res:reserved bits
Bit ini sebagai bit-bit bank pada ATmega16 dan akan selalu
membaca
Gambar 2.11 Register alamat EEPROM Bit 15…85
4
5
www.atmel.com / AT mega 16 hal 15
www.atmel.com / AT mega 16 hal 17
37
ƒ Bit 8..0 – EEAR8..0:EEPROM address
Bit-bit ini sebagai alamat EEPROM.
ƒ Bit 7..0 – EEDR7..0:EEPROM data
Bit-bit ini sebagai data EEPROM.
Gambar 2.12 Register data EEPROM Bit Bit 7…06
ƒ Bit 7..4 – Res:reserved bits
Bit-bit ini terdapat pada register kontrol.
Bit ini sebagai Enable Interupt Ready pada EEPROM.
Gambar 2.13 Register kontrol EEPROM Bit Bit 7…07
ƒ Bit 2
Bit ini sebagai Enable Interupt Master pada EEPROM.
ƒ Bit 1
Bit ini sebagai write enable pada EEPROM.
ƒ Bit 0
Bit ini sebagai read enable pada EEPROM.
6
www.atmel.com / AT mega 16 hal 17
www.atmel.com / AT mega 16 hal 17
7
38
2.3.6 Interupt
Tabel 2.1 Interrupt vektor8
2.3.7 Port sebagai input/output digital
ATmega16 mempunyai empat buah port yang bernama PortA,
PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur
bidirectional dengan pilihan internal pull-up. Tiap port mempunyai
tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf
‘x’mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili
nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn
terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O
address PINx. Bit DDxn dalam regiter DDRx (Data Direction
Register) menentukan arah pin. Bila DDxn diset 1 maka Px
berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi
sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi
sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk
mematikan resistor pull-up, PORTxn harus diset 0 atau pin
8
Ibit hal 42
39
dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah
kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi
sebagai pin output maka pin port akan berlogika 1. Dan bila
PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output
maka pin port akan berlogika 0. Saat mengubah kondisi port dari
kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high
(DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah
itu kondisi pull-up enabled (DDxn=0, PORTxn=1)atau kondisi
output low (DDxn=1, PORTxn=0). Biasanya, kondisi pull-up
enabled dapat diterima sepenuhnya, selama lingkungan impedansi
tinggi tidak memperhatikan perbedaan antara sebuah strong high
driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka
bit PUD pada register SFIOR dapat diset 1 untuk mematikan semua
pull-up dalam semua port. Peralihan dari kondisi input dengan pullup ke kondisi output low juga menimbulkan masalah yang sama.
Kita harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0)
atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi
transisi.
Tabel 2.2 Konfigurasi pin port9
Bit 2 – PUD : Pull-up Disable
Bila bit diset bernilai 1 maka pull-up pada port I/O akan
dimatikan walaupun register DDxn dan PORTxn dikonfigurasikan
untuk menyalakan pull-up (DDxn=0, PORTxn=1).
2.3.8 Port sebagai Analag Digital Converter (ADC)
ATmega16 mempunyai ADC (Analog to Digital Converter)
internal dengan fitur sebagai berikut (untuk lebih detil dapat
mengacu pada datasheet) :
ƒ 10-bit Resolution
ƒ 65 - 260 μs Conversion Time
ƒ Up to 15 kSPS at Maximum Resolution
ƒ 8 Multiplexed Single Ended Input Channels
ƒ Optional Left Adjustment for ADC Result Readout
ƒ 0 - VCC ADC Input Voltage Range
40
ƒ Selectable 2.56V ADC Reference Voltage
ƒ Free Running or Single Conversion Mode
ƒ l 49ADC Start Conversion by Auto Triggering on Interrupt
9
Ibit ha
Sources
ƒ Interrupt on ADC Conversion Complete
ƒ Sleep Mode Noise Canceler
ƒ
Dibawah ini gambar timing diagram untuk mode single
convertion maksudnya hanya satu input chanel saja yang
dikonversi.
Gambar 2.14 Timing diagram untuk Mode single-conversion10
1.
Register-register yang dipakai untuk mengakses ADC adalah:
ADMUX – ADC Multiplexer Selection Register
Gambar 2.15 Register ADMUX11
ƒ Bit 7:6 – REFS1:0 : Bit Pemilih tegangan referensi
Bit ini berfungsi untuk memilih tegangan referensi ADC untuk
lebih jelasnya terdapat pada tabel dibawah ini.
41
Tabel 2.3 Bit pemilih tegangan ref12
10
Ibit hal 203
Ibit hal 211
11
ƒ Bit 5 – ADLAR : ADC Left Adjust Result
ƒ Bit 4:0 – MUX4:0 : Bit pemilih Analog Channel dan Gain
2.
ADCSRA – ADC Control and Status Register
Gambar 2.16 Register ADCSRA13
ƒ Bit 7 – ADEN : ADC Enable
Diisi 1 untuk mengaktifkan ADC, diisi 0 untuk mematikan ADC
sekaligus memberhentikan konversi yang sedang berlangsung.
ƒ Bit 6 – ADSC : ADC Start Conversion
Pada mode single-conversion, set bit ini untuk memulai tiap
konversi. Pada mode free-running, set bit ini untuk konversi
pertama kalinya. Bit ADSC bila dibaca akan bernilai 1 selama
proses konversi, dan bernilai 0 bila konversi selesai. Mengisi bit
ini dengan nilai 0 tidak akan mempunyai dampak.
ƒ Bit 5 – ADATE : ADC Auto Trigger Enable
Bila bit ini diisi 1 maka auto trigger ADC akan diaktifkan. ADC
akan memulai konversi pada saat tepi positif dari sumber sinyal
trigger yang dipilih. Sumber sinyal trigger ditentukan dengan
menseting bit ADTS pada register SFIOR.
ƒ Bit 4 – ADIF : ADC Interrupt Flag
Bit ini akan bernilai 1 pada saat ADC selesai mengkonversi dan
Data register telah diupdate. ADC Conversion Complete
Interrupt akan dijalankan bila bit ADIE dan bit-I pada register
SREG diset 1. ADIF akan di-clear secara hardware bila
mengerjakan penanganan vektor interrupt yang bersesuaian.
42
12
Ibit hal 211
Ibit hal 213
13
Alternatifnya, ADIF dapat di-clear dengan menuliskan 1. Hatihati bila bekerja dengan Read-Modify-Write pada ADCSRA,
interrupt yang tertunda dapat dinonaktifkan/batal. Hal ini juga
berakibat sama bila instruksi SBI dan CBI digunakan.
ƒ Bit 3 – ADIE : ADC Interrupt Enable
Mengisi bit ini dan bit-I pada register SREG menjadi 1 akan
mengaktifkan ADC Conversion Complete Interrupt.
ƒ Bit 2:0 – ADPS2:0 – Bit pemilih ADC Prescaler
Menentukan bilangan pembagi antara sumber clock XTAL ke
clock ADC.
3. ADCL, ADCH – ADC data register
ƒ Bila ADLAR = 0
Gambar 2.17 Register ADCLAR = 014
ƒ Bila ADLAR = 1
Gambar 2.18 Register ADCLAR = 115
Setelah ADC selesai melakukan konversi kedua register ini
berisi hasil konversi. Bila channel differensial dipilih maka
hasilnya dalam format 2’s complement. Saat ADCL dibaca, data
register tidak akan meng-update data sampai ADCH dibaca. Jika
hasilnya dirata kiri (left adjust) dan hanya butuh 8-bit maka
cukuplah dengan membaca ADCH. Jika butuh 10-bit, baca ADCL
dahulu kemudian ADCH. Register SFIOR berfungsi untuk sumber
43
auto triger. Dimana kita dapat memilih beberapa mode untuk
konversi.
4. SFIOR – Special Function I/O Register untuk sumber auto
trigger
14
Ibit hal 214
Ibit hal 214
15
Gambar 2.19 Register SFIOR16
Dengan konfigurasi seperti dibawah maka dapat memilih
mode start ADC, ADC akan konversi ketika berdasarkan mode
yang dipilih.
Tabel 2.4 Pemilihan scaning ADC17
ADTS2 ADTS1 ADTS0
Trigger source
0
0
0
Free Running mode
0
0
1
Analog Comparator
0
1
0
External Interupt Request 0
0
1
1
TimerCounter0 Compare Match
1
0
0
TimerCounter0 Overflow
1
0
1
TimerCounter1 Compare Match 8
1
1
0
TimerCounter1 Overflow
1
1
1
TimerCounter1 Capture Event
ƒ Bit 7:5 – ADTS2:0 : ADC Auto Trigger Source
Bila ADATE dalam register ADCSRA diset 1, maka nilai dalam
bit-bit ini akan menentukan sumber mana yang akan mentrigger
konversi ADC. Bila bit ADATE bernilai 0, maka bit-bit ini tidak
44
16
Ibit hal 215
Ibit hal 217
17
akan mempunyai efek. Sebuah konversi ditrigger oleh sinyal
rising-edge dari interrupt flag yang dipilih. Perlu diingat bahwa
memindah sumber trigger yang di-clear ke sumber trigger lain
yang di-set akan menyebabkan positive-edge pada sinyal trigger.
Bila ADEN dalam register ADCSRA diset, juga akan memulai
konversi. Memindah mode ke mode freerunning tidak akan
menyebabkan pulsa trigger, meskipun bila flag interrupt ADC
diset.
ƒ Bit 4 – RES : Reserved bit
Bit cadangan, bila dibaca hasilnya nol.
2.3.9 Timer
Timer/couter adalah tujuan umum single channel, module 8 bit
timer/counter. Beberapa fasilitas chanel dari timer counter antara
lain:
ƒ Counter channel tunggal
ƒ Pengosongan data timer sesuai dengan data pembanding
ƒ Bebas -glitch, tahap yang tepat Pulse Width Modulator (PWM)
ƒ Pembangkit frekuensi
ƒ Event counter external
Gambar 2.20 Blok diagram timer/counter18
45
Gambar diagram block timer/counter 8 bit ditunjukan pada
gambar di bawah ini. Untuk penempatan pin I/O telah di jelaskan
18
Ibit halbagian
67
pada
I/O di atas. CPU dapat diakses register I/O, termasuk
dalam pinpin I/O dan bit I/O. Device khusus register I/O dan lokasi
bit terdaftar pada deskripsi timer/counter 8 bit pada gambar 2.3.9.1
1. Timing Diagram Timer/Counter
Timer/counter disain sinkron clock timer (clkT0) oleh karena
itu ditunjukan sebagai sinyal enable clock pada gambar berikut.
Gambar ini termasuk informasi ketika flag interrupt dalam kondisi
set. Data timing digunakan sebagai dasar dari operasi
timer/counter.
Gambar 2.21 Timing diagram timer/counter, tanpa
prescaling19
Sesuai dengan gambar dibawah timing diagram timer/counter
dengan prescaling maksudnya adalah counter akan menambahkan
data counter (TCNTn) ketika terjadi pulsa clock telah mencapai 8
kali pulsa dan sinyal clock pembagi aktif clock dan ketika telah
mencapai nilai maksimal maka nilai TCNTn akan kembali ke nol.
Dan kondisi flag timer akan aktif ketika TCNTn maksimal.
46
19
Ibit hal 76
Gambar 2.22 Timing diagram timer/counter, dengan
prescaling20
Sama halnya timing timer diatas, timing timer/counter dengan
seting OCFO timer mode ini memasukan data ORCn sebagai data
input timer. Ketika nilai ORCn sama dengan nilaiTCNTn maka
pulsa flag timer akan aktif. TCNTn akan bertambah nilainya ketika
pulsa clock telah mencapai 8 pulsa. Dan kondisi flag akan berbalik
(komplemen) kondisi ketika nilai TCNTn kembali ke nilai 0
(overflow).
Gambar 2.23 Timing diagram timer/counter, menyeting
OCFO, dengan pescaler (fclk_I/O/8)21
Ketika nilai ORCn sama dengan nilai TCNTn maka pulsa flag
timer akan aktif. TCNTn akan bertambah nilainya ketika pulsa
clock telah mencapai 8 pulsa. Dan kondisi flag akan berbalik
(komplemen) kondisi ketika nilai TCNTn kembalimkenilai 0
(overflow).
20
Ibit hal 76
Ibit hal 76
21
47
Gambar 2.24 Timing diagram timer/counter, menyeting
OCFO, pengosongan data timer sesuai dengan data
pembanding,dengan pescaler (fclk_I/O/8)22
2. Deskripsi Register Timer/Counter 8 bit
Gambar 2.25 Regiter timer counter 8 bit23
ƒ Bit 7 – FOCO : perbandingan kemampuan output.
FOCO hanya akan aktif ketika spesifik-spesifik bit WGM00
tanpa PWM mode. Adapun untuk meyakinkan terhadap
kesesuaian dengan device-device yang akan digunakan,bit ini
harus diset nol ketika TCCRO ditulisi saat mengoperasikan mode
PWM. Ketika menulisi logika satu ke bit FOCO, dengan segera
di paksakan untuk disesuaikan pada unit pembangkit bentuk
gelombang. Output OCO diubah disesuaikan pda COM01: bit 0
menentukan pengaruh daya pembanding. Sebuah FOC0 stobe
tidak akan membangkitkan beberepa interrupt, juga tidak akan
membersihkan timer pada mode CTC mengunakan OCR0
sebagai puncak. FOC0 selalu dibaca nol.
ƒ Bit 6,3 – WGM01:0: Waveform Generation Mode.
22
Ibit hal 77
Ibit hal 77
23
48
Bit ini mengontrol penghitungan yang teratur pada counter,
sumber untuk harga counter maksimal ( TOP )., dan tipe apa dari
pembangkit bentuk gelombang yang digunakan. Mode-mode
operasi didukung oleh unit timer/counter sebagai berikut : mode
normal, pembersih timer pada mode penyesuaian dengan
pembanding ( CTC ), dan dua tipe mode Pulse Width
Modulation ( PWM ).
Tabel 2.5 Deskripsi Bit Mode Pembangkit Bentuk
Gelombang24
catatan : definisi nama-nama bit CTC0 dan PWM0 sekarang
tidak digunakan lagi. Gunakan WGM 01: 0 definisi.
Bagaimanapun lokasi dan fungsional dan lokasi dari masingmasing bit sesuai dengan versi timer sebelumnya.
ƒ Bit 5:4– COMO1:0 Penyesuaian Pembanding Mode Output.
Bit ini mengontrol pin output compare (OCO), jika satu atau
kedua bit COM01:0 diset,output OC0 melebihi fungsional port
normal I/O dan keduanya terhubung juga. Bagaimanapun,
catatan bahwa bit Direksi Data Register (DDR) mencocokan ke
pin OC0 yang mana harus diset dengan tujuan
mengaktifkan.Ketika OC0 dihubungkan ke pin, fungsi dari bit
COM01:0 tergantung dari pengesetan bit WGM01:0.
Tabel di bawah menunjukan COM fungsionality ketika bit-bt
WGM01:0 diset ke normal atau mode CTC (non PWM ).
Tabel 2.6 Mode Output Pembanding, tanpa PWM25
24
Ibit hal 78
Ibit hal 78
25
49
Tabel di bawah menunjukan bit COM01:0 fungsionality ketika bit
WGM01:0 diset ke mode fast PWM.
Tabel 2.7 Mode Output Pembanding, Mode fast PWM26
Tabel di bawah menunjukan bit COM01:0 fungsionality ketika bit
WGM01:0 diset ke mode phase correct PWM.
Tabel 2.8 Mode Output Pembanding, Mode phase correct PWM27
ƒ Bit 2:0 – CS02:0 : Clock Select.
Tiga bit clock select sumber
timer/counter.
50
clock
digunakan
dengan
Tabel 2.9 Deskripsi bit clock select28
26
Ibit hal 78
Ibit hal 79
27
Jika mode pin eksternal digunakan untuk timer counter0,
perpindahan dati pin T0 akan memberi clock counter dengan tetap
jika pin digunakan sebagai output. Dalam hal ini software diijinkan
untuk mengontrol perhitungan.
3.
Register Timer/Counter TCNT0
Gambar 2.26 Register timer TCNT029
Register timer/counter memberikan akses secara langsung,
keduanya dugunakan untuk membaca dan menulis operasi, untuk
penghitung unit 8-bit timer/counter. Menulis ke blok-blok register
TCNT0 ( removes ) disesuaikan dengan clock timer berikutnya.
Memodifikasi counter ( TCNT0 ) ketika perhitungan berjalan,
memperkenalkan resiko kehilangan perbandingan antara TCNC0
dengan register OCR0.
51
4.
Register Timer/Counter OCR0
28
Ibit hal 79
29
Ibit hal 79
Gambar 2.27 Register timer OCR030
Register output pembanding berisi sebuah haraga 8 bit yang
mana secara terus-menerus dibandingkan dengan harga counter
(TCNT0). Sebuah penyesuaian dapat digunakan untuk
membangkitkan output intrrupt pembanding, atau untuk
membangkitakan sebuah output bentuk gelombang pada pin OC0.
5. Register Timer/Counter Interrupt Mask
ƒ Bit 1 – OCIE0: outpu timer counter menyesuaikan dengan
kesesuaian interrupt yang aktif. Ketika bit OCIE0 ditulis satu,
dan I-bit pada register status dalam kondisi set (satu),
membandingkan timer/counter pada interrupt yang sesuai
diaktifkan.
Mencocokkan
interrupt
yang
dijalankan
kesesuaianpembanding pada timer/counter0 terjadi, ketika bit
OCF0 diset pada register penanda timer/counter-TIFR.
ƒ Bit 0 – TOIE0: Timer/Counter 0 Overflow Interrupt Enable.
Ketika bit TOIE0 ditulis satu, dan I-bit pada register status dalam
kondisi set ( satu ), timer/counter melebihi interrupt diaktifkan.
Mencocokkan interrupt dijalankan jika kelebihan pada
timer/counter0 terjadi, ketika bit TOV0 diset pada register
penanda timer/counter- TIFR.
5.
Register Timer/Counter Register – TIFR
52
Gambar 2.28 Register timer TIFR31
30
Ibit hal 80
Ibit hƒal Bit
80
31
1 – OCF0: Output Compare Flag0.
OCF0 dalam kondisi set ( satu ) kesesuaian pembanding terjadi
antara timer/counter dan data pada OCRO – Register 0 keluaran
pembanding. OCF0 diclear oleh hardware ketika eksekusi
pencocokan penangan vector interrupt. Dengan alternatif
mengclearkan OCF0 dengan menuliskan logika satu pada flag.
Ketika I-bit pada SREG, OCIE0 (Timer/Counter0 penyesuaian
pembanding interrupt enable), dan OCF0 diset (satu ),
timer/counter pembanding kesesuaian interrupt dijalankan.
ƒ Bit 0 – TOV0: Timer/Counter Overflow Flag.
Bit TOV0 di ser ( satu ) ketika kelebihan terjadi pada
timer/counter0. TOV0 diclearkan dengan hardware ketika
penjalanan pencocokan penanganan vector interrupt. Dengan
alternatif, TOV0 diclearkan dengan jalan memberikan logika satu
pada flag. Ketika I-bit pada SREG, TOIE0 ( Timer/Counter0
overflow interrupt enable), dan TOV0 diset ( satu ), timer/counter
overflow interrupt dijalankan. Pada tahap mode PWM yang tepat,
bit ini di set ketika timer/counter merubah bagian perhitungan pada
$00.
2.3.10 Serial pada ATmega16
Universal synchronous dan asynchronous pemancar dan
penerima serial adalah suatu alat komunikasi serial sangat
fleksibel. Jenis yang utama adalah :
ƒ Operasi full duplex ( register penerima dan pengirim serial dapat
berdiri sendiri )
ƒ Operasi Asychronous atau synchronous
ƒ Master atau slave mendapat clock dengan operasi synchronous
ƒ Pembangkit boud rate dengan resolusi tinggi
ƒ Dukung frames serial dengan 5, 6, 7, 8 atau 9 Data bit dan 1 atau
2 Stop bit
ƒ Tahap odd atau even parity dan parity check didukung oleh
hardware
ƒ Pendeteksian data overrun
ƒ Pendeteksi framing error
53
ƒ Pemfilteran gangguan ( noise ) meliputi pendeteksian bit false
start dan pendeteksian low pass filter digital
ƒ Tiga interrupt terdiri dari TX complete, TX data register empty
dan RX complete.
ƒ Mode komunikasi multi-processor
ƒ Mode komunikasi double speed asynchronous
1. Generasi Clock
Logic generasi clock menghasilkan dasar clock untuk pengirim
dan penerima.USART mendukung empat mode operasi clock :
Normal Asynchronous, Double Speed Asynchronous mode Master
Synchronous dan Slave Synchronous. Bit UMSEL pada USART
control dan status register C (UCSRC) memilih antara operasi
Asychronous dan Synchronous. Double speed (hanya pada mode
Asynchronous) dikontrol oleh U2X yang mana terdapat pada
register UCSRA. Ketika mengunakan mode operasi synchronous
(UMSEL = 1) dan data direction register untuk pin XCk
(DDR_XCK) mengendalikan apakah sumber clock tersebut adalah
internal (master mode) atau eksternal ( slave mode ) pin-pin XCK
hanya akan active ketika menggunakan mode Synchronous.
Gambar 2.29 Block diagram clock generasi logic32
Keterangan sinyal :
54
Txclk : clock pengirim ( internal clock )
Rxclk : clock dasar penerima ( internal clock )
xcki : input dari pin XCK ( sinyal internal ).
Digunakan untuk operasi slave synchronous.
32
Ibit hal 139
Xcko : clock output ke oin XCK ( sinyal internal ).
Digunakan untuk operasi master synchronous
Fosc : frekuensi pin XTAL ( system clock )
2. Generasi Internal Clock – Pembangkit Boud rate
Generasi internal clock digunakan untuk mode-mode operasi
master asynchronous dan synchronous. Register USART boud rate
(UBRR) dan down-counter dikoneksikan kepada fungsinya sebagai
programmable prescaler atau pembangkit boud rate. Down-counter,
dijalankan pada system clock (fosc), dibebani dengan nilai UBRR
setiap counter telah dihitung mundur ke nol atau ketika register
UBRRL ditulisi. Clock dibangkitkan setiap counter mencapai nol.
Clock ini adalah pembangkit boud rate clock output (fosc/(
UBBR+1)). Pemancar membagi boud rete generator clock output
dengan 2, 8, atau 16 cara tergantung pada mode. Pembnagkit
output boud rate digunakan secara langsung oleh penerima suatu
mesin status yang menggunakan 2, 8, atau 16 negara yang
tergantung pada cara menyimpan status dari UMSEL, bit-bit U2X
dan DDR_XCK. Table di bawah menunjukan penyamaan
perhitungan boud rate dan nilai UBRR tiap mode operasi
mengunakan sumber pembangkit clock internal.
Tabel 2.10 Operasi mode33
55
Catatan
BAUD
33
Ibit hal 140
UBRR
: boud rate menunjukan pengiriman rate bit tiap detik
(bps)
: boud rate (pada bit-bit per detik,bps) fosc frekuensi
system clock osilator
: terdiri dari UBRRH dan UBBRL,(0-4095)
3. Eksternal Clock
Eksternal clock digunakan untuk operasi mode slave
synchronous. Eksternal clock masuk dari pin XCK dicontohkan
oleh suatu daftar sinkronisasi register untuk memperkecil
kesempatan metastabilitas. Keluaran dari sinkronisasi register
kemudian harus menerobos detector tepi sebelum digunakan oleh
pengirim dan penerima. Proses ini mengenalkan dua period delay
clock CPU danoleh karena itu maksimal frekuensi clock XCK
eksternal dibatasi oleh persamaan sebagai berikut :
Keterangan : bahwa fosc tergantung pada stabilitas system
sumber clock. Oleh karena derekomendasikan
untuk menambahkan beberapa garis tepi untuk
menghindari hilangnya mungkin data dalam kaitan
dengan variasi frekwensi.
4. Operasi Synchronous Clock
Ketika mode sinkron digunakan (UMSEL=1), pin XCK akan
digunakan sama seperti clock input (slave) atau clock output
(master). Dengan ketergantungan antara tepi clock dan data
sampling atau perubahan data menjadi sama. Prinsip dasarnya
adalah data input (on RxD) dicontohkan pada clock XCK
berlawanan tepi dari tepi data output (TxD) sehingga mengalami
perubahan.
56
Gambar 2.30 Operasi synchronous Clock34
UCPOL bit UCRSC memilih yang mana tepi clock XCK
digunakan untuk data sampling dan yang mana digunakan untuk
perubahan data. Seperti yang ditunjukan pada gambar di atas,
ketika UCPOL nol data akan diubah pada tepi kenaikan XCK dan
dicontohkan pada tepi XCK saat jatuh. Jika UCPOL dalam kondisi
set, data akan mengalami perubahan pada saat tepi XCK jatuh dan
data akan dicontohkan pada saat tepi XCK naik.
5. Inisialisasi USART
USART harus diinisialisasi sebelum komunikasi manapun
dapat
berlansung.
Proses
inisialisasi
normalnyaterdiri
daripengesetan boud rate, penyetingan frame format dan
pengaktifan pengirim atau penerimatergantung pada pemakaian.
Untuk interrupt menjalankan operasi USART , global interrupt flag
( penanda ) sebaiknya dibersihkan ( dan interrupt global disable )
ketika inisialisasi dilakukan. Sebelum melakukan inisialisasi ulang
dengan mengubah boud rate atau frame format, untuk meyakinkan
bahwa tidak ada transmisi berkelanjutan sepanjang peiode register
yang diubah. Flag TXC dapat digunakan untuk mengecek bahwa
pemancar telah melengkapi semua pengiriman, dan flag RXC dapat
digunakan untuk mengecek bahwa tidak ada data yang tidak
terbaca pada buffer penerima. Tercatat bahwa flag TXC harus
dibersihkan sebelum tiap transmisi ( sebelum UDR ditulisi ) jika itu
semua digunakan untuk tujuan tersebut. USART sederhana
inisialisasi kode contoh berikut menunjukan fungsi satu assembly
dan satu C itu mempunyai kesamaan dalam kemampuan. Pada
contoh tersebit mengasumsikan bahwa operasi asinkron
menggunakan metode poling ( tidak ada interrupt enable ) frame
34
Ibit hal 141
57
format yang tetap. Boud rate diberikan sebagai fungsi parameter.
Untuk kode assembly, parameter boud rate diasumsikan untuk di
simpan pada register r16, r17. Ketika menulis fungsi pada register
UCSRC, bit URSEL (MSB) harus diset dalam kaitan dengan
pembagian penempatan I/O oleh UBRRH dan UCSRC. Lebih
mengedepankan inisialisasi rutin dapat dibuat seperti itu meliputi
frame format sebagai parameter, disable interrupt dan lain-lain.
Bagai manapun juga banyak aplikasi menggunakan seting tetap
boud dan register control, dan untuk aplikasi jenis ini dapat
ditempatkan secara langsung pada keseluruhan routine, atau
dikombinasikan dengan inisialisasi kode untuk modul I/O yang
lain.
2.4 BAHASA C
2.4.1 Sejarah dan Standar C
Akar dari bahasa C adalah dari bahasa BCPL yang
dikembangkan oleh Martin Richards pada tahun 1967. Bahasa ini
memberikan ide kepada Ken Thomson yang kemudian
mengembangkan bahasa yang disebut dengan B pada tahun 1970.
Perkembangan selanjutnya dari bahasa B adalah Bahasa C oleh
Dennis Ricthie sekitar tahun 1970-an di Bell Telephone
Laboratories Inc. (sekarang adalah AT dan T Bell Laboratories).
Bahasa C pertama kali digunakan di komputer Digital Equipment
Corporation PDP-11 yang menggunakan sistem opersi UNIX C
adalah bahasa yang standar, artinya suatu program yang ditulis
dengan bahasa C tertentu akan dapat dikonversi dengan bahasa C
yang lain dengan sedikit modifikasi. Standar bahasa C yang asli
adalah standar dari UNIX. Patokan dari standar UNIX ini diambil
dari buku yang ditulis oleh Brian Kerningan dan Dennis Ritchie
berjudul “The C Programming Language”, diterbitkan oleh
Prentice-Hall tahun 1978. Deskripsi C dari Kerninghan dan Ritchie
ini kemudian kemudian dikenal secara umum sebagai “K dan R C”.
2.4.2 Tipe Data
Didalam bahasa pemrograman computer, data yang digunakan
umumnya dibedakan menjadi data nilai numerik dan nilai karakter.
Nilai numerik dapat dibedakan lagi menjadi nilai numerik integer
dan nilai numerik pecahan. Nilai numeric pecahan dapat dibedakan
lagi menjadi nilai numerik pecahan ketetapan tungga dan nilai
numerik pecahan ketetapan ganda. Bahasa-bahasa pemrograman
58
computer membedakan data ke dalam beberapa tipe dengan tujuan
supaya data menjadi efisien dan efektif. C menyediakan lima
macam tipe data dasar, yaitu tipe data integer (nilai numerik bulat
yang dideklarasikan dengan int), floatingpoint (nilai numerik
pecahan ketetapan tunggal yang dideklarasikan dengan float),
double-precision (nilai numerik pecahan ketetapan ganda yang
dideklarasikan dengan double).
Tabel 2.11 Tipe-tipe data dasar
Karakter (dideklarasikan dengan char), dan kosong
(dideklarasikan dengan void). Int,float, double dan char dapat
dikombinasikan dengan pengubah (modifier) signed, unsigned,
59
long dan short. Hasil dari kombinasi tipe data ini dapat dilihat
pada tabel.
2.4.3 Pengenalan Fungsi-Fungsi Dasar
Fungsi main() harus ada pada program, sebab fungsi inilah
yang menjadi titik awal dan titik akhir eksekusi program. Tanda {
di awal fungsi menyatakan awal tubuh fungsi dan sekaligus awal
eksekusi program, sedangkan tanda } di akhir fungsi merupakan
akhir tubuh fungsi dan sekaligus adalah akhir eksekusi program.
Jika program terdiri atas lebih dari satu fungsi, fungsi main() biasa
ditempatkan pada posisi yang paling atas dalam pendefinisian
fungsi. Hal ini hanya merupakan kebiasaan. Tujuannya untuk
memudahkan pencarian terhadap program utama bagi pemrogram.
Jadi bukanlah merupakan suatu keharusan.
2.4.4 Pengenalan Praprosesor #include
#include merupakan salah satu jenis pengarah praprosesor
(preprocessor directive). Pengarah praprosesor ini dipakai untuk
membaca file yang di antaranya berisi deklarasi fungsi dan definisi
konstanta. Beberapa file judul disediakan dalam C. File-file ini
mempunyai ciri yaitu namanya diakhiri dengan ekstensi .h.
Misalnya pada program #include <stdio.h> menyatakan pada
kompiler agar membaca file bernama stdio.h saat pelaksanaan
kompilasi.Bentuk umum #include:
#include “namafile”
Bentuk pertama (#include <namafile>) mengisyaratkan bahwa
pencarian file dilakukan pada direktori khusus, yaitu direktori file
include. Sedangkan bentuk kedua (#include “namafile”)
menyatakan bahwa pencarian file dilakukan pertama kali pada
direktori aktif tempat program sumber dan seandainya tidak
ditemukan pencarian akan dilanjutkan pada direktori lainnya yang
sesuai dengan perintah pada sistem operasi.
60
2.4.5 Operator Relasi
Operator relasi biasa dipakai untuk membandingkan dua buah
nilai. Hasil pembandingan berupa keadaan benar atau salah.
Keseluruhan operator relasi pada C.
Tabel 2.12 Operator Relasi
2.4.6 Operator Logika.
Operator logika biasa dipakai untuk menghubungkan ekspresi
relasi. Keseluruhan operator logika ditunjukkan pada tabel 2.13.
Tabel 2.13 Operator Logika
Bentuk pemakaian operator && dan || adalah:
operand1 operator operand2
2.4.7 Pernyataan Bahasa C
2.4.7.1 Pernyataan if
Pernyataan if mempunyai bentuk umum :
61
if (kondisi )
pernyataan;
ƒ
ƒ
Bentuk ini menyatakan :
Jika kondisi yang diseleksi adalah benar (bernilai logika = 1),
maka pernyataan yang mengikutinya akan diproses.
Sebaliknya, jika kondisi yang diseleksi adalah tidak benar
(bernilai logika = 0), maka pernyataan yang mengikutinya
tidak akan diproses. Mengenai kodisi harus ditulis diantara
tanda kurung, sedangkan pernyataan dapat berupa sebuah
pernyataan tunggal, pernyataan majemuk atau pernyataan
kosong. Diagram alir dapat dilihat seperti gambar 2.31.
kondisi
salah
benar
pernyataan
Gambar 2.31 Diagram alir if
2.4.7.2 Pernyataan if-else
Pernyataan if-else memiliki bentuk :
if (kondisi)
pernyataan-1;
else
pernyataan-2;
Arti dari pernyataan if-else :
62
ƒ
ƒ
Jika kondisi benar, maka pernyataan-1 dijalankan.
Sedangkan bila kondisi bernilai salah, maka pernyataaan-2
yang dijalankan.
Masing-masing pernyataan-1 dan pernyataan-2 dapat berupa
sebuah pernyataan tunggal, pernyataan majemuk ataupun
pernyataan kosong.
kondisi
salah
benar
Pernyataan1
Pernyataan2
Gambar 2.32 Diagram alir if-else
2.4.7.3 Pernyataan Switch
2.4.7.3.1 Pernyataan switch Tunggal
Bentuk sintak dari statement switch tunggal adalah sebagai berikut:
switch(kondisi)
{
case konstanta1:
statemen-statemen;
break;
casekonstanta2:
statemen-statemen;
break;
.
.
default;
statemen-statemen;
}
63
2.4.8 Perulangan FOR
Pada pemrograman proses perulangan dibagi dua 2 bagian
utama yaitu :
1. Perulangan yang sudah diketahui jumlah perulangan sebelumnya
perulangan tersebut dilakukan.
2. Perulangan yang belum diketahui jumlah perulangannya sebelum
perulangan tersebut dilakukan. Dalam hal ini dibagi menjadi dua
bagian yaitu :
a. kondisi perulangan diperiksa diawal perulangan.
b. kondisi perulangan diperiksa diakhir perulangan.
Bentuk pernyataan for:
for (ungkapan1; ungkapan2; ungkapan3)
{
pernyataan ;
..................;
}
Keterangan :
ƒ Ungkapan1 : Digunakan untuk memberikan inisialisasi terhadap
variabel pengendali loop.
ƒ Ungkapan2 : Dipakai untuk kondisi keluar dari loop.
ƒ Ungkapan3 : Dipakai sebagai pengatur kenaikan nilai variabel
pengendali loop.
2.4.9 Perulangan While dan Do While
Perulangan yang belum diketahui berapa kali akan diulangi
maka dapat menggunakan while atau do while.Pada pernyatan
while, pemeriksaan terhadap loop dilakukan di bagian awal
(sebelum tubuh loop). Pernyataan while akan diulangi terus
menerus selama kondisi bernilai benar, jika kondisinya salah maka
perulangan dianggap selesai.
2.4.10 Lompatan
Statemen goto dapat digunakan untuk melompati dari suatu
proses ke bagian proses yang lainnya di dalam program. Bentuk
umum dari statemen goto adalah sebagai berikut:
goto label;
64
2.5 Skala Richter
Skala Richter yang diusulkan oleh Charles Richter
didefinisikan sebagai logaritma (basis 10) dari amplitudo maksimum,
yang diukur dalam satuan mikrometer, dari rekaman gempa oleh
instrumen pengukur gempa (seismometer) Wood-Anderson, pada jarak
100 km dari pusat gempanya. Sebagai contoh, misalnya kita
mempunyai rekaman gempa bumi (seismogram) dari seismometer yang
terpasang sejauh 100 km dari pusat gempanya, amplitudo
maksimumnya sebesar 1 mm, maka kekuatan gempa tersebut adalah log
(10 pangkat 3 mikrometer) sama dengan 3,0 skala Richter.
Untuk memudahkan orang dalam menentukan skala Richter
ini, tanpa melakukan perhitungan matematis yang rumit, dibuatlah tabel
sederhana seperti gambar 2.33 di bawah ini.
Gambar 2.33 Perhitungan skala richter1
Parameter yang harus diketahui adalah amplitudo maksimum yang
terekam oleh seismometer (dalam milimeter) dan beda waktu tempuh
antara gelombang-P dan gelombang-S (dalam detik) atau jarak antara
seismometer dengan pusat gempa (dalam kilometer). Dalam gambar di
atas dicontohkan sebuah seismogram mempunyai amplitudo maksimum
sebesar 23 milimeter dan selisih antara gelombang P dan gelombang S
adalah 24 detik maka dengan menarik garis dari titik 24 dt di sebelah
1
www.wikipedia.org
65
kiri ke titik 23 mm di sebelah kanan maka garis tersebut akan
memotong skala 5,0. Jadi skala gempa tersebut sebesar 5,0 skala
Richter.
Untuk mengetahui besaran skala Richter dan akibat yang ditimbulkan
dapat dilihat pada tabel 2.14 di bawah ini
Kondisi
Tabel 2.14 Skala Richter35
Skala
Akibat
richter
Mikro
< 2.0
Getaran tidak terasa
Sangat Kecil
2.0 – 2.9
Umumnya getaran tidak terasa tapi dapat
terdeteksi
Kecil
3.0 – 3.9
Sedikit terasa, jarang menyebabkan
kerusakan
Ringan
4.0 – 4.9
Menggetarkan perabotan dan
menyebabkan bunyi berderak
Medium
5.0 – 5.9
Menyebabkan kerusakan pada bangunan
dengan konstruksi kurang baik
Kuat
6.0 – 6.9
Jangkauan kerusakan 100 mil disekitar
titik gempa
Besar
7.0 – 7.9
Menyebabkan kerusakan yang serius pada
kawasan yang luas
Sangat besar
8.0 – 8.9
Menyebabkan kerusakan yang serius pada
beberapa kawasan sangat luas
Dahsyat
> 9.0
Kerusakan total
66
35
www.wikipedia.org
+++++++++Halaman ini sengaja dikosongkan+++++++++
67
BAB III
PERANCANGAN DAN PEMBUATAN
PERANGKAT KERAS DAN LUNAK
Perancangan sistem ini memerlukan sebuah sensor yang dapat
mendeteksi getaran dengan menggunakan prinsip Hukum Faraday.
Sensor ini terdiri dari sebuah kumparan dengan intinya yang dapat
bergerak. Dari pergerakan kumparan dan inti ini menyebabkan
perubahan ggl induksi yang dihasilkan. Perubahan ggl induksi ini
menghasilkan suatu bentuk sinyal tertentu. Sinyal analog ini kemudian
diubah melalui ADC (Analog to Digital Converter) untuk memberikan
aksi pada gedung sesuai nilai tegangan yang di terima ADC.
3.1. PERANCANGAN PERANGKAT KERAS
Perangkat utama dari sistem ini adalah piranti sensor, modul driver
sensor dan rangkaian simulasi pada gedung. Blok perangkat keras ini
ditunjukkan pada gambar 3.1.
Sensor
Penguat
ADC
Mikrokontroler
Aksi pada gedung
Gambar 3.1 Diagram Blok Rangkaian
3.1.1. Sistem Kerja
Secara umum sistem kerja dari blok diagram diatas adalah sensor
akan bekerja untuk mendeteksi getaran. Output dari sensor ini berupa
perubahan tegangan. Tegangan yang dihasilkan oleh sensor ini masih
terlalu kecil sehingga perlu dikuatkan oleh rangkaian operasional
amplifier (Op-Amp). Tegangan yang dihasilkan dari sensor berada pada
range positif dan negatif. Agar dapat dibaca atau diproses oleh ADC
maka sinyal sinus tersebut perlu disearahkan terlebih dahulu dan
kemudian diubah ke tegangan DC. Maka dalam proses ini ditambahkan
rangkaian penyearah dan pengubah AC ke DC. Tegangan yang paling
68
besar berada pada tengah-tengah sensor, tegangan ini terbaca saat
sensor dalam keadaan diam. Agar saat diam tegangan yang terbaca
kecil maka untuk aplikasi ini ditambahkan rangkaian differensial
sebelum masuk ke ADC.
Penggunaan ADC sebagai konversi sinyal analog yang dihasilkan
dari driver (penguat) sensor tersebut. Data yang dihasilkan berupa kode
biner yang dilakukan berdasarkan perintah dari mikrokontroller yang
dilakukan secara real time. Penggunaan mikrokontoller sebagai kontrol
aksi pada simulasi gedung. Mikrokontroller akan membaca nilai dari
ADC yang kemudian akan disimpan sementara pada mikrokontroller
yang akan digunakan untuk mengaktifkan aksi-aksi pada gedung.
3.1.2. Perancangan Sensor Getaran
Dalam perancangan sensor getaran ini komponen yang diperlukan
adalah kawat email, inti ferit, pegas, resistor masing-masing 1K dan
3K3,rangkaian oscilator serta sebuah penyangga. Kawat email yang
digunakan sebagai lilitan dipilih email yang memiliki diameter 0.4 mm.
Pemilihan diameter email sebesar 0.4 mm ini karena semakin banyak
lilitan email yang digunakan maka fluks magnetik yang dihasilkan akan
semakin besar pula. Panjang email yang digunakan kira-kira 50 m dan
jumlah lilitan sebanyak ± 900.
Ferit yang digunakan adalah ferit yang secara umum dijual
dipasaran dengan panjang 18 cm dan mempunyai diameter sebesar 1
cm. Untuk pegas dipilih pegas yang sangat lentur namun masih bisa
menahan berat yang sangat besar. Resistor yang dipilih hanya untuk
menunjukkan adanya beda potensial diantara dua kutub tersebut.
Rangkaian osilator yang digunakan dipilih pada frekuensi 190 KHz.
Pemilihan frekuensi ini karena menghasilkan amplitudo maksimal.
Desain dari kontruksi sensor ditunjukkan pada gambar 3.2.
69
Gambar 3.2 Desain konstruksi sensor
Prinsip kerja dari sensor tersebut adalah saat terdapat getaran maka
lilitan akan bergerak secara vertikal (naik-turun). Pergerakan lilitan
tersebut disebabkan oleh pegas yang menahannya. Arus penyebab dari
rangkaian osilator dihubungkan dengan lilitan. Maka dengan demikian
akan timbul arus induksi atau ggl induksi yang mengalir pada loop
tertutup pada rangkaian resistor tersebut. Besarnya ggl induksi pada
loop tertutup resistor sebanding dengan besarnya getaran yang
ditangkap oleh sensor. Output sensor yang berupa tegangan inilah yang
selanjutnya diproses untuk mengontrol aksi pada simulasi gedung.
Untuk flowchartnya dapat dilihat pada gambar 3.3 di bawah ini
70
start
Baca ADC
Y
aman
L on,B off, M off
N
Y
sedang
L on,B on, M off
N
Y
besar
L off, B on, M on
N
end
Gambar 3.3 Flowchart sistem
Ket
L=lampu sbg simulasi saluran listrik dan gas
B=buzzer sbg simulasi alarm tanda bahaya
M=motor sbg simulasi pintu darurat
3.1.3. Perancangan Rangkaian Operasional Amplifier
3.1.3.1. Penguat Non-Inverting
Gambar 3.3 dibawah ini merupakan rangkaian pemilih penguatan
dengan menggunakan non-inverting amplifier. Harga penguatan yang
dihasilkan bergantung pada harga Rf dan Rin yang keduanya
merupakan resistansi input dan resistansi feedback dengan persamaan :
Av = 1 +
Rf
Ri
......................(3.1)
71
Av =
Vout
Vin
......................(3.2)
In
Out
+
-
TL 084
R1
R2
10K
100K
Gambar 3.4 Rangkaian penguat non-inverting
3.1.3.2. Rangkaian Penyearah
Rangkaian penyerah yang digunakan adalah rangkaian penyearah
gelombang penuh yang mana akan mengeluarkan suatu keluaran yang
sebanding dengan besar masukannya, tetapi tidak sebanding dengan
polaritas masukannya. Berikut ini adalah gambar rangkaian penyearah
gelombang penuh dengan menggunakan diode 1N4148 dan IC TL074.
10 K
IN4148
Input
Output
+
10 K
IN4148
TL 074
10 K
IN4148
10 K
+
TL 074
5K6
IN4148
Gambar 3.5 Rangkaian Penyearah
72
3.1.3.3. Rangkaian Pengubah AC ke DC
Sebuah kapasitor bocoran rendah yang harganya besar (10 uF
tantalum) ditambahkan dengan rangkaian harga mutlak dari gambar 3.5.
Rangkaian yang dihasilkan adalah penguat MAV atau pengubah ac-kedc yang terlihat pada gambar 3.5. Kapasitor C melaksanakan perataan
keluaran yang disearahkan dari opamp B. Diperlukan kira-kira 50 siklus
tegangan masukan sebelum tegangan kapasitornya menurun ke
pembacaan akhir. Jika bentuk-bentuk gelombang sinus diterapkan ke
pengubah ac-ke-dc, keluaran akan merupakan MAV dari tiap
gelombang.
Gambar 3.6 Rangkaian pengubah ac-ke-dc
3.1.3.4. Rangkaian differensial
73
Gambar 3.7 Rangkaian differensial
Ouput dari rangkaian pengubah ac ke dc sebagai input rangkaian
diffrensial dihubungkan pada kaki negatif Op-Amp. Kemudian pada
kaki positif dihubungkan pada tegangan dc sebesar tegangan maksimal
yang dihasilkan oleh sensor. Diode zener 5 volt digunakan sebagai
pengaman ADC agar tegangan output tidak melebihi 5 volt.
3.1.4. Rangkaian Mikrokontroler AVR ATMega16
Gambar 3.8 Rangkaian mikrokontroler Atmega16
Mikrokontroler Atmega 16 dalam proyek akhir ini digunakan
untuk mengolah data dari masukan sensor dan kemudian diolah menjadi
data keluaran. Atmega16 merupakan mikrokontroler keluarga AVR
Atmega termasuk tipe CMOS 8 bit dengan 8 Kbytes Flash PEROM
(Programmable Erasable Read Only Memory). Atmega16 mempunyai
komponen memori sebagai berikut :
74
1.
2.
3.
RAM Internal, memori sebesar 512 bytes yang biasanya
digunakan untuk menyimpan program atau data yang sedang
berjalan dan bersifat sementara.
Special Function Register (SFR) disebut juga Register fungsi
khusus karena memori ini berisi register-register yang
mempunyai fungsi-fungsi khusus yang disediakan oleh
mikrokontroler tersebut seperti timer, serial dan lain-lain.
Flash PEROM, memori yang digunakan untuk menyimpan
instruksi/program dasar dari sebuah mikrokontroler.Atmega
mempunyai struktur memori yang terpisah antara RAM internal
dan Flash PEROM-nya, RAM internal dialamati oleh RAM
Address Register sedang FLASH PEROM dialamati oleh
Program Address Register.
Di sini akan dibahas sedikit keterangan mengenai port-port yang
kita gunakan dalam mikrokontroler.
1. Port paralel
2. Konfigurasi pin dari mikrokontroler untuk ADC
3. Interfacing simulasi pada gedung
3.1.4.1 Port Paralel
Untuk komunikasi paralel pada Atmega 16 sebagai pengiriman atau
download program Menggunakan port paralel yang tersedia di
Atmega16 yaitu sck port B7, miso port B6, mosi port B5, dan port
reset port 9. Mendownload program ke Atmega16 melalui modul
downloder sebagai interface dari PC ke AVR.
75
Gambar 3.9 Rangkaian Downloader
3.1.4.2. Diagram Blok dan Konfigurasi Pin ADC
Adapun blok diagram dari mikrokontroler Atmega1 digambarkan
pada gambar 3.8 Mikrokontroler ini memiliki 40 konfigurasi pin seperti
digambarkan pada gambar
76
Gambar 3.10 Blok Diagram ADC Mikrokontroler ATmega16
ADC mengkonversi input analog voltase untuk 10-bit nilai
digital sampai berurutan. Nilai minimum sebagai GND dan nilai
maksimum sebagai voltase pada batas atas AREF memberi data 1 LSB.
Secara bebas dipilih, AVCC atau suatu 2.56V acuan yang internal
voltase dihubungkan kepada AREF dengan menulis kepada REFSN
dalam ADMUX Mendaftarkan data. Acuannya adalah voltase internal
kemudian decoupled secara eksternal kapasitor di AREF.
Analog masuk saluran dan diferensial memproses dengan
menulis kepada MUX di dalam ADMUX. ADC yang manapun masuk,
seperti halnya GND dan suatu range acuan voltase yang ditetapkan
dapat terpilih sebagai masukan ke ADC. Suatu pemilihan ADC dapat
terpilih sebagai masukan negatif dan positif
pada amplifier
keuntungannya adalah diferensial. Jika saluran diferensial terpilih,
keuntungannya diferensial memperkuat range perbedaan voltase antara
input terpilih nilai yang diperbesar kemudian menjadi analog masuk ke
ADC.
77
Pada tugas ahkir ini ADC yang digunakan hanya satu channel
yaitu ADC channel 0.
3.1.4.3. Perancangan Rangkaian untuk simulasi
Simulasi yang digunakan adalah buzzer, LED dan motor.
Gambar rangkaian dari simulasi dapat dilihat pada gambar 3.11.
PC.0
μC
PC.6
Vcc+12
PD.7
PD.6
Gambar 3.11 Rangkaian simulasi pada gedung
Buzer akan berbunyi apabila getaran yang ditangkap sensor
bertambah besar. Buzer pada mikrokontroler dihubungkan di PortD.7.
Kemudian LED digunakan sebagai simulasi dari saluran listrik dan gas.
Jika kondisi tidak ada getaran atau mendeteksi getaran kecil maka LED
tetap menyala dan apabila getaran yang ditangkap sensor sangat besar
maka secara otomatis LED akan mati. Simulasi LED ini dihubungkan
pada PortC 0-6. Motor digunakan untuk simulasi pintu darurat. Untuk
driver motor digunakan dua buah relay. Jika getaran yang dihasilkan
sensor sangat besar maka pintu secara otomatis akan membuka. Untuk
78
menutup dapat ditekan tombol switch. Port yang digunakan untuk
mengatur pintu ini adalah PortD.6
3.2. PERANCANGAN dan PEMBUATAN PERANGKAT LUNAK
Perancangan software disini adalah software untuk mengontrol
hardware.
3.2.1. CodeVision AVR
CodeVisionAVR merupakan software C-cross compiler,
dimana program dapat ditulis menggunakan bahasa-C. Dengan
menggunakan pemrograman bahasa-C diharapkan waktu disain
(deleloping time) akan menjadi lebih singkat. Setelah program dalam
bahasa-C ditulis dan dilakukan kompilasi tidak terdapat kesalahan
(error) maka proses download dapat dilakukan. Mikrokontroler AVR
mendukung sistem download secara ISP (In-System Programming).
Gambar 3.12 Tampilan CodeVisionAVR
Untuk memulai bekerja dengan CodeVisionAVR pilih pada menu File > New. Maka akan muncul kotak dialog sebagai berikut :
79
Gambar 3.13 Tampilan new file
Pilih Project kemudian tekan OK, maka akan muncul kotak dialog
berikut.
Gambar 3.14 Tampilan option di Wizard AVR
Pilih
Yes
untuk
menggunakan
CodeWizardAVR.
CodeWizardAVR digunakan untuk membantu dalam men-generate
program, terutama dalam konfigurasi chip mikrokontroler, baik itu
konfigurasi Port, Timer, penggunaan fasilitas-fasilitas seperti LCD,
interrupt, dan sebagainya. CodeWizardAVR ini sangat membantu
programmer untuk setting chip sesuai keinginan. Berikut ini tampilan
CodeWizardAVR untuk setting Chip dan Port dari mikrokontroler
80
Gambar 3.15Tampilan option IC port
Gambar 3.16 Tampilan Port C AVR
81
Untuk selanjutnya fasilitas-fasilitas lainnya dapat disetting
sesuai kebutuhan dari pemrograman. Setelah selesai dengan
CodeWizardAVR, selanjutnya pada menu File, pilih Generate, Save
and Exit dan simpan pada direktori yang diinginkan.
Gambar 3.17 Tampilan Save general project
82
+++++++++Halaman ini sengaja dikosongkan+++++++++
83
BAB IV
PENGUJIAN DAN ANALISA
PERANGKAT KERAS DAN LUNAK
Untuk mengetahui bekerja atau tidaknya perangkat yang telah
dibuat harus dilakukan suatu pengujian berupa kinerja maupun dengan
pengukuran terhadap perangkat juga terhadap respon yang dihasilkan.
Suatu sistem dinyatakan bekerja dengan baik bila sistem itu bekerja
sesuai dengan tujuan awal yang dicapai saat pertama kali dilakukan
perancangan.
4.1. PENGUJIAN PERANGKAT KERAS
4.1.1. Pengujian Sensor Getaran
• Tujuan
Untuk mengetahui pengaruh posisi solenoid terhadap tegangan
yang dihasilkan.
• Rangkaian pengujian
Gambar 4.1 Rangkaian pengujian sensor getaran
•
Peralatan yang dibutuhkan
- Sensor getaran yang telah dibuat
- Rangkaian Osilator
- Osciloscop
84
•
•
Langkah-langkah Pengukuran
1. Menghubungkan lilitan dengan Osilator dan Resistor dengan
Osciloscop.
2. Atur Amplitudo dan Frekuensi Osilator pada nilai tertentu.
3. Ubah-ubah posisi solenoid.
4. Amati sinyal pada Osciloscop, catat nilainya dan masukkan
pada tabel.
5. Ulangi langkah dua sampai empat hingga didapatkan data
yang valid.
Hasil Pengujian
- Tabel pengujian
Tabel 4.1 Hasil pengujian sensor
f = 190 KHz
Posisi
Output
0 cm (paling bawah)
8,40 mVp-p
1 cm
22,7 mVp-p
2 cm
33,4 mVp-p
3 cm
44,8 mVp-p
4 cm
34,0 mVp-p
5 cm
21,3 mVp-p
6 cm (paling atas)
8,70 mVp-p
Dari hasil pengujian dapat diketahui bahwa tegangan terbesar
didapatkan saat solenoid berada di posisi tengah. Hal ini
disebabkan karena arus induksi yang dihasilkan oleh solenoid yang
melewati resistor saat soleniod berada di tengah adalah yang
terbesar. Tegangan output saat posisi solenoid berada di atas dan di
bawah hampir sama dan tidak ada perbedaan beda fase. Tegangan
terbesar yang dihasilkan adalah sebesar 44,8 mVp-p dan tegangan
terkecil yang dihasilkan adalah sebesar 8,40 mVp-p.
Dari hasil tabel pengujian juga dapat diketahui bahwa
tegangan yang dihasilkan dari perubahan posisi solenoid berubah
secara tidak linier, dimana tegangan output yang dihasilkan akan
semakin besar bila posisi solenoid semakin jauh dari resistor.
Resistor yang digunakan pada sensor tersebut adalah sebesar
1K dan 3K3 dengan daya resistor sebesar 2W. Pemilihan
komponen tersebut dilakukan setelah melakukan pengujian
terhadap beberapa resistor dengan nilai dan daya yang berbeda,
dimana hasil dari pengujian tersebut dapat diketahui bahwa
85
berapapun nilai dari resistor jika dayanya semakin besar maka
tegangan output yang dihasilkan juga semakin besar. Untuk daya
yang sama, jika nilai resistor semakin besar tegangan output yang
dihasilkan juga semakin besar namun noise juga ikut besar
sehingga bentuk sinyal output yang terlihat pada osiloskop sudah
bercampur dengan noise (tidak murni sinus lagi). Dari pengujian
tersebut digunakan frekuensi input dari rangkaian Osilator sebesar
190 KHz. Hal ini dilakukan karena saat melakukan pengujian
diketahui bahwa bila frekuensi input kecil, maka tidak akan timbul
medan magnet pada solenoid sehingga tidak ada arus induksi yang
melewati resistor yang menyebabkan tidak ada tegangan output.
Saat frekuensi terlalu besar, sinyal atau tegangan output yang
dihasilkan mengalami banyak kecacatan atau noise sehingga sinyal
outputnya tidak murni sinus lagi. Dari hasil pengujian tersebut juga
dapat diketahui bahwa besarnya frekuensi input sama dengan
frekuensi output yang dihasilkan oleh sensor. Data hasil pengujian
untuk beberapa variasi frekuensi osilator tercantum pada lampiran
1.
4.1.2. Pengujian Operasional Amplifier
4.1.2.1. Pengujian Penguat Non-Inverting
• Tujuan
Untuk mendapatkan penguatan beberapa kali agar saat input
maksimal didapatkan output maksimal yang terukur pada skala
rata-rata (tegangan yang terukur pada voltmeter) sebesar 5V DC.
• Rangkaian Pengujian
Gambar 4.2 Rangkaian pengujian penguat non-inverting
•
Peralatan yang dibutuhkan
- Power supply ganda +12 V, -12 V dan GND
- Sensor yang telah dibuat
- Osilator
86
•
- Osciloscop
Langkah-langkah Pengukuran
1. Menghubungkan rangkaian dengan catu daya, osilator dan
osciloscop.
2. Ubah-ubah posisi sensor.
3. Amati tegangan output pada osciloscop, catat nilainya dan
masukkan pada tabel.
4. Ulangi langkah 2 dan 3 untuk beberapa data yang berbeda.
5. Hitung Vout berdasarkan teori.
⎛ Rf
⎞
+ 1⎟ • Vin
Vout = ⎜
⎝ Ri
⎠
6.
......................(4.4)
Bandingkan hasil pengukuran dengan hasil teori, cari persen
error.
Persen Error =
•
Teori − Pengukuran
• 100% ............(4.5)
Teori
Hasil Pengujian
- Tabel
Tabel 4.2 Hasil pengukuran rangkaian penguat
Input
Output
Output
Teori
Pengukuran
8,4 mVp-p
3.3 Vp-p
3,23 Vp-p
22,7 mVp-p
8.8 Vp-p
8,73 Vp-p
33,4 mVp-p
12.7 Vp-p
12,85 Vp-p
44,8 mVp-p
17.4 Vp-p
17,24 Vp-p
34,0 mVp-p
13.0 Vp-p
13,09 Vp-p
21,3 mVp-p
8.3 Vp-p
8,20 Vp-p
8,70 mVp-p
3.4 Vp-p
3,34 Vp-p
- Gambar bentuk sinyal
87
Error
2,16 %
0.80 %
1,16 %
0,92 %
0,68 %
1,21 %
1,79 %
(a)
(b)
(
(c)
Gambar 4.3 Bentuk sinyal output penguat
a.Tengah b.Bawah c. Atas
•
Analisa
Dari hasil perhitungan persen error pada tabel diatas, dapat
diketahui bahwa terdapat perbedaan antara hasil pengukuran
dengan hasil perhitungan. Hal ini disebabkan karena adanya
ketidakpresisian komponen dan juga pengaruh noise dari luar.
Dari hasil tabel diatas dapat diketahui bahwa penguatan yang
dihasilkan sebesar ± 385 kali. Sinyal input dari rangkaian diatas
berasal dari sinyal output pada sensor.
Dalam hal ini kami tidak memperhitungkan besarnya
penguatan, karena penguatan yang kami buat hanya digunakan
untuk menguatkan sinyal output dari sensor yang masih terlalu
kecil yang tujuannya adalah agar sinyal ouput dari sensor tersebut
dapat diolah atau diproses pada bagian pengubah AC ke DC yang
mana output dari rangkaian pengubah AC ke DC terukur dalam
skala Vdc (Tegangan rata-rata).
4.1.2.2 Pengujian Rangkaian Rectifier dan Pengubah AC ke DC
• Tujuan
Untuk mengubah sinyal AC dari sensor menjadi sinyal DC yang
terukur pada kondisi rata-rata atau tegangan yang terukur pada
voltmeter yang akan diumpankan atau digunakan sebagai masukan
untuk ADC sehingga sinyal tersebut bisa diolah oleh ADC.
88
•
Rangkaian Pengujian
Gambar 4.4 Rangkaian pengujian rectifier dan pengubah ac ke dc
Peralatan yang dibutuhkan
- Power supply ganda +12 V, -12 V dan GND
- Voltmeter digital
- Osilator
- Osciloscop
• Langkah-langkah Pengukuran
1. Menghubungkan rangkaian dengan catu daya, Osilator dan
osciloscop.
2. Menghubungkan rangkaian sensor dengan Osilator (output dari
sensor yang telah dikuatkan digunakan sebagai input pada
rangkaian ini).
3. Ubah-ubah posisi sensor.
4. Amati tegangan output pada osciloscop, ukur tegangan output
dengan voltmeter, catat nilainya dan masukkan pada tabel.
5. Ulangi langkah 3 dan 4 untuk beberapa data yang berbeda.
•
•
Hasil Pengujian
Tabel 4.3 Hasil Pengukuran Rangkaian Pengubah AC ke DC
Input
Output (DC)
3.3 Vp-p
1,25 Vdc
8.8 Vp-p
3.42 Vdc
12.7 Vp-p
4,46 Vdc
17.4 Vp-p
6,42 Vdc
13.0 Vp-p
4,67 Vdc
89
8.3 Vp-p
3.4 Vp-p
•
2,95 Vdc
1,53 Vdc
Analisa
Dari hasil pengukuran dapat diketahui bahwa tegangan output
yang terukur pada skala V-dc berubah sebanding dengan
perubahan tegangan input yang terukur pada skala Vp-p. Input
rangkaian diatas adalah sinyal output dari penguat yang masih
berupa sinyal AC. Output dari rangkaian ini sudah berupa sinyal
DC. Untuk membalik nilai tegangan terhadap posisi sensor maka
sebelum masuk ke ADC ditambahkan rangkaian differensial.
4.1.3. Pengujian Rangkaian Differensial
• Tujuan
Untuk membalik nilai tegangan terhadap posisi selenoid.
• Rangkaian Pengujian
Gambar 4.5 Rangkaian pengujian differensial
•
•
Peralatan yang dibutuhkan
- Power supply ganda +12 V, -12 V dan GND
- Voltmeter digital
- Osilator
- Osciloscop
Langkah-langkah Pengukuran
1. Menghubungkan rangkaian dengan catu daya, Osilator dan
90
osciloscop.
2. Menghubungkan rangkaian sensor dengan Osilator (output dari
sensor yang telah disearahkan digunakan sebagai input pada
rangkaian ini).
3. Ubah-ubah posisi sensor.
4. Amati tegangan output pada osciloscop, ukur tegangan output
dengan voltmeter, catat nilainya dan masukkan pada tabel.
5. Ulangi langkah 3 dan 4 untuk beberapa data yang berbeda.
•
Hasil Pengujian
Tabel 4.4 Hasil Pengukuran Rangkaian Differensial
Input
Output (DC)
1,25 Vdc
4,86 Vdc
3.42 Vdc
3.42 Vdc
4,46 Vdc
1,25 Vdc
6,42 Vdc
0,76 Vdc
4,67 Vdc
1,47 Vdc
2,95 Vdc
3,75 Vdc
1,53 Vdc
4,58 Vdc
•
Analisa
Dari hasil pengukuran dapat diketahui bahwa tegangan output
yang terukur berbanding terbalik terhadap tegangan input. Input
rangkaian diatas adalah sinyal output dari penyearah. Output dari
rangkaian ini sebelum dimasukkan ADC ditambahkan diode zener
5 V agar output dari rangkaian tidak lebih dari 5 volt.
4.2 Pengujian sistem keseluruhan
Pada pengujian ini kita dapat diketahui besar gempa yang
terjadi dengan melihat jarak simpangan dari selenoid sensor.
Berdasarkan perhitungan dengan metode tabel seperti yang dijelaskan
pada teori skala richter maka sensor ini hanya mampu mendeteksi
gempa sebesar 6 skala richter. Nilai ini diperoleh dari simpangan
maksimum sebesar 7 cm (70 milimeter ) dan lama waktu pendeteksi
getaran adalah 5 detik maka dengan menarik garis dari titik 5 detik di
sebelah kiri ke titik 7 cm di sebelah kanan maka garis tersebut akan
memotong skala 6,0. Jadi skala gempa tersebut sebesar 6,0 skala
Richter. Untuk lebih jelasnya dapat dilihat pada gambar 4.6 di bawah
ini
91
Gambar 4.6 Perhitungan Skala Richter
Data ADC yang terbaca sesuai dengan
dilihat pada gambar 4.7 di bawah ini
(a)
simpangan selenoid dapat
(b)
92
(c)
Gambar 4.7 Data yang terbaca ADC
a. Aman b.Mulai bahaya c. Bahaya
•
Hasil pengujian
Simpangan
(cm)
Tabel 4.5 Hasil pengujian sistem secara keseluruhan
Magnitude
Data yang
(Skala richter) dibaca ADC
Aksi
0
2.8
±4234
LED on, Buzzer off, Motor off
1
3.0
±4664
LED on, Buzzer off, Motor off
2
3.5
±5084
LED on, Buzzer off, Motor off
3
4.0
±5565
LED on, Buzzer on, Motor off
4
4.4
±6176
LED on, Buzzer on, Motor off
5
5.0
±7024
LED on, Buzzer on, Motor off
6
5.6
±9218
LED off, Buzzer on, Motor on
7
6.0
±9953
LED off, Buzzer on, Motor on
93
•
Analisa
Dari data yang diperoleh dapat diketahui apabila sensor mendeteksi
getaran sebesar 2.8 – 3.5 skala richter maka pada simulasi gedung tidak
melakukan aksi (LED on, buzzer off, motor off). Hal ini dikarenakan
pada skala tersebut kondisi masih tergolong aman. Jika getaran yang
terdeteksi sebesar 4.0 – 5.0 skala richter maka kondisi tersebut mulai
berbahaya, pada simulasi gedung akan membunyikan buzzer tetapi
LED masih tetap menyala. Apabila getaran semakin besar yaitu 5.6 –
6.0 skala richter maka pada simulasi gedung akan mematikan LED,
membunyikan buzzer dan menghidupkan motor. Sensor yang telah
dibuat ini mampu mendeteksi getaran maksimal 6.0 skala richter hal ini
dikarenakan simpangan terjauh dari sensor adalah 7 cm.
94
+++++++++Halaman ini sengaja dikosongkan+++++++++
95
BAB V
PENUTUP
5.1. KESIMPULAN
Dari seluruh tahapan yang sudah dilaksanakan pada penyusunan
proyek akhir ini, mulai dari study literatur, perancangan dan pembuatan
sampai pada pengujiannya maka dapat disimpulkan bahwa:
• Aksi pada simulasi gedung dibagi menjadi tiga kondisi yaitu aman,
medium dan bahaya. Kondisi aman berada di bawah 3.5 skala
richter hasil dari perhitungan simpangan sensor yang tidak lebih
dari 2 cm. Untuk kondisi medium berada pada 4.0 – 5.0 skala
richter yang merupakan hasil perhitungan simpangan sensor sejauh
3 – 5cm. Sedangkan untuk kondisi bahaya berada pada 5.6 – 6.0
skala richter dengan simpangan sensor sejauh 6 – 7 cm.
• Sensor yang telah dibuat mampu mendeteksi getaran maksimal 6.0
skala richter. Hal ini dikarenakan jarak simpangan terjauh dari
selenoid hanya 7 cm.
• Getaran yang dideteksi sensor pada proyek akhir ini adalah dari
hasil simulasi saja karena untuk kondisi sebenarnya kita harus
menunggu terjadinya gempa.
• Sensor ini dapat bekerja dengan baik pada input frekuensi 190
KHz. Untuk input frekuensi dibawah 190KHz tegangan output dari
sensor tidak keluar, sebaliknya jika input frekuensi yang diberikan
diatas 190 KHz akan terjadi noise sehingga output dari sensor tidak
sesuai yang diharapkan.
5.2. SARAN
Untuk lebih memperbaiki dan menyempurnakan kinerja dari alat
ini, maka perlu disarankan :
• Untuk penggunaan pada kondisi nyata sebaiknya dilakukan
kalibrasi terlebih dahulu dengan seismograf.
• Frekuensi yang digunakan sebaiknya disesuaikan dengan jumlah
lilitan dan diameter kawat email yang digunakan pada sensor.
.
96
+++++++++Halaman ini sengaja dikosongkan+++++++++
97
DAFTAR PUSTAKA
[1] Sigit Priyanto, 2005, “Sensor Posisi untuk Mendeteksi Amplitudo
Getaran dengan Hukum Faraday”, Proyek Akhir D3 Jurusan
Teknik Elektronika PENS-ITS, Surabaya.
[2] Marthen Kanginan, “FISIKA 2000”, Penerbit ERLANGGA,
Jakarta, 1995.
[3] Paulus Andi Nalwan, “Panduan praktis teknik antarmuka dan
pemrograman mikrokontroller ATmega16”, PT. Elex Media
Komputindo, Jakarta, 2003.
[4] Robert F. Coughlin, Frederick F. Driscoll, “Operational Amplifiers
and Linier Integrated Circuits”, Penerbit Erlangga, Jakarta, 1994.
[5] ___________,www.atmel.com, diakses 17 Juni 2007
[6] ___________,www.intersil.com, diakses 18 Juni 2007
[7] ___________,www.ligo.caltech.edu, diakses 21 Juni 2007
[8] ___________,www.senet.com.au, diakses 21 Juni 2007
[9] ___________,www.wikipedia.org, diakses 21 Juni 2007
98
#include <mega16.h>
// Standard Input/Output functions
#include <stdio.h>
#include <delay.h>
void aksi (void);
unsigned int teg,a;
char rata2[100];
// Timer 1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
// Reinitialize Timer 1 value
TCNT1H=0x81;
TCNT1L=0x70;
// Place your code here
teg=a;
//sprintf(rata2,"\r %d",teg);
puts(rata2);
aksi ();
a=0;
TIFR=0x04;
}
#define ADC_VREF_TYPE 0x40
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
// Declare your global variables here
void aksi (void)
{
99
if (teg<=6000)
{
delay_ms(500);
PORTC=0xff;
PORTD.7=0;
PORTD.6=0;
//putsf("\r lampu hidup,baser mati, motor mati");
}
else if (teg>6000&&teg<=9000)
{
PORTC=0xff;
PORTD.7=1;
PORTD.6=0;
//
putsf("\r lampu hidup,baser hidup, motor mati");
}
else if (teg>9000)
{
PORTC=0x00;
PORTD.7=1;
PORTD.6=1;
//putsf("\r lampu mati,baser hidup, motor hidup");
}
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In
Func6=In Func7=In
// State0=T State1=T State2=T State3=T State4=T State5=T State6=T
State7=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
100
// Func0=Out Func1=In Func2=In Func3=In Func4=In Func5=In
Func6=In Func7=Out
// State0=0 State1=T State2=T State3=T State4=T State5=T State6=T
State7=0
PORTB=0x81;
DDRB=0x00;
// Port C initialization
// Func0=Out Func1=Out Func2=Out Func3=Out Func4=Out
Func5=Out Func6=Out Func7=Out
// State0=1 State1=1 State2=1 State3=1 State4=1 State5=1 State6=1
State7=1
PORTC=0xFF;
DDRC=0xFF;
// Port D initialization
// Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In
Func6=out Func7=Out
// State0=T State1=T State2=T State3=T State4=T State5=T State6=0
State7=0
PORTD=0x00;
DDRD=0xC0;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 10.800 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
101
TCCR1A=0x00;
TCCR1B=0xD5;
TCNT1H=0x81;
TCNT1L=0x70;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x04;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;
102
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
// Analog Comparator Output: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 172.800 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: On
// ADC Auto Trigger Source: Free Running
ADMUX=ADC_VREF_TYPE;
ADCSRA=0xA6;
SFIOR&=0x0F;
SFIOR|=0x10;
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
a+=read_adc(0);
delay_ms(200);
sprintf (rata2,"\r %d",a);
//puts(rata2);
};
}
103
1. Frekuensi 150 KHz
2. Frekuensi 190 KHz
3. Frekuensi 230 KHz
104
Tampak Depan
Tampak Belakang
105
DAFTAR RIWAYAT PENULIS
Data Pribadi
Nama : Rachmat Winadi
TTL
: Sby, 24 Maret 1985
Alamat : Jl. SiwalanKerto Timur 1 no 41
Surabaya
Telepon : 08175052018
Email : [email protected]
Status : Belum menikah
Agama : Islam
“Berusaha dan berdo’a – berdo’a dan berusaha”
Latar belakang Pendidikan
•
•
•
•
SDN SiwalanKerto III, 1992 – 1998
SLTPN 13 Surabaya, 1998 – 2001
SMAN 16 Surabaya, 2001 – 2004
Jurusan Elektronika, PENS – ITS, 2004 – 2007
106
Download