BAB I PERANTARAAN DAN PERIPHERAL Pengertian Perantaraan dan Peripheral Secara harfiah kata perantaraan (interfacing) adalah suatu perlakuan atau usaha perangkat keras dan perangkat lunak untuk menghubungkan antar muka antara dua buah sistem. Sistem yang dihubungkan dapat berupa sistem integrasi antar IC peripheral atau sistem integrasi rangkaian hybrid ataupun sistem yang berbasis mikroprosesor atau komputer. Dapat juga dikatakan bahwa perantaraan (interfacing) adalah bagian/unit dari sistem mikrokomputer atau mikrokontroler yang berfungsi sebagai perantara hubungan antara sistem mikrokomputer atau mikrokontroler dengan perangkat luar (peripheral). Sedangkan peripheral adalah peralatan-peralatan di luar sistem mikrokomputer atau mikrokontroler
yang
dapat
berhubungan
dengan
sistem
mikrokomputer
atau
mikrokontroler, antara lain monitor (output), printer (output), keyboard (input), mouse (input), sensor (input), motor DC (output) dan lain sebagainya. Beberapa hal yang perlu diperhatikan dalam melakukan teknik perantaraan (interfacing) adalah sebagai berikut : a. Impedances Matching (kesesuaian impedansi) Impedansi output dari piranti/sistem yang di-interface-kan ke piranti yang lain hendaknya memiliki kesesuaian impedansi. Permasalahan ini akan banyak muncul dalam hal interfacing sistem analaog. Aspek ini secara otomatis berpengaruh pula terhadap tegangan dan arus. b. Logic Matching (kesesuaian logika, waktu dan kontrol) Dalam hal analisis rangkaian digital, Logic Matching ini meliputi kompatibilitas kontrol, access time terutama kemampuan maksimal kecepatan
eksekusi
dari
rangkaian/peripheral
yang
di-interface-kan,
pewaktuan untuk proses transfer data dan lain-lain. Dalam dimensi yang lebih besar, aspek kompatibilitas kontrol ini dapat pula termasuk penggunaan tipe-tipe protocol dalam interfacing antar jaringan komputer.
1
c. Aspek FAN-IN dan FAN-OUT Istilah ini khusus
digunakan dalam konteks interfacing antar gate atau
gerbang dalam rangkaian logika. Standar perancangan dan analisa yang digunakan adalah menggunakan standard IC TTL (Transistor-Transistor Logic). Dalam elektronika digital dan komputer, teknik interfacing dapat dikelompokkan dalam dua jenis berdasarkan sistem yang dihubungkan : a. Interfacing ke rangkaian berbasis mikroprosesor Pada dasarnya interfacing dan mikroprosesor adalah bagaimana cara menghubungkan atau merangkaikan memori dan IC peripheral ke mikroprosesor atau CPU. Umumnya teknik yang digunakan untuk interfacing ke mikroprosesor ini berdasarkan atas tata cara hubungan IC digital yang tentu saja berbasis logika atau berlevel tegangan digital. Sebagian besar permasalahan timbul hanya pada teknik pengalamatan dan kontrol read dan write tetapi tidak pada permasalahan tegangan antar hubungan kecuali untuk masalah buffering Fan in dan fan out. b. Interfacing ke rangkaian berbasis komputer Dalam dimensi yang lebih besar, interfacing berlaku pula untuk hubungan antar dua sistem komputer atau lebih. Akan tetapi interfacing antar komputer dalam dimensi yang lebih besar berubah menjadi nama lain. Misalnya jaringan komputer dengan nama-nama khusus LAN, WAN.
2
BAB II SEVEN (7) SEGMENT 2.1 Struktur Seven Segment Seven Segment adalah suatu segmen-segmen (ruas-ruas) yang digunakan menampilkan angka.
Seven segment merupakan display visual yang umum digunakan
dalam dunia digital. Seven segment sering dijumpai pada jam digital, penujuk antrian, display angka digital, termometer digital, dll. Seven segmen ini tersusun atas 7 batang LED yang disusun membentuk angka 8 yang penyusunannya menggunakan label dari ‘a’ sampai ‘g’ dan satu lagi untuk dot point (DP) seperti pada gambar 2.1. Setiap segmen ini terdiri dari 1 atau 2 Light Emitting Diode ( LED ). Salah satu terminal LED dihubungkan menjadi satu sebagai kaki bersama (pin COM).
Gambar 2.1 Tampilan Seven Segment
Jenis-jenis Seven Segment berdasarkan strukturnya adalah sebagai berikut: 1. Common Anoda (Anoda Bersama) Semua anoda dari LED dalam seven segment disatukan secara parallel dan semua itu dihubungkan ke VCC, dan kemudian LED dihubungkan melalui tahanan pembatas arus keluar dari penggerak LED. Karena dihubungkan ke VCC, maka common anoda ini berada pada kondisi active low (led akan menyala/aktif bila diberi logika 0). 2. Common Katoda (katoda bersama) Merupakan kebalikan dari common anoda. Disini semua katoda disatukan secara parallel dan dihubungkan ke Ground. Karena seluruh katoda dihubungkan ke Ground, maka 3
Common katoda ini berada pada kondisi active high (led akan menyala/aktif bila diberi logika 1). Perbedaan kedua jenis seven segment ini juga dapat dilihat dari sisi strukturnya seperti pada gambar 2.2 berikut.
Gambar 2.2 Struktur Seven Segment
2.2 Prinsip Kerja Seven Segment Prinsip kerja seven segment ini dibagi menjadi dua yaitu menggunakan decoder dan tanpa decoder. 2.2.1 Tanpa Decoder LED sebagai penyusun seven segment merupakan komponen diode yang dapat memancarkan cahaya. (kondisi dalam keadaan ON) jika sisi anoda mendapatkan sumber positif dari Vcc dan katoda mendapatkan sumber negatif dari ground. Untuk sevent segment tanpa decoder, semua dioda penyusunnya dihubungkan langsung dengan sumber daya (bila tidak dikendalikan) atau mikrokontroler (bila ingin dikendalikan). Gambar 2.3 menunjukkan hubungan langsung antara modul 7 segment dengan IC AT89C51 dalam mode common anoda dan IC AT89S51 dalam mode common katoda. Hubungan ini juga dapat diterapkan pada mikrokontroler lain. Dalam mode anoda bersama pin COM dari modul seven segment dihubungkan ke sumber daya (Vcc) dan pada mode katoda bersama pin COM ke ground.
4
(a)
5
(b) sumber: www.circuitstoday.com Gambar 2.3 Hubungan Langsung Modul 7 Segment (a) Common Anoda Dengan IC AT89C51 dan (b) Common Anoda dengan AT89S51
Agar seven segment dapat menampilkan angka atau karakter yang sesuai dengan yang diharapkan, jenis common katoda atau common anoda dari seven segment yang digunakan harus diketahui. Ruas-ruas seven segment common katode akan aktif pada kondisi high "1" dan akan off pada kondisi low "0". Sebaliknya, ruas-ruas seven segment common anoda akan aktif pada kondisi low "0" dan akan off pada kondisi high "1". Perhatikan tabel 2.1 berikut ini dan sesuaikan nilai pengisiannya dengan gambar 2.2 sebelumnya.
6
Tabel 2.1 Pemberian nilai pada common katoda (tabel kiri) dan common anoda (tabel kanan)
Tabel 2.1 di atas dapat digunakan untuk menuntun pengisian nilai ke seven segment. Misalnya digunakan seven segment jenis common katoda dan diharapkan angka 5 yang tampil. Nilai masukan yang sesuai ke modul seven segment adalah 0110 1101 (6DH). Rinciannya adalah nilai 0 (dari sisi MSB) tidak digunakan, nilai 1 ke pin g, nilai 1 ke pin f, nilai 0 ke pin e, nilai 1 ke pin d, nilai 1 ke pin c, nilai 0 ke pin b dan nilai 1 ke pin a.
2.1.1 Dengan Decoder (7447/7448) Seven segment dapat menampilkan angka-angka desimal dan beberapa karakter tertentu melalui kombinasi aktif atau tidaknya LED penyusunan dalam seven segment. Untuk memudahkan penggunaan atau pemrograman seven segment, umumnya digunakan sebuah decoder (mengubah/mengkoversi input bilangan biner menjadi desimal) atau seven segment driver yang akan mengatur aktif tidaknya LED-LED dalam seven segment sesuai dengan nilai biner yang diberikan. Prinsip kerja seven segment dengan decoder ialah input biner atau BCD (binary coded decimal) dari mikrokontroler masuk ke dalam decoder, kemudian decoder mengkonversi
7
bilangan biner atau BCD tersebut menjadi desimal yang nantinya akan ditampilkan pada seven segment. Decoder BCD ke seven segment digunakan untuk menerima masukan BCD 4-bit dan memberikan keluaran yang melewatkan arus melalui segmen untuk menampilkan angka desimal. Jenis decoder BCD ke seven segment ada dua macam yaitu decoder yang berfungsi untuk menyalakan seven segment mode common anoda dan decoder yang berfungsi untuk menyalakan seven segment mode common katoda. Contoh IC converter BCD to Seven Segment untuk 7-segment Common Anoda adalah decoder IC TTL 7447 dan untuk Common Katoda adalah IC TTL 7448. Gambar dan konfigurasi pin IC 74LS47 ditunjukkan pada gambar 2.4 berikut :
Gambar 2.4 Konfigurasi Pin IC 74LS47 8
Sumber: www.yousaytoo.com Gambar 2.5 Rangkaian decoder 7447 dengan Seven segment
Decoder BCD ke seven segment mempunyai masukan berupa bilangan BCD 4-bit yaitu A0 (LSB), A1, A2 dan A3 (pada sebagian IC dinamai masukan A, B, C dan D). Seperti biasa, pin VCC ke sumber 5 Volt dan GND ke ground. Bilangan BCD ini dikodekan sehingga membentuk kode tujuh segmen yang akan menyalakan ruas-ruas yang sesuai pada seven segment pada pin a - g. Masukan BCD diaktifkan oleh logika ‘1’ (active high) dan keluaran dari dekoder 7447 adalah active low sehingga sesuai dengan seven segment tipe common anoda. Tiga masukan ekstra juga ditunjukkan pada konfigurasi pin IC 7447 yaitu masukan LT (lamp test), masukan BI (blanking input/ripple blanking output), dan RBI (ripple blanking input). Konfigurasi lebih lengkap dapat dilihat pada tabel 2.2.
9
Tabel 2.2 Tabel kebenaran dari IC 74LS47
Dengan memanfaatkan decoder 74LS47 ini, pemrograman seven segment tipe common anoda akan lebih mudah karena programmer tidak perlu mengingat konfigurasi nilai biner tiap angka seven segment seperti pada tanpa decoder sebelumnya tetapi cukup memasukkan nilai BCD yang sesuai dengan nilai yang ingin ditampilkan. Misalnya akan ditampilkan angka 7 maka cukup diberikan nilai 0111 (0111 biner = 7 desimal= 7H). Bandingkan dengan tanpa decoder, nilai yang harus diberikan adalah 1111 1000 biner = F8H, lebih susah diingat karena tidak bersesuaian dengan nilai heksanya. Masukan LT' , Lamp Test, berfungsi untuk mengeset display, bila diberi logika ‘0’ maka semua keluaran dari IC ini akan berlogika 0 sehingga seven segment akan menunjukkan angka delapan (8). Masukan BI'/RBO' , Blanking Input/Row Blanking Output, berfungsi untuk mematikan keluaran dari IC. Bila diberi logika “0” maka semua keluaran IC akan berlogika “1” dan seven segment akan mati. Sedangkan masukan RBI' , Row Blanking 10
Input, berfungsi untuk mematikan keluaran dari IC jika semua input berlogika “0”. Bila diberi logika “0”, diberi logika “1” dan diberi logika “0” maka semua keluaran IC akan berlogika “1” dan seven segment akan mati.
Multi Seven Segment Untuk dapat menampilkan karakter bernilai puluhan, ratusan, ribuan dan seterusnya maka diperlukan beberapa seven segment dikendalikan sekaligus (multi seven segment system). Pengendalian ini dapat langsung dari mikrokontroler atau melalui decoder yang sesuai. Berikut ini adalah beberapa pilihan rangkaian yang dapat ditempuh untuk mewujudkan tampilan dengan multi seven segment.
(a)
(b) Sumber : http://www.circuitstoday.com 11
Sumber: http://electro-circuit.net (c) Gambar 2.6 Multi Seven Segment (a) Bentuk dasar rangakaian multi seven segment (b) multi seven segment tanpa decoder (c) multi seven segment dengan decoder
Agar seven segmen dapat menampilkan angka-angka yang sesuai maka diperlukan teknik pemrograman scanning dimana setiap seven segment dihidupkan secara bergantian dalam waktu yang cepat sekali. Kalau diperhatikan rangkaian pada gambar 2.6, setiap seven segment mendapatkan data yang sama. Agar dapat ditampilkan angka yang berbeda, misalnya 749 pada sistem di gambar 2.6 (b), maka berikan data 9 ke seven segmen satuan (dengan common anodanya bernilai 1) dan matikan seven segmen puluhan serta ratusan (dengan memberikan nilai 0 pada common anodanya). Selang waktu yang singkat berikutnya, berikan nilai 4 ke seven segmen puluhan dan matikan seven segmen satuan serta ratusan. Selang waktu yang singkat berikutnya, berikan nilai 7 ke seven segmen ratusan dan matikan seven segmen satuan serta puluhan. Pemberian nilai ini dilakukan dalam sebuah siklus sehingga terlihat oleh mata tampilnya angka 749.
12
BAB III LAYAR LCD 3.1 Layar LCD 2 x 16 Display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik. LCD adalah lapisan dari campuran organik antara lapisan kaca bening dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment dan lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan medan listrik (tegangan), molekul organik yang panjang dan silindris menyesuaikan diri dengan elektroda dari segmen. Lapisan sandwich memiliki polarizer cahaya vertikal depan dan polarizer cahaya horisontal belakang yang diikuti dengan lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati molekul-molekul yang telah menyesuaikan diri dan segmen yang diaktifkan terlihat menjadi gelap dan membentuk karakter data yang ingin ditampilkan.
Gambar 3.1 Satu unit LCD 2 x 16 Adapun fitur yang disajikan dalam LCD ini adalah : a.
Terdiri dari 16 karakter (kolom) dan 2 baris.
b. Mempunyai 192 karakter tersimpan. c.
Terdapat karakter generator terprogram.
d. Dapat dialamati dengan mode 4-bit dan 8-bit. 13
e.
Dilengkapi dengan back light.
Dalam modul LCD (Liquid Cristal Display) terdapat mikrokontroler yang berfungsi sebagai pengendali tampilan karakter LCD. Mikrokontroler ini dilengkapi dengan memori dan register. Memori yang digunakan mikrokontroler internal LCD ini adalah: a. DDRAM (Display Data Random Access Memory) merupakan memori tempat karakter yang akan ditampilkan berada. b. CGRAM (Character Generator Random Access Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. c. CGROM (Character Generator Read Only Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana pola tersebut merupakan karakter dasar yang sudah ditentukan secara permanen oleh pabrikan pembuat LCD (Liquid Cristal Display) tersebut sehingga pengguna tinggal mangambilnya sesuai alamat memorinya dan tidak dapat merubah karakter dasar yang ada dalam CGROM. Sedangkan register kontrol yang terdapat dalam suatu LCD di antaranya adalah: a. Register perintah yaitu register yang berisi perintah-perintah dari mikrokontroler ke panel LCD (Liquid Cristal Display) pada saat proses penulisan data atau tempat status dari panel LCD (Liquid Cristal Display) dapat dibaca pada saat pembacaan data. b. Register data yaitu register untuk menuliskan atau membaca data dari atau keDDRAM. Penulisan data pada register akan menempatkan data tersebut keDDRAM sesuai dengan alamat yang telah diatur sebelumnya.
3.2 Konfigurasi pin LCD 2 x 16 Konfigurasi pin-pin dari sebuah layar display LCD 2 x 16 dapat dilihat pada gambar di bawah ini. Sebuah layar display LCD 2 x 16 mempunyai 16 kaki dengan rincian sebagai berikut : Pin
Deskripsi
1
Ground
2
Vcc
3
Pengatur kontras 14
4
“RS” Instruction/Register Select
5
“R/W” Read/Write LCD Registers
6
“E” atau “EN” Enable
7-14
Pin Data, lebar data 8 bit
15
Vcc
16
Ground
Gambar 3.2 konfigurasi pin-pin LCD 2 x 16
Untuk memprogram sebuah LCD agar dapat menampilkan teks sesuai dengan yang diharapkan dapat digunakan berbagai bahasa pemrograman yang biasa digunakan pada lingkungan pemrograman mikrokontroler. Untuk pemrograman dalam bahasa assembly, fungsi dan tugas setiap pin LCD harus diketahui dengan baik. Berikut ini adalah tugas dari setiap pin LCD 2 x 16: a. Pin data (D0-D7 atau DB0-DB7) adalah jalur 8 bit untuk memberikan data karakter yang ingin ditampilkan menggunakan LCD (Liquid Cristal Display), dapat
15
dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler dengan lebar data 8 bit. b. Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah perintah, sedangkan logika high menunjukan data. Saat RS berlogika Low (0), data siap untuk diperlakukan sebagai perintah atau instruksi spesial (seperti Clear Screen, Screen Position, dsb). Saat RS berlogika High (1), data akan siap mengirim text data untuk ditampilkan di LCD. Sebagai contoh, untuk menampilkan huruf 'K' pada layar LCD maka harus diberikan RS logika High (1). c. Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis data, sedangkan high baca data. Saat RW berlogika Low (0), informasi pada data bus akan ditulis ke LCD. Saat RW berlogika High (1), program akan efektif untuk membaca LCD. Hanya terdapat satu instruksi untuk membaca kondisi LCD, yaitu 'Get LCD Status'. Sisanya adalah perintah untuk menulis. Sehingga R/W hampir selalu diberi logika Low (0). d. Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar. Pin kontrol ini berfungsi untuk memberitahu LCD bahwa data akan dikirim. Untuk mengirim data ke LCD, pin ini harus dibuat di program berlogika Low (0). Setelah itu kedua Pin kontrol lainnya di set untuk mengirim data ke data bus. Saat kedua Pin kontrol tersebut telah selesai mengirimkan datanya, logika high (1) diberikan pada kaki EN. Lalu ditunggu sampai waktu yang diperlukan oleh LCD untuk menjalankan perintah selanjutnya. Rentang waktu ini bergantung pada LCD-nya, setiap LCD memiliki rentang waktu yang berbeda-beda untuk menjalankan instruksi selanjutnya yang dapat dilihat pada datasheet LCD tersebut. Setelah waktu rentang untuk menjalankan instruksi selanjutnya telah siap, logika low (0) diberikan lagi pada kaki EN. e. Pin VEE atau VLCD pengatur kontras berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan ke ground, sedangkan tegangan catu daya ke LCD sebesar 5 Volt.
16
3.3 Rangkaian Dan Pemrograman LCD 2 x 16 Pada gambar berikuit ini ditunjukkan contoh hubungan skematik antara modul mikrokontroler keluarga 8051 (misalnya AT89S51/52) dengan sebuah modul layar LCD HD44780.
Gambar 3.2 Rangkaian skematik LCD 2 x 16 Gambar hubungan skematik modul mikrokontroler 8051 dengan modul LCD Seperti yang terlihat di atas, sudah disambungkan Pin kontrol (EN, RS dan RW) dan pin-pin data (DB0-DB7) ke mikrokontroller. Berikut ini adalah program dengan perintah equ untuk penamaan variable: DB0 EQU P1.0 DB1 EQU P1.1 DB2 EQU P1.2 DB3 EQU P1.3 DB4 EQU P1.4 DB5 EQU P1.5 DB6 EQU P1.6 DB7 EQU P1.7 EN EQU P3.7 RS EQU P3.6 17
RW EQU P3.5 DATA EQU P1 Sekarang telah diberikan nama pada pin-pin LCD yang terhubung pada mikrokontroller dengan nama pin LCD itu sendiri. Selanjutnya, untuk memberikan logika High kepada pin kontrol, dapat digunakan perintah SETB. Dan untuk memberikan logika Low kepada pin kontrol, dapat di gunakan perintah CLR seperti berikut ini: SETB RW CLR EN Lalu bagaimana untuk mengecek status sibuk LCD? Atau bagaimana mengetahui bahwa LCD sudah siap untuk menjalankan instruksi selanjutnya atau tidak? Jawabannya dapat dilihat pada datasheet delay waktu LCD yang digunakan seperti yang dijelaskan sebelumnya. Tetapi ada cara lebih mudah, tidak perlu repot-repot melihat datasheet LCD tersebut, hanya perlu membuat program kondisi pada pin DB07. Apabila pin DB07 masih berlogika High (1), itu berarti bahwa LCD masih sibuk dan belum siap untuk menjalankan perintah selanjutnya. Jadi ketika pin DB07 sudah berlogika Low (0), baru dapat memberikan instruksi selanjutnya pada LCD. Berikut ini programnya: WAIT_LCD:
;ini adalah sebuah label
CLR EN
;Start LCD command
CLR RS
;Memberi perintah
SETB RW
;Membaca perintah
MOV DATA,#0FFh
;Set semua pin awal ke FF
SETB EN
;Mengirim perintah clock ke LCD
MOV A,DATA
;Memberikan DATA ke register A
JB DB7,WAIT_LCD
;Apabila bit 7 high, LCD masih sibuk
CLR EN
;Menyelesaikan perintah
CLR RW
;Menyiapkan RW untuk ke perintah selanjutnya
RET
;Kembali ke baris pemanggil subroutine.
Program subroutine delay LCD telah selesai dibuat. Berikutnya diperlukan subroutine inisialisasi LCD. Program di bawah ini dapat digunakan untuk inisialisasi LCD 16x2 dalam mode 8 bit kontrol. Untuk LCD mode 4 bit kontrol maupun LCD ukuran lain mungkin akan berbeda inisialisasinya. INIT_LCD: 18
CLR RS MOV DATA,#38h SETB EN CLR EN LCALL WAIT_LCD CLR RS MOV DATA,#0Eh SETB EN CLR EN LCALL WAIT_LCD CLR RS MOV DATA,#06h SETB EN CLR EN LCALL WAIT_LCD RET Selanjutnya diperlukan subroutine untuk membersihkan LCD (LCD CLEAR). Ada baiknya LCD dibersihkan terlebih dahulu sebelum mulai ditulis. Subroutinenya adalah seperti berikut ini: CLEAR_LCD: CLR RS MOV DATA,#01h SETB EN CLR EN LCALL WAIT_LCD RET Lalu yang terakhir yang diperlukan adalah subroutine untuk menulis data ke LCD seperti di bawah ini: WRITE_TEXT: SETB RS MOV DATA,A SETB EN 19
CLR EN LCALL WAIT_LCD RET Setelah semuanya lengkap maka dengan program di bawah ini dapat ditampilkan tulisan sederhana, misalnya 'HELLO WORLD' pada layar LCD. LCALL INIT_LCD LCALL CLEAR_LCD MOV A,#'H' LCALL WRITE_TEXT MOV A,#'E' LCALL WRITE_TEXT MOV A,#'L' LCALL WRITE_TEXT MOV A,#'L' LCALL WRITE_TEXT MOV A,#'O' LCALL WRITE_TEXT MOV A,#' ' LCALL WRITE_TEXT MOV A,#'W' LCALL WRITE_TEXT MOV A,#'O' LCALL WRITE_TEXT MOV A,#'R' LCALL WRITE_TEXT MOV A,#'L' LCALL WRITE_TEXT MOV A,#'D' LCALL WRITE_TEXT Lalu bagaimana mengatur posisi teks atau kursor untuk memulai memasukkan data? Perhatikan gambar 3.4 berikut:
20
Gambar 3.4 Posisi kursor pada layar LCD Dari gambar di atas dapat dilihat bahwa line 1 dimulai dari 00h dan line 2 dimulai dari 40h. Ketika dimasukkan data melebihi 16 karakter (1 karakter = 1 kolom) pada LCD 16x2, data selanjutnya tidak akan otomatis langsung pindah ke line 2. Tetapi Data tersebut akan masuk ke 10h (Ah) dam seterusnya yang berarti tidak akan tampil pada LCD 16x2. Oleh karena itu harus diset kordinat baru di 40h. Misalnya ingin dibuat tampilan 'WORLD'-nya berada pada karakter ke-10 line ke-2 yang posisinya adalah 4Ah. Karena posisi awal untuk meletakkan kursor adalah 80h maka untuk meletakkannya menjadi seperti ini : 80h + 4Ah = CAh. Sehingga subroutine-nya menjadi seperti ini: CLR RS MOV DATA,#0CAh SETB EN CLR EN LCALL WAIT_LCD Jadi untuk membuat tulisan 'HELLO WORLD' dimana kata 'WORLD' nya berada di line ke-2 dan karakter (kolom) ke-10, programnya seperti berikut ini: LCALL INIT_LCD LCALL CLEAR_LCD MOV A,#'H' LCALL WRITE_TEXT MOV A,#'E' LCALL WRITE_TEXT MOV A,#'L' LCALL WRITE_TEXT MOV A,#'L' LCALL WRITE_TEXT MOV A,#'O' LCALL WRITE_TEXT CLR RS MOV DATA,#0CAh 21
SETB EN CLR EN LCALL WAIT_LCD MOV A,#'W' LCALL WRITE_TEXT MOV A,#'O' LCALL WRITE_TEXT MOV A,#'R' LCALL WRITE_TEXT MOV A,#'L' LCALL WRITE_TEXT MOV A,#'D' LCALL WRITE_TEXT
22
BAB IV SENSOR 4.1 Pengertian Sensor Sensor adalah komponen yang dapat digunakan untuk mengkonversi suatu besaran tertentu menjadi satuan analog sehingga dapat dibaca oleh suatu rangkaian elektronik. Sensor merupakan komponen utama dari suatu tranduser, sedangkan tranduser merupakan sistem yang melengkapi agar sensor tersebut mempunyai keluaran sesuai yang kita inginkan dan dapat langsung dibaca pada keluarannya. Sensor adalah jenis tranduser yang digunakan untuk mengubah besaran mekanis, magnetis, panas, sinar, dan kimia menjadi tegangan dan arus listrik. Sensor sering digunakan untuk pendeteksian pada saat melakukan pengukuran atau pengendalian. Sensor adalah alat untuk mendeteki/mengukur sesuatu, yang digunakan untuk mengubah variasi mekanis, magnetis, panas, sinar dan kimia menjadi tegangan dan arus listrik. Dalam lingkungan sistem pengendali dan robotika, sensor memberikan kesamaan yanag menyerupai mata, pendengaran, hidung, lidah yang kemudian akan diolah oleh kontroler sebagai otaknya (Petruzella, 2001). Sensor dalam teknik pengukuran dan pengaturan secara elektronik berfungsi mengubah tegangan fisika (misalnya: temperatur, cahaya, gaya, kecepatan putaran) menjadi besaran listrik yang proposional. Sensor dalam teknik pengukuran dan pengaturan ini harus memenuhi persyaratan-persyaratan kualitas yakni : a. Linieritas Konversi harus benar-benar proposional, jadi karakteristik konversi harus linier. b. Tidak tergantung temperatur Keluaran inverter tidak boleh tergantung pada temperatur disekelilingnya, kecuali sensor suhu. c. Kepekaan Kepekaan sensor harus dipilih sedemikian, sehingga pada nilai-nilai masukan yang ada dapat diperoleh tegangan listrik keluaran yang cukup besar. d. Waktu tanggapan Waktu tanggapan adalah waktu yang diperlukan keluaran sensor untuk mencapai nilai akhirnya pada nilai masukan yang berubah secara mendadak.
23
Sensor harus dapat berubah cepat bila nilai masukan pada sistem tempat sensor tersebut berubah. Secara umum berdasarkan fungsi dan penggunaannya sensor dapat dikelompokan menjadi 3 bagian yaitu: a)
sensor thermal (panas)
b)
sensor mekanis
c)
sensor optik (cahaya)
Sensor thermal adalah sensor yang digunakan untuk mendeteksi gejala perubahan panas/temperature/suhu pada suatu dimensi benda atau dimensi ruang tertentu. Contohnya: bimetal, termistor, termokopel, RTD, photo transistor, photo dioda, photo multiplier, photovoltaik, infrared pyrometer, hygrometer, dsb. Sensor mekanis adalah sensor yang mendeteksi perubahan gerak mekanis, seperti perpindahan atau pergeseran atau posisi, gerak lurus dan melingkar, tekanan, aliran, level dsb. Contoh: strain gage, linear variable deferential transformer (LVDT), proximity, potensiometer, load cell, bourdon tube, dsb. Sensor optic atau cahaya adalah sensor yang mendeteksi perubahan cahaya dari sumber cahaya, pantulan cahaya ataupun bias cahaya yang mengernai benda atau ruangan. Contoh: photo cell, photo transistor, photo diode, photo voltaic, photo multiplier, pyrometer optic, dsb.
4.2 Macam-macam Sensor Beberapa jenis sensor yang banyak digunakan dalam rangkaian elektronik antara lain sensor cahaya, sensor suhu, dan sensor tekanan. Jenis sensor secara garis besar bisa dibagi menjadi 2 jenis yaitu : 1. Sensor Fisika 2. Sensor Kimia
Sensor fisika adalah sensor yang mendeteksi suatu besaran berdasarkan hokumhukum fisika. Yang termasuk kedalam jenis sensor fisika yaitu: sensor cahaya, sensor suara, sensor suhu, sensor gaya dan sensor percepatan.
24
Sensor kimia adalah sensor yang mendeteksi jumlah suatu zat kimia dengan cara mengubah besaran kimi menjadi besaran listrik. Biasanya ini melibatkan beberapa reaksi kimia. Yang termasuk kedalam jenis sensor kimia yaitu: sensor PH, sensor gas, sensor oksigen dan sensor ledakan.
4.2.1 Sensor Cahaya Sensor cahaya adalah alat yang digunakan untuk merubah besaran cahaya menjadi besaran listrik. Prinsip kerja dari alat ini adalah mengubah energi dari foton menjadi elektron. Idealnya satu foton dapat membangkitkan satu elektron. Sensor cahaya sangat luas penggunaannya, salah satu yang paling terkenal adalah LDR (Light dependent resistor). Komponen yang termasuk dalam sensor cahaya yaitu : a. LDR ( Light Dependent Resistor ) adalah sebuah resistor dimana nilai resistansinya akan berubah jika dikenai cahaya. Prinsip kerja dari LDR ini adalah Resistansi LDR akan berubah seiring dengan perubahan intensitas cahaya yang mengenainya. Dalam keadaan gelap resistansi LDR sekitar 10MΩ dan dalam keadaan terang sebesar 1KΩ atau kurang. LDR terbuat dari bahan semikonduktor seperti kadmium sulfida. Dengan bahan ini energi dari cahaya yang jatuh menyebabkan lebih banyak muatan yang dilepas atau arus listrik meningkat. Artinya resistansi bahan telah mengalami penurunan. LDR digunakan untuk mengubah energi cahaya menjadi energi listrik. Saklar cahaya otomatis dan alarm pencuri adalah beberapa contoh alat yang menggunakan LDR. Akan tetapi karena responsnya terhadap cahaya cukup lambat, LDR tidak digunakan pada situasi dimana intesitas cahaya berubah secara drastis. b. Fotovoltaic atau sel solar adalah alat sensor sinar yang mengubah energi sinar langsung menjadi energi listrik. Sel solar silikon yang modern pada dasarnya adalah sambungan PN dengan lapisan P yang transparan. Jika ada cahaya pada lapisan transparan P akan menyebabkan gerakan elektron antara bagian P dan N, jadi menghasilkan tegangan DC yang kecil sekitar 0,5 volt per sel pada sinar matahari penuh. Sel fotovoltaic adalah jenis tranduser sinar/cahaya seperti pada gambar 1.
25
Gambar 4.1 Cahaya pada sel fotovoltaik menghasilkan tegangan c. Fotokonduktif adalah energi yang jatuh pada sel fotokonduktif akan menyebabkan perubahan tahanan sel. Apabila permukaan alat ini gelap maka tahanan alat menjadi tinggi. Ketika menyala dengan terang tahanan turun pada tingkat harga yang rendah. Seperti terlihat pada gambar 2.
Gambar 4.2 Sel Fotokonduktif d. Photo Doida adalah sebuah dioda yang apabila dikenai cahaya akan memancarkan elctron sehingga akan mengalirkan arus listrik. e. Phototransistor adalah sebuah transistor yang apabila dikenai cahaya akan mengalirkan electron sehingga akan terjadi penguatan arus seperti pada sebuah transistor. f. Optocoupler adalah sebuah komponen kopling berbasis optik.
4.2.2 Sensor Suara Sensor suara adalah sebuah alat yang mampu merubah gelombang suara menjadi gelombang sinus energi listrik. Sensor suara berkerja berdasarkan besar/kecilnya kekuatan gelombang suara yang mengenai membran sensor yang menyebabkan bergeraknya membran sensor. Di balik membran sensor yang naik dan turun tersebut terdapat sebuah 26
kumparan kecil. Oleh karena kumparan tersebut sebenarnya adalah ibarat sebuah pisau berlubang-lubang maka pada saat ia bergerak naik-turun, ia juga telah membuat gelombang magnet yang mengalir melewatinya terpotong-potong. Kecepatan gerak kumparan menentukan kuat-lemahnya gelombang listrik yang dihasilkannya. Komponen yang termasuk dalam sensor suara yaitu microphone. Micropone adalah komponen elektronika dimana cara kerjanya yaitu membran yang digetarkan oleh gelombang suara akan menghasilkan sinyal listrik.
4.2.3 Sensor Suhu Sensor suhu adalah sensor yang cara kerjanya yaitu merubah besaran suhu menjadi besaran listrik dan dipasaran sudah begitu luas penggunaannya. Komponen yang termasuk dalam sensor suhu yaitu: 1. NTC. NTC adalah komponen elektronika dimana jika dikenai panas maka tahanannya akan naik. 2. PTC. PTC adalah komponen elektronika dimana jika terkena panas maka tahanannya akan semakin turun. Ada 4 jenis utama sensor suhu yang biasa digunakan yaitu thermocouple, a. Thermocouple Thermocouple pada dasarnya terdiri dari sepasang penghantar yang berbeda disambung las dilebur bersama satu sisi membentuk “hot” atau sambungan pengukuran yang ada ujung-ujung bebasnya untuk hubungan dengan sambungan referensi. Perbedaan suhu antara sambungan pengukuran dengan sambungan referensi harus muncul untuk alat ini sehingga berfungsi sebagai thermocouple.
(a)
(b)
Gambar 4.3 (a)Thermocouple (b) Simbol thermocouple 27
b. Detektor Suhu Tahanan Konsep utama dari yang mendasari pengukuran suhu dengan detektor suhu tahanan (resistant temperature detector = RTD) adalah tahanan listrik dari logam yang bervariasi sebanding dengan suhu. Kesebandingan variasi ini adalah presisi dan dapat diulang lagi sehingga memungkinkan pengukuran suhu yang konsisten melalui pendeteksian tahanan. Bahan yang sering digunakan RTD adalah platina karena kelinearan, stabilitas dan reproduksibilitas.
Gambar 4.4 Detektor suhu tahanan c. Thermistor Thermistor adalah resistor yang peka terhadap panas yang biasanya mempunyai koefisien suhu negatif. Karena suhu meningkat, tahanan menurun dan sebaliknya. Thermistor sangat peka (perubahan tahanan sebesar 5 % per ³C) oleh karena itu mampu mendeteksi perubahan kecil di dalam suhu.
Gambar 4.5 Thermistor
d. Sensor Suhu Rangkaian Terpadu (IC) Sensor suhu dengan IC ini menggunakan chip silikon untuk elemen yang merasakan (sensor). Memiliki konfigurasi output tegangan dan arus. Meskipun terbatas dalam rentang suhu (dibawah 200°C), tetapi menghasilkan output yang sangat linear di atas rentang kerja. Contoh dari sensor suhu dengan IC ini adalah IC LM35.
28
Gambar 4.6 Sensor suhu IC
4.2.4 Sensor Tekanan Prinsip kerja dari sensor tekanan ini adalah mengubah tegangan mekanis menjadi sinyal listrik. kurang ketegangan didasarkan pada prinsip bahwa tahanan pengantar berubah dengan panjang dan luas penampang. Daya yang diberikan pada kawat menyebabkan kawat bengkok
sehingga
menyebabkan ukuran kawat berubah dan mengubah tahanannya, seperti terlihat pada gambar 7.
(a)
(b)
Gambar 4.7 Sensor tekanan (a) Penggunaan Sensor Tekanan (b) Penggunaan Sensor Tekan pada Pengukur Regangan Kawat
4.3 SENSOR SUHU LM35 Sensor LM35 bekerja dengan mengubah besaran suhu menjadi besaran tegangan. Tegangan ideal yang keluar dari LM35 mempunyai perbandingan 100°C setara dengan 1 volt. Sensor ini mempunyai pemanasan diri (self heating) kurang dari 0,1°C, dapat 29
dioperasikan dengan menggunakan power supply tunggal dan dapat dihubungkan antar muka (interface) dengan mudah ke rangkaian kontrol yang lainnya. IC LM 35 sebagai sensor suhu yang teliti dikemas dalam bentuk Integrated Circuit (IC), di mana output tegangan keluaran sangat linear terhadap perubahan suhu. Sensor ini berfungsi sebagai pegubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV /°C yang berarti bahwa kenaikan suhu 1° C maka akan terjadi kenaikan tegangan sebesar 10 mV. Konfigurasi pin dari IC LM35 dapat dilihat pada gambar berikut ini. Terdapat 3 kaki (pin) pada setiap IC LM35, kaki pertama dan ketiga adalah input daya dengan rincian kaki pertama untuk masukan daya positif jangkauan 4-20 Volt dan kaki ketiga untuk hubungan pentanahan (grounding) atau 0 Volt. Kaki kedua yang berada di pertengahan adalah kaki untuk data. Hasil deteksi suhu akan diberikan oleh sensor melalui pin ini berupa perubahan nilai tegangan pin yang linear terhadap perubahan suhu lingkungan sensor.
sumber : www.arduinoting.com Gambar 4.7 Sensor suhu IC LM35
IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangkauan deteksi suhu sensor mulai dari – 55°C sampai dengan 150°C. IC LM 35 dapat dialiri arus 60 μ A dari supplay sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan. Untuk mendeteksi suhu digunakan sebuah sensor suhu LM35 yang dapat dikalibrasikan langsung dalam C (celcius) dan LM35 ini difungsikan sebagai basic temperature sensor. 30
Adapun keistimewaan dari IC LM 35 adalah : a. Kalibrasi dalam satuan derajat celcius. b. Linearitas +10 mV/ º C. c. Akurasi 0,5 °C pada suhu ruang. d. Range +2 °C – 150 °C. e. Dioperasikan pada catu daya 4 V – 30 V. f. Arus yang mengalir kurang dari 60 mA. Prinsip Kerja Sensor LM35 adalah sensor akan melakukan penginderaan dimana perubahan suhu setiap suhu 1 °C akan menunjukan perubahan tegangan sebesar 10 mV. Pada penempatannya LM35 dapat ditempelkan dengan perekat atau dapat pula disemen pada permukaan akan tetapi suhunya akan sedikit berkurang sekitar 0,01 °C karena terserap pada suhu permukaan tersebut. Dengan cara seperti ini diharapkan selisih antara suhu udara dan suhu permukaan dapat dideteksi oleh sensor LM35. Jarak yang jauh diperlukan penghubung yang tidak terpengaruh oleh interferensi dari luar, dengan demikian digunakan kabel selubung yang ditanahkan sehingga dapat bertindak sebagai suatu antenna penerima dan simpangan didalamnya, juga dapat bertindak sebagai perata arus yang mengkoreksi pada kasus yang sedemikian, dengan mengunakan metodebypass kapasitor dari Vin untuk ditanahkan. Prinsip kerja sensor LM35 dapat disimpulkan sebagai berikut: a. Suhu lingkungan dideteksi menggunakan bagian IC yang peka terhadap suhu b. Suhu lingkungan ini diubah menjadi tegangan listrik oleh rangkaian di dalam IC, dimana perubahan suhu berbanding lurus dengan perubahan tegangan output. c. Pada seri LM35
𝑉𝑜𝑢𝑡 =
10 𝑚𝑉 0𝐶
Tiap perubahan 1 °C akan menghasilkan perubahan tegangan output sebesar 10mV Kelebihan dari Sensors LM35 adalah rentang suhu yang jauh, antara -55 sampai +150 °C, Low self-heating yang sebesar 0.08 °C, beroperasi pada tegangan 4 sampai 30 V, rangkaian tidak rumit, tidak memerlukan pengkondisian sinyal. Adapun kekurangannya adalah memerlukan sumber tegangan untuk beroperasi. 31
Berikut ini adalah contoh rangkaian implementasi dari sensor LM35 dalam sebuah sistem pendeteksi suhu ruangan berbasis mikrokontroler AT89S51. Komponen pembangun sistem pendeteksi suhu ruangan in adalah : a. AT89S51, bertindak sebagai unit pusat pemrosesan data (Central Processing Unit, CPU). AT89S51 akan memproses sinyal digital dari ADC yang kemudian ditampilkan ke LCD. b. LM35, sensor suhu yang mendeteksi suhu ruangan dan terkalibrasi dalam satuan celcius (°C). Sensor LM35 ini dihubungkan dengan bagian input ADC 0804. Tegangan suplai (Vs) LM35 adalah sebesar 5 V dengan harapan respon ideal LM35 akan menghasilkan kenaikan suhu 1 °C yang memiliki perubahan tegangan setiap kenaikannya sebesar 10 mV. c. ADC 0804, Analog to Digital Converter (ADC) yang berfungsi sebagai pengubah sinyal dari LM35 yang masih dalam bentuk sinyal analog (perubahan voltase) menjadi sinyal digital (data biner) yang dapat dimengerti mikrokontroler. ADC ini diperlukan karena sinyal yang dihasilkan oleh LM35 adalah sinyal analog sedangkan sinyal yang bisa dipahami oleh AT89S51 adalah sinyal digital. d. Liquid Cristal Disply (LCD) LCD
16x2
LMB162A
merupakan
suatu
display
yang
berfungsi
untuk
menginformasikan kepada pengguna tentang apa yang terjadi pada rangkaian dan hasil deteksi dari sistem. LCD 16x2 adalah layar display monochrome dengan tampilan karakter 2 baris dan 16 kolom, sehingga cukup untuk menampilkan data suhu ruangan. Untuk membangun sistem ini perlu direncanakan rangkaian yang akan menghubungkan semua kompinen pembangun di atas. Rangkaian akan dibagi menjadi 4 bagian sebagai berikut: a. Rangkaian minimum sistem Mikrokontroler AT89S51 Rangkaian ini berfungsi sebagai rangkaian untuk suplai daya bagi mikrokontroler AT89S51 dan perancangan hubungan Mikrokontroler AT89S51 dengan komponen pembangun sistem lainnya. Pada sistem ini Port DB LCD dimasukkan ke port 0 (P0) Mikrokontroler AT89S51 dan kontrol LCD (RS dan Enable) pada P1.0 dan P1.1 dari port 1 Mikrokontroler AT89S51. Port DB ADC0804 dimasukkan ke port 2 (P2) dan kontrolnya (INTR, WR dan RD) pada P3.2, P3.3, dan P3.4. Sebuah LED ditambahkan 32
pada P1.2 yang digunakan sebagai lampu indikator sistem. Push button pada P1.3 digunakan untuk switch memulai pendeteksian suhu.
Gambar 4.8 Rangkaian minimum sistem AT89S51 b. Rangkaian Sensor Suhu (LM35) Pada rangkaian berikut ini sebuah resistor 85 ohm dan kapasitor 1 μF digunakan untuk memaksimalkan pemindahan daya pada beban. Kaki kedua sensor LM35 (Vout)
Gambar 4.9 Rangkaian Sensor Suhu (LM35) 33
c. Rangkaian ADC0804 Kaki-kaki DB ADC dihubungkan ke Port 2 AT89S51, dan kontrolnya (INTR, WR, dan RD) masing-masing dihubungkan ke P3.2, P3.3, dan P3.4. Digunakan potensio sebagai pengatur tengangan referensi. Dan tengangan keluaran dari LM35 dihubungkan dengan kaki VI+.
Gambar 4.10 Rangkaian ADC0804 d. Rangkaian LCD Ini merupakan rangkaian minimum dari LCD dengan pengaturan kontras pada kaki 3 LCD, dengan penambahan dioda pada kaki 15 yang berfungsi untuk menjaga ada bias balik dari sumber daya. Kaki DB LCD dihubungkan dengan P0 AT89S51, dan kontrolnya (RS dan EN) masing-masing dihubungkan ke P1.0 dan p1.1.
Program yang diperlukan untuk menjalankan semua rangkaian di atas dapat dilihat secara lengkap di lampiran. Program tersebut ditulis dalam bahasa assembly dan dapat dikompilasi dengan compiler apa saja yang mendukung kompilasi untuk tujuan hardware mikrokontroler AT89S51/52.
34
Gambar 4.11 Rangkaian LCD
4.4 SENSOR JARAK ULTRASONIK 4.4.1 Prinsip Kerja Rangkaian Sensor Ultrasonik Gelombang ultrasonik adalah gelombang dengan besar frekuensi diatas frekuensi gelombang suara yaitu lebih dari 20 KHz. Seperti telah disebutkan bahwa sensor ultrasonik terdiri dari rangkaian pemancar ultrasonik yang disebut transmitter dan rangkaian penerima ultrasonik yang disebut receiver. Sinyal ultrasonik yang dibangkitkan akan dipancarkan dari transmitter ultrasonik. Ketika sinyal mengenai benda penghalang, maka sinyal ini dipantulkan, dan diterima oleh receiver ultrasonik. Sinyal yang diterima oleh rangkaian receiver dikirimkan ke rangkaian mikrokontroler untuk selanjutnya diolah untuk menghitung jarak terhadap benda di depannya (bidang pantul). Prinsip kerja dari sensor ultrasonik dapat ditunjukkan dalam gambar dibawah ini :
35
Gambar 4.12 Prinsip kerja sensor ultrasonik 1. Sinyal dipancarkan oleh pemancar ultrasonik. Sinyal tersebut berfrekuensi diatas 20kHz, biasanya yang digunakan untuk mengukur jarak benda adalah 40kHz. Sinyal tersebut di bangkitkan oleh rangkaian pemancar ultrasonik. 2. Sinyal yang dipancarkan tersebut kemudian akan merambat sebagai sinyal / gelombang bunyi dengan kecepatan bunyi yang berkisar 340 m/s. Sinyal tersebut kemudian akan dipantulkan dan akan diterima kembali oleh bagian penerima Ultrasonik. 3. Setelah sinyal tersebut sampai di penerima ultrasonik, kemudian sinyal tersebut akan diproses untuk menghitung jaraknya. Jarak dihitung berdasarkan rumus :
S=
340.𝑡 2
dimana S adalah jarak antara sensor ultrasonik dengan bidang pantul, dan t adalah selisih waktu antara pemancaran gelombang ultrasonik sampai diterima kembali oleh bagian penerima ultrasonik. Pemancar Ultrasonik ini berupa rangkaian yang memancarkan sinyal sinusoidal berfrekuensi di atas 20 KHz menggunakan sebuah transducer transmitter ultrasonik.
36
Gambar 4.13 Prinsip kerja pemancar sensor ultrasonik
Prinsip kerja dari rangkaian pemancar gelombang ultrasonik tersebut adlah sebagai berikut : a. Sinyal 40 kHz dibangkitkan melalui mikrokontroler. b. Sinyal tersebut dilewatkan pada sebuah resistor sebesar 3kOhm untuk pengaman ketika sinyal tersebut membias maju rangkaian dioda dan transistor. c. Kemudian sinyal tersebut dimasukkan ke rangkaian penguat arus yang merupakan kombinasi dari 2 buah dioda dan 2 buah transistor. d. Ketika sinyal dari masukan berlogika tinggi (+5V) maka arus akan melewati dioda D1 (D1 on), kemudian arus tersebut akan membias transistor T1, sehingga arus yang akan mengalir pada kolektotr T1 akan besar sesuai dari penguatan dari transistor. e. Ketika sinyal dari masukan berlogika tinggi (0V) maka arus akan melewati dioda D2 (D2 on), kemudian arus tersebut akan membias transistor T2, sehingga arus yang akan mengalir pada kolektotr T2 akan besar sesuai dari penguatan dari transistor. 37
f. Resistor R4 dan R6 berfungsi untuk membagi tengangan menjadi 2,5 V. Sehingga pemancar ultrasonik akan menerima tegangan bolak – balik dengan Vpeak-peak adalah 5V (+2,5 V s.d -2,5 V). Penerima Ultrasonik ini akan menerima sinyal ultrasonik yang dipancarkan oleh pemancar ultrasonik dengan karakteristik frekuensi yang sesuai. Sinyal yang diterima tersebut akan melalui proses filterisasi frekuensi dengan menggunakan rangkaian band pass filter (penyaring pelewat pita), dengan nilai frekuensi yang dilewatkan telah ditentukan. Kemudian sinyal keluarannya akan dikuatkan dan dilewatkan ke rangkaian komparator (pembanding) dengan tegangan referensi ditentukan berdasarkan
tegangan keluaran
penguat pada saat jarak antara sensor kendaraan mini dengan sekat/dinding pembatas mencapai jarak minimum untuk berbelok arah. Dapat dianggap keluaran komparator pada kondisi ini adalah high (logika ‘1’) sedangkan jarak yang lebih jauh adalah low (logika’0’). Logika-logika biner ini kemudian diteruskan ke rangkaian pengendali (mikrokontroler).
Gambar 4.13 Prinsip kerja penerima sensor ultrasonik
Prinsip kerja dari rangkaian pemancar gelombang ultrasonik tersebut adalah sebagai berikut : 1. Pertama–tama sinyal yang diterima akan dikuatkan terlebih dahulu oleh rangkaian transistor penguat Q2. 2. Kemudian sinyal tersebut akan di filter menggunakan High pass filter pada frekuensi > 40kHz oleh rangkaian transistor Q1.
38
3. Setelah sinyal tersebut dikuatkan dan di filter, kemudian sinyal tersebut akan disearahkan oleh rangkaian dioda D1 dan D2. 4. Kemudian sinyal tersebut melalui rangkaian filter low pass filter pada frekuensi < 40kHz melalui rangkaian filter C4 dan R4. 5. Setelah itu sinyal akan melalui komparator Op-Amp pada U3. 6. Jadi ketika ada sinyal ultrasonik yang masuk ke rangkaian, maka pada komparator akan mengeluarkan logika rendah (0V) yang kemudian akan diproses oleh mikrokontroler untuk menghitung jaraknya.
4.4.2 Sensor ultrasonic tipe SRF05 Prinsip kerja dari sensor SFR05 adalah memancarkan gelombang ultrasonic dengan frekuensi 40 KHz kemudian menunggu sampai pantulan gelombangnya diterima kembali. Tanda kalau gelombang sudah diterima atau belum berupa sinyal HIGH – LOW.
http://histla.web.id/ Gambar 4.14 Sensor ultrasonic tipe SRF05 Gambar di bawah ini adalah sebuah contoh rangkaian pengaplikasian sebuah sensor SFR05 yang dikendalikan oleh mikrokontroler ATMega16 dengan penampil informasi hasil deteksi jarak adalah LCD 2 x 16. Prinsip desain pada rangakaian ini juga dapat diterapkan 39
pada rangakaian dengan pengendali mikrokontroler, lain misalnya dari keluarga MCS51 seperti AT89S51/52.
Sumber: inkubator-teknologi.com Gambar 4.15 Sensor SFR05 dengan mikrokontroler ATMega16 dan LCD 2 x 16
Terdapat 10 pin, tapi kita cukup memakai 4 pin saja (sebenarnya 3 pin juga bisa). Fungsi dari tiap-tiap pin adalah sebagai berikut: 1. Pin 5v untuk koneksi ke tegangan 5V dc. 2. Echo Output untuk memantau kondisi logika, apakah gelombang ultrasonic sudah diterima kembali atau belum. 3. Trigger Input dipakai untuk memicu pembangkitan gelombang ultrasonic. Berupa sinyal ‘HIGH’ selama minimal 100 μs. 4. 0 V (GND) dihubungkan ke ground. 40
Dibawah ini adalah contoh programnya yang dibuat dengan bahasa C dan dapat dikompilasi menggunakan compiler bahasa C yang sesuai (misalnya Keil C atau CodeVision AVR). #include <mega16.h> #include <delay.h> #include <stdio.h> #define trigger PORTC.1 #define echo PINC.0 unsigned int jarak; char buf[33]; #asm .equ __lcd_port=0x1B ;PORTA #endasm #include
void ukur_jarak() { unsigned int i; jarak=0; delay_us(100); trigger=1; //tout, H=5 us delay_us(15); trigger=0; delay_us(100); while(!echo); for (i=0;i<=500;i++) { if (echo) {jarak++;} delay_us(58); } } void main(void) 41
{ lcd_init(16); DDRC.O=0; DDRC.1=1; lcd_clear (); lcd_putsf (“SRF05 non timer”); lcd_gotoxy(0,1); lcd_putsf (“Range=”); while (1) { ukur_jarak(); sprintf (buf,”%d cm”,jarak); lcd_gotoxy (6,1); lcd_puts (buf); delay_ms(500); } }
4.4.3 Sensor ultrasonic PING Sensor ultrasonic lain yang dapat digunakan sebagai pendeteksi jarak adalah sensor ultrasonic PING buatan Paralax. Sensor PING ini merupakan sensor ultrasonik yang dapat mendeteksi jarak obyek dengan cara memancarkan gelombang ultrasonik dengan frekuensi 40 KHz dan kemudian mendeteksi pantulannya. Tampilan sensor jarak PING ditunjukkan pada gambar berikut:
42
Sumber: Sumber: ram-e-shop.com Gambar 4.16 Sensor PING
Sensor ini dapat mengukur jarak antara 3 cm sampai 300 cm. keluaran dari sensor ini berupa pulsa yang lebarnya merepresentasikan jarak. Lebar pulsanya bervariasi dari 115 uS sampai 18,5 mS. Pada dasanya, Ping))) terdiri dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikropon ultrasonik. Speaker ultrasonik mengubah sinyal 40 KHz menjadi suara sementara mikropon ultrasonik berfungsi untuk mendeteksi pantulan suaranya. Pin signal dapat langsung dihubungkan dengan mikrokontroler tanpa tambahan komponen apapun. Ping hanya akan mengirimkan suara ultrasonik ketika ada pulsa trigger dari mikrokontroler (Pulsa high selama 5μS). Suara ultrasonik dengan frekuensi sebesar 40KHz akan dipancarkan selama 200uS. Suara ini akan merambat di udara dengan kecepatan 344.424m/detik (atau 1cm setiap 29.034μS), mengenai objek untuk kemudian terpantul kembali ke Ping. Selama menunggu pantulan, Ping akan menghasilkan sebuah pulsa. Pulsa ini akan berhenti (low) ketika suara pantulan terdeteksi oleh Ping. Oleh karena itulah lebar pulsa tersebut dapat merepresentasikan jarak antara Ping dengan objek. Untuk penjelasan atau prinsip aksesnya sama dengan SRF05, hanya saja untuk sensor PING hanya memakai 3 pin, pin trigger sama echo digunakan dalam 1 pin, sehingga dengan menggunakan sensor PING kita dapat menghemat penggunaan I/O mikrokontroler. Konfigurasi pin sensor PING sbagai berikut:
43
Gambar 4.17 konfigurasi pin sensor PING
Untuk keperluan robotika dan sistem kontrol lanjut terkadang diperlukan beberapa sensor ultrasonic bekerja bersama-sama agar sistem dapat mengukur jarak dari objek di beberapa tempat yang berbeda sekaligus. Gambar di bawah ini adalah contok desain rangkaian yang dapat digunakan untuk keperluan tersebut.
44
Sumber: mikrokontroller-adiarray.blogspot.com Gambar 4.18 sensor SFR05 yang dikendalikan oleh mikrokontroler ATMega8535
45
BAB V MOTOR STEPPER 5.1 Prinsip Kerja Motor Stepper Motor stepper adalah motor yang digunakan sebagai penggerak/pemutar. Prinsip kerja motor stepper mirip dengan motor DC, sama-sama dicatu dengan tegangan DC untuk memperoleh medan magnet. Bila motor DC memiliki magnet tetap pada stator, motor stepper mempunyai magnet tetap pada rotor. Motor stepper dinyatakan dengan spesifikasi “berapa phasa “, “berapa derajat perstep”, “berapa volt tegangan catu untuk tiap lilitan” dan ”berapa ampere/miliampere arus yang dibutuhkan untuk tiap lilitan”. Motor stepper tidak dapat bergerak sendirinya, tetapi bergerak secara per-step sesuai dengan spesifikasinya dan bergerak dari satu step ke step berikutnya memerlukan waktu, serta menghasilkan torsi yang besar pada kecepatan rendah. Motor stepper juga memiliki karakteristik yang lain yaitu torsi penahan, yang memungkinkan menahan posisinya. Hal ini sangat berguna untuk aplikasi dimana suatu sistem memerlukan keadaan start dan stop Motor stepper tidak merespon sinyal clock dan mempunyai beberapa lilitan dimana lilitan-lilitan tersebut harus dicatu (tegangan) dahulu dengan suatu urutan tertentu agar dapat berotasi. Membalik urutan pemberian tegangan tersebut akan menyebabkan putaran motor stepper yang berbalik arah. Jika sinyal kontrol tidak terkirim sesuai dengan perintah maka motor stepper tidak akan berputar secara tepat, mungkin hanya akan bergetar dan tidak bergerak. Untuk mengontrol motor stepper digunakan suatu rangkaian driver yang menangani kebutuhan arus dan tegangan. Karakteristik dari motor stepper adalah sebagai berikut: 1. Tegangan Tiap motor stepper mempunyai tegangan rata-rata yang tertulis pada tiap unitnya atau tercantum pada datasheet masing-masing motor stepper. Tegangan rata-rata ini harus diperhatikan dengan seksama karena bila melebihi dari tegangan rata-rata ini akan menimbulkan panas yang menyebabkan kinerja putarannya tidak maksimal atau bahkan motor stepper akan rusak dengan sendirinya. 2. Resistansi
46
Resistansi per lilitan adalah karakteristik yang lain dari motor stepper. Resistansi ini akan menentukan arus yang mengalir, selain itu juga akan mempengaruhi torsi dan kecepatan maksimum dan motor stepper. 3. Derajat per step Derajat per step adalah faktor terpenting dalam pemilihan motor stepper sesuai dengan aplikasinya. Tiap-tiap motor stepper mempunyai spesifikasi masing-masing, antara lain: 0.72° per step, 1.8° per step, 3.6° per step, 7.5° per step, 15° per step, dan bahkan ada yang 90° per step. Dalam pengoperasiannya kita dapat menggunakan 2 prinsip yaitu full step atau half step. Dengan full step berarti motor stepper berputar sesuai dengan spesifikasi derajat per stepnya, sedangkan half step berarti motor stepper berputar setengah derajat per step dari spesifikasi motor stepper tersebut. Motor stepper dibedakan menjadi dua kategori besar yaitu: magnet permanen dan reluktansi variabel. Tipe magnet permanen terbagi menjadi dua motor stepper yaitu motor stepper unipolar dan bipolar. Motor stepper unipolar sangat mudah untuk dikontrol dengan menggunakan rangkaian counter ‘-n’. Motor stepper unipolar mempunyai karakteristik khusus yaitu berupa lilitan center-tapped dan 1 lilitan sebagai common. Lilitan common akan mencatu tegangan pada center-tapped dan sebagai ground adalah rangkaian drivernya. Motor stepper unipolar dapat dikenali dengan mengetahui adanya lilitan centertapped. Jumlah phase dan motor stepper adalah dua kali dan jumlah koilnya. Umumnya pada motor stepper unipolar terdapat dua buah koil..
Gambar 5.1 Susunan koil motor stepper unipolar 47
Tabel 5.1 Pola 1-phase putaran motor stepper unipolar
Pada prinsipnya ada dua macam cara kerja motor stepper unipolar, yaitu full-step dan half-step. Terlihat pada Tabel 5.2 dan Tabel 5.3 Pada prinsipnya ada dua macam cara kerja motor stepper unipolar, yaitu full-step dan half-step. Terlihat pada Tabel 2.3. dan Tabel 2.4. Tabel 5.2 Pemberian tegangan untuk operasi full-step
Pada full step, suatu titik pada sebuah kutub magnet di rotor akan kembali mendapat tarikan medan magnet stator pada lilitan yang sama setelah step ke 4., dan berikutnya dapat diberikan lagi mulai dari step 1. Setiap step, rotor bergerak searah atau berlawanan dengan jarum jam sebesar spesifikasi derajat per step dan motor stepper. 48
Setiap step hanya menarik sebuah kutub saja. Tegangan ‘1’ adalah menunjukkan logika dalam level Transistor Transistor Logic (TTL). Besar tegangan sesungguhnya diatur dengan spesifikasi motor stepper yang dipakai, misalnya dengan menggunakan buffer.
Tabel 5.3 Pemberian tegangan untuk operasi half-step
Untuk half step, setiap kutub magnet pada rotor akan kembali mendapatkan tarikan dan medan magnet lilitan yang sama setelah step ke 8. berikutnya kembali mulai step 1. Setiap step posisi rotor berubah sebesar setengah derajat dan spesifikasi derajat per step motor stepper. Berbeda dengan motor stepper unipolar, motor stepper bipolar sangat sulit dalam pengontrolannya. Motor stepper jenis ini memerlukan rangkaian driver yang kompleks. Keuntungan motor stepper bipolar adalah ukurannya yang besar dan dapat menghasilkan torsi yang besar daripada motor stepper unipolar. Motor stepper bipolar di desain dengan koil yang terpisah yang akan di catu dan dua arah (polaritas harus dibalik selama pencatuan). Motor stepper bipolar menggunakan logika yang sama seperti motor stepper unipolar yaitu hanya ‘0’ dan ‘1’ untuk merespon koilnya
49
Gambar 5.2 Susunan koil motor stepper bipolar dan Pola phase putarannya
Reluktansi variabel motor stepper, juga sering disebut sebagai motor hibrid. Motor stepper jenis ini mudah dikontrol jika dibandingkan dengan jenis motor stepper yang lain. Rangkaian driver untuk mencatu tiap-tiap lilitannya sangatlah sederhana. Prinsip kerjanya adalah driver mencatu tiap lilitan secara bergantian. Jika diputar dengan tangan, terlihat motor ini seperti motor DC, berputar sangat bebas dan tidak terasa adanya step. Motor stepper jenis ini tidak memiliki magnet permanen seperti pada motor stepper unipolar dan bipolar.
Gambar 5.3 Susunan koil reluktansi variable motor stepper dan Pola 1-phase reluktansi variable motor stepper
5.2 Driver Motor Stepper Secara teoritis, sebuah motor stepper dapat digerakkan langsung oleh. Dalam kenyataannya, arus dan tegangan yang dikeluarkan oleh mikrokontroller terlalu kecil untuk
50
menggerakkan sebuah motor stepper. Gerbang-gerbang Transistor Transistor Logic (TTL) mikrokontroller hanya mampu mengeluarkan arus dalam orde mili-ampere dan tegangan antara 2 sampai 2,5 Volt. Sementara itu untuk menggerakkan motor stepper diperlukan arus yang lebih besar (dalam orde ampere) dan tegangan berkisar 5 sampai 24 Volt. Untuk mengatasi masalah tersebut, diperlukan sebuah piranti tambahan yang memenuhi kebutuhan arus dan tegangan yang cukup besar. Rangkaian driver motor stepper merupakan rangkaian “open collector”, dimana output rangkaian ini terhubung dengan ground untuk mencatu lilitan-lilitan motor stepper.
Gambar 5.4 Skema rangkaian driver motor stepper Arus keluaran mikrokontroler tidak dapat menggerakkan motor stepper. Maka diperlukan driver untuk mencatu arus motor stepper. Driver ini dapat dibuat sendiri atau menggunakan IC yang sudah tersedia di pasaran. Untuk driver yang aingi dirancang dan dibuat sendiri maka rangakaian berikut pada gambar di bawah ini dapat digunakan:
51
Gambar 5.5 Driver Motor Stepper Apabila akan menggunakan IC driver maka yang paling sering digunakan adalah IC ULN2003. ULN2003 adalah sebuah IC yang berupa darlington array sebanyak 7 buah. Berikut ini adalah gambar IC ULN 2003.
Sumber : www.engineersgarage.com Gambar 5.6 Konfigurasi pin ULN 2003 52
Rangkaian skematiknya adalah sebagai berikut:
sumber: http://www.techsavvy.net76.net Gambar 5.7 Rangkaian skematik ULN dan motor stepper
ULN2003 mempunyai arus keluaran sampai 500 mA. Pada saat ketujuh driver tersebut ON, IC ini dapat mencatu daya sampai 230 W (350 mA x 95 V). ULN2003 mempunyai resistor input serial yang dapat dipilih untuk operasi TTL atau CMOS 5 V. Motor stepper terdiri rotor dan stator yang bekerja berdasar sifat magnet, dimana magnet sejenis tolak menolak dan yang berlawanan tarik menarik. Kumparan pada stator membentuk medan magnet saat diberi arus,sehingga motor yang menggunakan magnet akan bergerak untuk mencari kestabilan agar kutub magnet bersesuaian dengan medan magnet yang terjadi. Arah puran motor stepper ditentukan oleh arah urutan arus yang diberikan pada input motor stepper Motor stepper mempunyai 4 input dan satu input tegangan. Motor stepper dapat berputar kekiri maupun kekanan sesuai dengan input yang diberikan. Untuk 53
perputaran kearah kiri dengan memberikan input ring counter dengan arah kekiri dan untuk berputar kekanan dengan memberikan input ring counter dengan arah kekanan Motor stepper bergerak setiap satu langkah dengan besar sudut 1,8º jadi untuk berputar satu putaran penuh membutuhkan 200 step. Dengan motor stepper kita dapat memutar motor sesuai dengan yang diinginkan. Kecepatan motor stepper juga dapat diubah sesuai dengan kebutuhan. Dengan mengubah waktu perpindahan dari suatu input ke input lain pada motor stepper. Ada dua mode dalam menggerakkan motor stepper yaiyu mode full step dan mode half step. Pada mode full step perputaran motor lebih kasar dibandingkan dengan mode half step. Ini dikarenakan pada mode half step untuk menggerakkan satu step dibutuhkan dua kondisi sehingga perputaran ledih halus, sedangkan pada mode full step torsinya lebih besar dibandingkan dengan mode half step.
54
BAB VI ADC Dan DAC ADC adalah suatu piranti yang dirancang untuk mengubah sinyal-sinyal analog menjadi bentuk sinyal digital atau dapat pula disimpulkan ADC ini dapat mengubah nilai suatu masukan yang berupa tegangan listrik atau sinyal analog lainnya menjadi keluaran berupa nilai digital. DAC adalah Suatu piranti yang dirancang untuk mengubah sinyal-sinyal digital menjadi bentuk sinyal analog. Atau dapat pula disimpulkan ADC ini dapat mengubah nilai suatu masukan yang berupa nilai digital yang berupa nilai biner menjadi nilai keluaran analog yang berupa tegangan listrik atau sinyal analog lainnya yang dapat dikonversikan dari nilai digital.
6.1 Jenis-Jenis ADC Jenis-jenis ADC serta fungsi dari masing-masing dari ADC tersebut adalah sebagai berikut : a. Tipe Integrating, menawarkan resolusi tertinggi dengan biaya terendah. ADC tipe ini tidak dibutuhkan rangkaian sample hold. Tipe ini memiliki kelemahan yaitu waktu konversi yang agak lama, biasanya beberapa milidetik. b. Tipe tracking menggunakan prinsip up down counter (pencacah naik dan turun). Binary counter (pencacah biner) akan mendapat masukan clock secara kontinyu dan hitungan akan bertambah atau berkurang tergantung pada kontrol dari pencacah apakah sedang naik (up counter) atau sedang turun (down counter). ADC tipe ini tidak menguntungkan jika dipakai pada sistem yang memerlukan waktu konversi masukan keluaran singkat, sekalipun pada bagian masukan pada tipe ini tidak memerlukan rangkaian sample hold. ADC tipe ini sangat tergantung pada kecepatan clock pencacah, semakin tinggi nilai clock yang digunakan, maka proses konversi akan semakin singkat. c. Tipe flash / parallel, tipe ini dapat menunjukkan konversi secara lengkap pada kecepatan 100 MHz dengan rangkaian kerja yang sederhana. Sederetan tahanan mengatur masukan inverting dari tiap-tiap konverter menuju tegangan yang lebih tinggi dari konverter sebelumnya, jadi untuk tegangan masukan Vin, dengan full scale range, komparator dengan bias dibawah Vin akan mempunyai keluaran 55
rendah. Keluaran komparator ini tidak dalam bentuk biner murni. Suatu dekoder dibutuhkan untuk membentuk suatu keluaran yang biner. Beberapa komparator berkecepatan tinggi, dengan waktu tunda (delay) kurang dari 6 ns banyak digunakan, karena itu dihasilkan kecepatan konversi yang sangat tinggi. Jumlah komparator yang dibutuhkan untuk suatu konversi n bit adalah 2^n – 1. d. Tipe successive approximation convertion (SAR) merupakan tipe konverter yang paling sering ditemui dalam desain perangkat keras yang menggunakan ADC. Tipe ini memiliki kecepatan konversi yang cukup tinggi, meskipun dari segi harga relatif mahal. Prinsip kerja konverter tipe ini adalah dengan membangkitkan pertanyaanpertanyaan yang pada intinya berupa tebakan nilai digital terhadap nilai tegangan analog yang dikonversikan. Apabila resolusi ADC tipe ini adalah 2n maka diperlukan maksimal n kali tebakan.
6.2 Parameter-Parameter Penting Pada ADC Beberapa parameter yang penting bagi sebuah ADC adalah sebagaimana yang akan dijelaskan berikut ini: a. Resolusi konversi ADC Resolusi konversi dari sebuah ADC bergantung pada jangkauan input analog dan jumlah digit biner hasil konversi yang disediakan oleh ADC tersebut, apakah dikonversikan ke 8 bit, 16 bit atau 32 bit. Banyak digit biner ini tergantung keinginan si perancang dan juga dari kekompatibelan perangkat (device) yang nanti akan di-interface-kan. Misalkan ingin di-interface ADC dengan mikrokontroller maka harus diperhatikan apakah mikrokontroller tersebut support untuk jumlah bit yang akan dihasilkan oleh ADC. Biasanya mikrokontroller support untuk ADC dengan resolusi 8 bit. Resolusi sebuah ADC dapat dihitung dengan rumus berikut ini: Resolusi = (
𝑡𝑒𝑔𝑎𝑛𝑔𝑎𝑛 𝑠𝑘𝑎𝑙𝑎 𝑝𝑒𝑛𝑢ℎ 2𝑛 −1
)
(persamaan 1)
Dalam penggunaan IC ADC 0804 yang mempunyai jangkauan input analog mulai 0 Volt sampai 5 volt (skala penuh) dan output IC ADC 0804 ini 8 bit, resolusinya dapat dihitung dengan persamaan 1 di atas sebagai berikut:
56
Resolusi = (
5 𝑉𝑜𝑙𝑡 28 −1
) = 0,0196 Volt
b. Waktu Konversi Waktu konversi adalah waktu yang dibutuhkan oleh ADC untuk mengkonversi data analaog ke digital. Untuk menentukan time konversi dari tiap ADC dapat dilihat di datasheet IC ADC yang dikeluarkan oleh produsennya. Time konversi semakin tinggi mungkin semakin baik, tetapi harus didukung pula dengan kesesuaian interface-nya. Jika semua device nya mendukung untuk waktu konversi yang lebih cepat maka dengan menggunakan ADC yang waktu konversinya lebih cepat itu akan menjadi lebih baik. Salah satu ADC yang banyak digunakan dalam perancangan rangkaian berbasis mikrokontroler adalan IC ADC 0804. IC ADC ini bertipe successive approximation convertion (SAR) untuk mengkonversikan masukan analog (0-5 Volt) menjadi data digital 8 bit yang ekivalen. ADC0804 mempunyai pembangkit clock internal dan memerlukan catu daya 5V dan mempunyai waktu konversi optimum sekitar 100μs.
Gambar 6.1 IC ADC 0804
57
6.3 Konfigurasi Pin Dan Pemrogaman ADC 0804 Konfigurasi pin-pin ADC 0804 dapat dilihat pda gambar Fungsi dari tiap pin ADC 0804 adalah sebagai berikut: a. CS, Chip Select. Agar ADC dapat aktif dan melakukan konversi data maka input chip select harus diberi logika low. Data output akan berada pada kondisi impedansi tinggi (high impedance) dan tidak dapat diakses apabila CS mendapat logika high. b. WR, input write. Pemberian pulsa transisi high to low pada input write (WR) akan mengakibatkan ADC melakukan konversi data dari tegangan analog menjadi data digital. Kode 8 bit data hasil konversi akan ditransfer ke output lacht flip–flop. c. INTR, sinyal selesai konversi. INTR akan menjadi tinggi (high) pada saat memulai konversi dan akan berubah rendah (low) bila konversi telah selesai. Tepi turun sinyal INTR dapat dipergunakan untuk menginterupsi sistem mikrokontroller, supaya mikrokontroller melakukan pencabangan ke subruotine pelayanan yang memproses keluaran konverter. Perangkat ADC dapat dioperasikan dalam mode free running (menghasilkan konversi secara kontinu) dengan menghubungkan pin INTR ke input WR. Untuk melaksanakannya, CS dan RD dihubungkan ke ground dan WR disambungkan dengan INTR. Maka dengan ini keluaran digital yang kontinu akan muncul karena sinyal INTR menggerakkan masukan WR. Pada akhir konversi INTR berubah menjadi low, sehingga keadaan ini akan mereset konverter dan mulai konversi. d. RD, Read. Agar data ADC data dapat dibaca oleh sistem mikroprosessor maka pin RD harus diberi logika low. e. Tegangan analog input deferensial, input Vin (+) dan Vin (-) merupakan input tegangan deferensial yang akan mengambil nilai selisih dari kedua input. Dengan memanfaatkan input Vin maka dapat dilakukan offset tegangan nol pada ADC. f. Vref, tegangan referensi dapat diatur sesuai dengan input tegangn pada Vin (+) dan Vin (-), Vref = Vin / 2. g. Pin 11 sampai 18 (DB0 sampai DB7) adalah keluaran tiga keadaan, yang dapat dihubungkan langsung dengan bus data bila diperlukan. Agar dapat data dapat
58
diakses, pin CS dan RD harus diberi input rendah keduanya agar keluaran digital dapat muncul pada saluran keluaran. Apabila CS (pin 1) atau RD (pin2) dalam keadaan high (1), pin 11 sampai 18 akan masuk dalam kondisi impedansi tinggi (high impedance) dan data tidak dapat diakses. h. CLK IN, masukan pulsa clock untuk sinkronisasi kinerja mikrokontroler. Pulsa clock ini dapat dapat diberikan dari sumber luar dengan frekuensi yang sama atau diturunkan dari detak mikrokontroller. Kemungkinan lain, pulsa clock dapat dihasilkan dari pembangkit clock internal dengan dengan menghubungkan sebuah resistor eksternal antara pin CLK R dan CLK IN serta sebuah kapasitor eksternal antara CLK IN dan ground digital. Frekuensi clock yang diperoleh di pin CLK R dapat dihitung dengan persamaan 2. Konversi detak konverter harus terletak dalam daereh frekuensi 100 sampai 800kHz F (frekuensi clock) =
0,91 𝑅𝐶
Hz
Berdasarkan penjelasan di atas maka dapat diringkas langkah-langkah untuk memulai konversi ADC 0804 sebagai berikut: a. Memberikan sinyal bernilai low ke pin chip select (CS). b. Memberikan sinyal bernilai low ke pin write (WR). c. Memberikan sinyal bernilai high pada pin chip select (CS). d. Tunggu pin INTR berubah menjadi Low. Dan langkah-langkah untuk memulai proses membaca output dari ADC 0804 adalah: a. Memberikan sinyal bernilai low ke pin chip select (CS). b. Memberikan sinyal bernilai low ke pin read (RD). c. Membaca data dari port mana ADC tersambung. d. Memberikan sinyal bernilai high pada pin read (RD). e. Memberikan sinyal bernilai high pada pin chip select (CS).
Berikut ini adalah contoh program interfacing ADC dengan mikrokontroller AT89S51 atau sejenisnya. ORG 0h ADC_CS bit P2.7 ADC_RD bit P2.6 59
ADC_WR bit P2.5 ADC_INT bit P2.4 ; ORG 0h next_sampling: clr ADC_CS
; aktifkan ADC0804
clr ADC_WR
; start of conversion
setb ADC_WR not_EOC: jb ADC_INT,not_EOC delay: djnz R2,$ djnz R3,delay clr ADC_RD
; Baca Data melalui P3
djnz R3,$ mov A,P3
;salin data ke P3
setb ADC_RD setb ADC_CS cpl A mov P1,A sjmp next_sampling end
6.4 Jenis-Jenis DAC Jenis-jenis DAC serta fungsi dari masing-masing dari DAC tersebut adalah sebagai berikut : a. The weighted DAC biner, yang berisi satu penghambat atau sumber saat ini untuk setiap bit dari DAC terhubung ke summing point. Ini tepat tegangan atau arus ke jumlah nilai output yang benar. Ini adalah salah satu metode tercepat konversi tetapi menderita miskin akurasi karena tingginya presisi diperlukan untuk setiap individu atau tegangan saat ini. Seperti resistors
60
presisi tinggi dan saat ini sumber-mahal, jadi converter jenis ini biasanya terbatas pada resolusi 8-bit atau kurang. b. R-2r DAC tangga, yang merupakan biner weighted DAC yang menggunakan mengulangi cascaded struktur penghambat nilai R dan 2r. Hal ini meningkatkan presisi karena kemudahan yang relatif sama produksi bernilai cocok resistors (sekarang atau sumber). Namun, lebar converters melakukan lambat karena semakin besar RC-konstan untuk setiap ditambahkan R-2r link. c. The DAC termometer kode, yang berisi yang sama atau saat ini sumber penghambat untuk setiap segmen mungkin nilai DAC output. An 8-bit DAC termometer akan memiliki 255 segmen, dan 16-bit DAC termometer akan ada 65.535 segmen. Hal ini mungkin yang tercepat dan tertinggi presisi DAC arsitektur tetapi pada pengeluaran biaya yang cukup tinggi. Konversi kecepatan> 1 miliar sampel per detik telah tercapai dengan jenis DAC. d. DACs Hybrid, yang menggunakan kombinasi teknik-teknik di atas dalam satu converter. Paling DAC sirkuit terpadu dari jenis ini adalah karena sulitnya mendapatkan dari biaya rendah, kecepatan tinggi dan presisi tinggi dalam satu perangkat.
61
BAB VII KOMUNIKASI MIKROKONTROLER DENGAN KOMPUTER 7.1 Komunikasi Serial Komunikasi serial dapat dianalogikan sebagai perjalanan semut memasuki lubang di tanah. Semut-semut itu berbaris teratur dan memasuki tanah satu per satu. Semut-semut adalah data dalam bit, sedangkan lubang di tanah adalah sebuah register yang menampung bit-bit yang terkirim. Pada intinya, proses pengiriman data pada komunikasi serial dikirim satu per satu. Berikut ini beberapa istilah dalam komunikasi serial, yaitu : a. Synchronous (sinkron) adalah kondisi pengiriman data serial yang disertai dengan pengiriman detak (clock). b. Asynchronous (asinkron) adalah kondisi dengan detak tidak dikirim bersamaan dengan data serial sehingga masing-masing perangkat keras yang berkomunikasi harus menciptakan detaknya sendiri. c. Baud rate merupakan istilah yang digunakan untuk kecepatan aliran data. Satuan baud rate adalah bps (bit per second). Contohnya, 9600 bps atau 19200 bps. d. Full duplex adalah jenis komunikasi serial yang menyatakan hubungan antara dua perangkat keras, A dan B. Jika A sedang melakukan pengiriman data, pada saat yang sama, A dapat menerima data dari B, dan sebaliknya. Kondisi ini dinamakan full duplex atau komunikasi dua arah. Contohnya, telepon.
e. Half duplex merupakan kondisi ketika proses pengiriman dan penerimaan data tidak dapat dilakukan secara bersamaan seperti pada full duplex namun dilakukan secara bergantian. Contohnya, pesawat intercom dan walkie talkie.
Jenis
komunikasi
serial
di
antaranya
UART
(Universal
Asynchronous
Receiver/Transmitter), SPI dan I2C (Inter Integrated Circuit). Pada komunikasi serial asinkron jenis full duplex digunakan tiga jalur yaitu, jalur Tx (transmit/pengiriman), jalur Rx
62
(receive/penerimaan) dan jalur ground. Umumnya jumlah data yang dikirim adalah satu bit start, delapan bit data, dan satu bit stop sehingga dalam satu frame data terdapat sepuluh bit (format 1-8-1).
Gambar 7.1 komunikasi serial
Komunikasi serial pada mikrokontroler AT89S51 bergantung pada kondisi pin Rx dan Tx. Data yang akan dikirim dan diterima harus diletakkan atau ditampung pada register SBUF (serial buffer). SBUF pada mikrokontroler dipisahkan antara pengiriman data dan penerimaan data tetapi dalam pemrogramannya hanya ada satu yaitu SBUF saja. Tugas compiler untuk memahami SBUF yang dimaksud oleh program dan menterjemahkannya ke dalam kode mesin untuk masing-masing SBUF.
63
Gambar 7.2 register SBUF
Register lain yang berkaitan dengan komunikasi serial adalah SCON (Serial Port Control Register) dan PCON (Power Control Register). Bit kedua dan bit ketiga SCON hanya digunakan untuk komunikasi serial dengan data sembilan bit sedangkan bit-bit yang lain digunakan di hampir setiap mode komunikasi serial.
Tabel 7.1 Isi Register SCON
Register PCON digunakan untuk pengaturan baud rate atau kecepatan transmisi serial yaitu melalui bit yang bernama SMOD. Register PCON terdiri atas delapan bit seperti diilustrasikan berikut.
64
Tabel 7.2 Isi Register PCON
Saat pertama kali mikrokontroler dihidupkan atau dalam kondisi reset, semua nilai bit pada PCON adalah 0 (nol). Dari lima bit yang ada pada register PCON, mikrokontroler MCS-51 hanya menggunakan tiga bit saja yaitu SMOD, PD, dan IDL. Dari tiga bit tersebut, yang berhubungan dengan komunikasi serial adalah SMOD. GF1 dan GF0 digunakan untuk fungsi umum atau general purpose register. Port serial AT89S51 dapat digunakan untuk empat mode sesuai pengaturan bit SM0 dan SM1 seperti pada gambar dibwah ini. Mode yang umum dipakai adalah UART 8 bit (mode 1) sedangkan aplikasi yang rentan terhadap gangguan menggunakan mode 2 dan mode 3.
65
Gambar 7.3 Mode kerja port serial
Berikut penjelasan masing-masing mode, yaitu : a. Mode 0 Mode 0 merupakan mode sinkron dengan detak juga ikut dikirimkan bersamaan dengan data serial. Detak dikirim melalui TxD (dengan kecepatan fosc/12). Sedangkan, pin RxD digunakan untuk mengirim dan menerima data. Sifat mode 1 adalah half duplex. Jika CPU difungsikan untuk menerima data, maka RI dikosongkan terlebih dahulu (RI=0) dan REN=1. b. Mode 1 Mode 1 merupakan mode asinkron full duplex. Format data yang digunakan adalah 1 bit start, 8 bit data, dan 1 bit stop dengan protokol RS-232 tetapi dengan level tegangan TTL. Sepuluh bit paket data tersebut dikirim melalui pin TxD dan dapat diterima melalui pin RxD. c. Mode 2 Mode 2 adalah mode asinkron full duplex dengan sebelas bit paket data yaitu, 1 bit start, 8 bit data, 1 bit RB8 (atau TB8) dan 1 bit stop. RB8 digunakan untuk menerima bit data ke-9 sedangkan TB8 digunakan untuk menampung bit data ke-9 yang akan dikirimkan. Bit data ke-9 sering disebut juga sebagai Parity (P). mode 2 mendukung pemanfaatan multiprosesor. Baud rate dapat dipilih antara fosc/32 atau fosc/64 tergantung pada pilihan SMOD di register PCON. Jika SMOD=0 maka baud rate adalah fosc/64 dan jika SMOD=1 maka baud rate adalah fosc/32.
66
d. Mode 3 Mode 3 sama dengan mode 2. Perbedaannya hanyalah terletak pada baud rate. Baud rate pada mode ini daopat diatur melalui timer 1. Mode 1 dan mode 3 sering digunakan untuk komunikasi RS-232 dengan format berikut : Mode 1 : 1 + 8 + 1 Mode 3 : 1 + 8 + P + 1 Pengaturan baud rate pada mikrokontroler AT89S51 disesuaikan dengan mode yang dipilih.
Gambar 7.4 Hubungan mode dengan baud rate
Rumus baud rate untuk setiap mode komunikasi serial, yaitu :
Proses pengiriman data serial dilakukan per byte data. Proses tersebut menggunakan bit yang ada pada register SCON, yaitu bit TI. Bit TI merupakan petanda yang setara dengan petanda Transmitter Data Register Empty (TDRE) yang umum dijumpai pada UART standar. Data yang dikirim disimpan terlebih dahulu pada register SBUF. Berikut adalah subrutin pengiriman data serial. 67
SerialOut: JNB TI,$ MOV SBUF,A CLR TI RET Baris pertama adalah subrutin dengan nama SerialOut. Baris kedua menunggu data sebelumnya selesai dikirim. Baris ketiga mangirimkan data melalui port serial dengan cara meletakkan data yang telah disimpan di akumulator A ke register SBUF. Setelah itu, nilai TI dinolkan kembali. Proses penerimaan data serial dilakukan dengan mengecek bit RI pada register SCON. Bit RI merupakan petanda yang setara dengan petanda Receiver Data Register Full (RDRF). Setelah register SBUF menerima data dari port serial, bit RI akan bernilai 1 dengan sendirinya kemudian harus dinolkan dengan program agar bisa dipakai untuk memantau keadaan SBUF dalam penerimaan data berikutnya. Berikut adalah subrutin penerimaan data serial. SerialIn: JNB RI,$ MOV A,SBUF CLR RI 05 RET Baris pertama adalah subrutin dengan nama SerialIn. Baris kedua menunggu register RI bernilai 1 untuk memastikan sudah ada data baru yang diterima pada SBUF. Baris ketiga, SBUF ditempatkan pada akumulator A supaya RI
dapat
dipakai
untuk
memantau keadaan SBUF pada pengiriman data berikutnya. Selanjutnya, pada baris empat RI dinolkan.
7.2 Komunikasi Paralel Mikrokontroler Dengan Komputer Mikrokontroler dan komputer dapat melakukan komunikasi dua arah dengan menggunakan port paralel komputer sebagai jalur input dan output antara komputer dan mikrokontroler.
68
Port paralel ialah port data di komputer untuk mentransmisi 8 bit data dalam sekali detak. Standar port paralel yang baru ialah IEEE 1284 yang dikeluarkan tahun 1994. Standar ini mendefinisikan 5 mode operasi sebagai berikut : a. Mode kompatibilitas b. mode nibble c. mode byte d. mode EPP (Enhanced Parallel Port) e. mode ECP (Extended Capability Port) Tujuan dari standar yang baru tersebut ialah untuk mendesain driver dan peralatan yang baru yang kompatibel dengan peralatan lainnya serta standar paralel port sebelumnya (SPP) yangn diluncurkan tahun 1981. Mode Compatibilitas, nibble dan byte digunakan sebagai standar perangkat keras yang tersedia di port paralel orisinal dimana EPP dan ECP membutuhkan tambahan hardware dimana dapat berjalan dengan kecepatan yang lebih tinggi. Mode kompatibilitas atau (“Mode Centronics” ) hanya dapat mengirimkan data pada arah maju pada kecepatan 50 kbytes per detik hingga 150 kbytes per detik. Untuk menerima data, anda harus mengubah mode menjadi mode nibble atau byte. Mode nibble dapat menerima 4 bit (nibble) pada arah yang mundur, misalnya dari alat ke computer. Mode byte menggunakan fitur bi-directional parallel untuk menerima 1 byte (8 bit) data pada arah mundur. IRQ (Interrupt Request ) pada port paralel biasanya pada IRQ5 atau IRQ7. Port paralel Extend dan Enhanced menggunakan
hardware tambahan untuk
membangkitkan dan mengatur handshaking. Untuk mengeluarkan 1 byte ke printer menggunakan mode kompatibilitas, software harus : a. menulis byte ke data port b. cek untuk melihat apakah printer sibuk, jika sibuk, ia tidak akan menerima data, sehingga data yang telah ditulis akan hilang. c. buat strobe (pin 1) rendah. Ini memberitahukan printer bahwa data yang benar telah berada di line data d. buat strobe tinggi lagi setelah menunggu sekitar 5 mikrodetik setelah membuat strobe low. Hal ini membatasi kecepatan data. Sedangkan EPP dan ECP mengizinkan hardware mengecek jika printer sibuk dan mengeluarkan sinyal strobe atau handshaking lainnya. Ini berate hanya 1 instruksi I/O yang harus dilakukan yang akan meningkatkan kecepatan Port 69
ECP juga mempunyai kelebihan menggunakan saluran DMA dan buffer FIFO, jadi data dapat digeser tanpa menggunakan instruksi I/O. Protokol EPP mempunyai 4 macam siklus transfer dta yang berbeda yaitu : a. Siklus baca data (Data read) b. Siklus baca alamat (Address Read) c. Siklus tulis data (data write) d. siklus tulis alamat (address write) Siklus data digunakan untuk mentrasfer data antara host dan peripheral. Siklus alamat digunakan untuk mengirimkan alamat, saluran (channel) atau informasi perintah dan control. Tabel 7.3 Tabel Nama pin dari konektor parallel port DB 25 dan Centronics
70
Berikut ialah tabel nama pin dari konekter DB25 dan Centronics dengan jumlah konektor 34. DB25 ialah konektor yang umum digunakan di computer sebagai port paralel , sedangkan konektor Centronics umum ditemukan di printer. IEEE 1284 ialah standar yang menentukan 3 konektor berbeda yang dapat digunakan dengan port paralel, yaitu1284 tipe A ialah konektor DB25 yang dapat ditemukan di hampir semua komputer, 1284 tipe B ialah konektor Centronics 36 pin yang umum ditemukan di printer, IEEE 1284 type C ialah konektor 36 pin seperti Centronics, tetapi ukurannya lebih kecil dan lebih memuaskan. Untuk mengeluluarkan data di port parallel, dalam bahasa C dapat digunakan fungsi outport (8 bit ) dan outportb(16 bit) sebagai berikut: #include #include <stdio.h> #include <stdlib.h>
71
int main() { outport(0x378,0);
//lampu led mati
sleep(1);
//tunda 1 detik
outport(0x378,1);
//lampu led hidup
sleep(1); return 0; }
Untuk mengaktifkan port paralel sebagai jalur data input- output, terlebih dahulu harus diset BIOS pada mode EPP, ECP atau pada beberapa komputer Bi-directional (standard). Rangkaian antar muka antara mikrokontroler dan komputer adalah seperti pada gambar di bawah ini. Pada gambar rangkaian tersebut digunakan mikrokontroler ATMEGA32.
Walaupun
demikian, prinsip
rangkaain
ini
dapat diterapkan
pada
mikrokontroler lainnya dari keluarga MCS51 (seperti AT89S51/52) ataupun AVR.
Gambar 7.5 Antarmuka Port Data Paralel Port dengan Mikrokontroler ATMEGA32
72
BAB VIII TEKNIK MENYOLDER 8.1 Defenisi Penyolderan Kemampuan menyolder yang baik diperlukan dalam praktek elektronika, mikrokontroler dan embedded system untuk memasang atau melepas komponen. Tiap titik sambungan komponen harus disolder dengan baik dan benar untuk memastikan sambungan terjadi dengan sempurna. Penyolderan yang tidak sempurna dapat menyebabkan rangkaian tidak bekerja. Tidak boleh asal menyolder karena hasilnya bisa jadi tidak memuaskan atau rangkaian menjadi tidak bekerja sesuai dengan semestinya. Soldering (proses menyolder) didefinisikan sebagai menggabungkan beberapa logam (metal) secara difusi yang salah satunya mempunyai titik cair yang relatif berbeda. Dengan kata lain, dua atau lebih benda kerja (metal) bisa digabungkan bila salah satunya mempunyai titik cair relatif lebih rendah, sehingga metal yang memiliki titik cair paling rendah akan lebih dulu mencair. Ketika proses penyolderan (pemanasan) dihentikan, maka logam yang mencair tesebut akan kembali membeku dan menggabungkan secara bersamasama metal yang lain. Proses menyolder biasanya diaplikasikan pada peralatan elektronik dan embedded system untuk menempelkan/menggabungkan komponen elektronika, IC (integrated circuit) atau perangkat periferal pada papan circuit (PCB).
8.2 Solder Menyolder merupakan pekerjaan yang membutuhkan kesabaran cukup tinggi selain keterampilan tangan dalam menggerakan solder. Dan solder adalah perangkat wajib yang harus dimiliki dalam tahap penyolderan. Harus diperhatikan bahwa salah satu penentu kualitas penyolderan adalah kualitas soldernya itu sendiri. Papan rangkaian tercetak (PCB,Printed Circuit Board) merupakan lapisan yang sangat peka terhadap panas, jika solder memiliki tingkat panas yang berlebihan maka lapisan tembaga yang menempel pada PCB akan mudah untuk terkelupas. Selain itu beberapa komponen elektronika memiliki tingkat panas tertentu sehingga ketika komponen elektronika tersebut menerima panas yang melebihi kemampuannya maka komponen akan rusak sebelum digunakan. Sebaliknya jika solder memiliki tingkat panas yang rendah maka timah tidak mampu merekat kuat pada PCB. Jika dilihat sepintas sepertinya komponen elektronika tersolder dengan baik pada PCB namun sebenarnya timah tidak mampu merekat kuat pada PCB hingga kualitas rangkaian 73
elektronika juga jelek karena sambungannya tidak baik. Sebaiknya dihindari penggunaan solder pistol karena panas pada ujung soldernya tidak mampu di kontrol dengan baik, kecuali penyolder sudah profesional dalam mengatur lamanya waktu solder menempel pada PCB, memahami kualitas komponen dan mengetahui kualitas timah yang digunakan. Solder biasanya digolongkan menurut dayanya (Watt). Padahal penggolongan seperti ini memiliki tingkat akurasi rendah karena penggolongan sesuai dengan dayanya itu biasanya tidak menjelaskan effisiensinya, besarnya daya yang disalurkan hingga ke ujung solder. Harus diperhatikan pula kapasitas panas dari solder serta waktu naik ke suhu yang stabil. Suhu maksimum solder yaitu suhu dalam keadaan seimbang, suhu yang dicapai bila panas yang dibangkitkan solder telah seimbang dengan panas yang hilang diserap oleh sekelilingnya. Solder yang baik akan menghasilkan suhu maksimum yang sama untuk suatu model yang sama bila disambungkan ke tegangan sumber yang sama. Sumber daya dari solder berasal dari elemen pemanas yang resistif, maka suhu yang dihasilkan solder dapat diubah dengan pengaturan tegangan sumber pemanasnya. Untuk menghasilkan kualitas penyolderan yang baik lebih baik kita memilih jenis solder yang tingkat panas suhunya dapat diatur baik secara otomatis maupun secara manual yang mampu disesuaikan dengan kebutuhan. Suhu solder ditentukan selain oleh wattnya juga ditentukan oleh besar, bentuk ujung dan bahan besi yang digunakan. Pemilihan bentuk ujung solder juga mempengaruhi kualitas penyolderan maka sesuaikan bentuk ujung solder yang cocok dengan kebutuhan. Perhatikan bahwa pemilihan solder untuk tugas tertentu harus dimulai dari solder dengan watt rendah, jika tidak memadai maka secara bertahap barulah memilih solder dengan daya yang lebih besar. Di pasaran terdapat solder yang mempunyai rentang daya antara 15 Watt s/d 40 Watt. Semakin besar tegangannya, solder tersebut akan semakin panas. Dalam pemilihan solder yang harus diperhatikan adalah benda kerja yang akan disolder. Untuk menyolder komponen elektronika dianjurkan menggunakan solder yang berkekuatan 40 Watt supaya tidak terlalu panas yang menyebabkan komponen yang disolder menjadi rusak. Ujung solder atau ada yang menyebutnya paku solder memiliki peranan penting dalam tahap penyolderan. Oleh karena itu sangat dianjurkan untuk memilih ujung solder yang dilapisi (disepuh) besi atau baja karena selain lebih tahan lama juga lebih mudah dalam pemeliharaannya dari pada ujung solder tembaga telanjang tanpa disepuh. Ujung solder 74
yang dilapis besi tidak boleh diampelas atau dikikir karena hal tersebut dapat mengikis/merusak lapisan besinya. Jika ujung solder dari tembaga telanjang tanpa lapisan besi maka setiap melakukan penyolderan akan mengikis tembaga berupa butiran halus yang ikut menempel pada PCB dan lama kelamaan pada ujung solder akan terbentuk kawah. Ampelas atau kikirlah lagi hingga ujung solder menjadi licin dan lapisi kembali dengan timah.
8.3 Peralatan Menyolder Peralatan yang dibutuhkan pada waktu menyolder, diantaranya: a. Solder, peralatan utama penyolderan yang mengkonversi energi listrik menjadi energi panas. b. Timah solder/Tinol yaitu metal yang mempunyai titik cair cukup rendah sehingga mudah mencair. Gunakanlah jenis timah solder berkualitas yang terdiri dari campuran timah dengan titik lebur rendah dan mengandung kolophonium sebagai cairan solder. Timah dipasarkan dalam bentuk kawat kecil
dengan
diamater
beragam
dan
digulung.
Jangan
sekali-kali
menggunakan jenis kawat timah yang tidak berkualitas karena akan merusak kualitas penyolderan, sehebat apapun teknik menyolder, sebagus apapun solder yang digunakan dan sekuat apapun PCB jika timah yang digunakan jelek maka hasil solderan pun tetap jelek dan tentunya kualitas akhir rangkaian elektronik akan mengecewakan. c. Multitester/Multimeter, digunakan untuk memeriksa komponen sebelum disolder. d. Penjepit/tang, digunakan untuk menjepit kaki komponen elektronika yang akan disolder sehingga komponen tersebut mudah dipasang dan tidak terlalu panas karena sebagian panas akan disalurkan pada penjepit. e. Penghisap solder, digunakan untuk membersihkan tinol baik yang ada pada PCB maupun komponen, juga digunakan untuk mempermudah waktu mencabut komponen dari PCB. f. Dudukan solder, digunakan untuk menyimpan solder yang panas ketika sedang tidak digunakan agar lingkungan penyolderan aman dari panas kepala solder.
75
Gambar 8.1 Peralatan Menyolder
8.4 Proses Penyolderan Untuk mendapatkan hasil penyolderan yang baik, tahapan-tahapan berikut ini hendaknya diikuti dengan benar: a. Periksa PCB dan komponen elektronika yang akan disolder. Pastikan bahwa komponen-komponen
tersebut
bisa
berfungsi
sesuai
dengan
yang
diharapkan. b. Bersihkan PCB dari kotoran atau minyak dengan menggunakan kain wol dan thinner atau menggunakan alat pembersih yang lain. Hindarkan alat pembersih yang bisa menyebabkan korosi pada PCB maupun jalur-jalur yang ada pada PCB. c. Bersihkan komponen-komponen elektronika yang akan disolder, terutama bagian yang akan disolder (kaki-kakinya) dengan menggunakan kain atau ampelas. d. Panaskan solder sampai solder tersebut mampu mencairkan tinol. e. Pasang komponen yang akan disolder pada PCB kemudian lakukan penyolderan. Jangan memasang komponen sekaligus tetapi bertahap satu. Cara pemasangan komponen pada PCB yaitu dengan cara menacapkan kakikaki komponen tersebut pada lobang yang sudah disediakan pada PCB. Setelah di tancapkan, bengkokkan kakinya ±45° supaya komponen tersebut tidak terlepas dan untuk mempermudah pada waktu menyoldernya. f.
Dahulukan menyolder komponen yang paling tahan terhadap panas. Untuk komponen seperti IC, sebaiknya tidak disolder secara langsung ke PCB karena panas akibat penyolderan bisa merusaknya tetapi digunakan socket/dudukan
76
untuk memasangnya. Socket digunakan untuk menjaga supaya IC tidak terkena panas pada waktu menyolder, selain itu juga untuk mempermudah penggantian bila IC-nya rusak karena IC termasuk komponen yang sering mengalami kerusakan. g. Solderan yang baik adalah solderan yang berbentuk gunung dengan ketinggian ± 0,75 mm.
Sumber: http://dehagoblog.blogspot.com Gambar 8.2 Proses menyolder yang baik
h. Setelah semua komponen di solder, proses berikutnya adalah memeriksa jangan sampai ada solderan yang kurang baik atau komponen yang rusak 77
akibat panas dari solder. Juga memeriksa jalur-jalur yang ada pada PCB jangan sampai ada yang rusak atau saling berhubungan akibat lelehan tinol yang akan mengakibatkan hubungan pendek. i.
Proses terakhir setelah semua proses di atas selesai adalah memotong kelebihan kaki komponen yang tidak diperlukan dan memberi lapisan terutama pada bagian bawah PCB yang ada soldernya dengan bahan yang bersifat isolator misalnya perak, cat atau vernish. Hal ini dilakukan supaya rangkaian terhindar dari korosi akibat oksidasi.
8.5 Keselamatan Kerja a. Gunakan kacamata polycarbonate atau yang sejenis untuk melindungi mata dari asap solder. b. Jangan pernah menyentuh elemen pemanas atau ujung dari solder. c. Selalu kembalikan solder pada stand soder setelah digunakan atau ketika tidak digunakan. d. Lakukan penyolderan pada area yang cukup ventilasi. e. Cuci tangan ketika selesai mengerjakan penyolderan.
78
DAFTAR PUSTAKA Usman, Teknik Antar Muka + Pemrograman Mikrokontroler AT89S52, Penerbit Andi, Yogyakarta, 2008
Budiharto, Widodo, Perancangan Sistem Dan Aplikasi Mikrokontroler, Penerbit PT Elex Media Komputindo, Jakarta, 2005
Suhata, Aplikasi Mikrokontroler sebagai Pengendali Peralatan Elektro, Penerbit PT Elex Media Komputindo, Jakarta, 2009
Setiawan, Sulhan, Mudah dan Menyenangkan Belajar Mikrokontroler, Penerbit Andi, Yogyakarta, 2008
http://www.atmel.com, Atmel 8051 Microcontrollers Hardware Manual, Atmel Corp., 2004
http://www.circuitstoday.com
http://www.yousaytoo.com
http://histla.web.id/
http://www.inkubator-teknologi.com
http://www.mikrokontroller-adiarray.blogspot.com
79
LAMPIRAN Program Pendeteksi Suhu Digital Menggunakan Mikrokontroler AT89S51 ratusan puluhan satuan data_adc putr plcd itr wri re lcd_rs lcd_en led bacasuhu
equ equ equ equ bit bit bit bit bit bit bit
equ equ 32h 33h 70h p0 p3.2 p3.3 p3.4 p1.0 p1.1 p1.2 p1.3
30h 31h
org 000H jmp start ;-----------------------------------------------; TAMPILAN AWAL LCD ;-----------------------------------------------start: setb call call mov call mov call call mov call mov call call call mov call mov call call mov call mov
led initlcd lcd_atas dptr,#txt_1 lcdstring a,#03 delay3 lcd_bawah dptr,#txt_2 lcdstring a,#03 delay3 initlcd lcd_atas dptr,#txt_3 lcdstring a,#03 delay3 lcd_bawah dptr,#txt_4 lcdstring a,#03 80
call call
delay3 initlcd
;-----------------------------------------------; PROGRAM UTAMA ;-----------------------------------------------call call mov call call mov call blinkled: mov call clr mov call setb jb call
initlcd lcd_atas dptr,#txt_a lcdstring lcd_bawah dptr,#txt_b lcdstring a,#01 delay3 led a,#01 delay3 led bacasuhu,blinkled initlcd
ceksuhu: call
baca_adc
tampilkan: call call mov call mov call call mov call jb call jmp
konversi lcd_atas dptr,#txt_c lcdstring a,#01 delay3 display_adc a,#01 delay3 bacasuhu,ceksuhu prosessing ceksuhu
;-----------------------------------------------; PROGRAM ADC ;-----------------------------------------------baca_adc: clr
wri 81
setb jb clr mov setb mov ret
wri itr,$ re a,p2 re data_adc,a
;-----------------------------------------------; KONVERSI RATUSAN, PULUHAN, SATUAN ;-----------------------------------------------konversi: mov div mov mov mov div mov mov ret
b,#100d ab ratusan,a a,b b,#10d ab puluhan,a satuan,b
;-----------------------------------------------; TAMPILAN SUHU PADA LCD ;-----------------------------------------------display_adc: mov call mov add mov call
r1,#0c8h tulis_inst a,ratusan a,#30h r1,a tulis_data
mov call mov add mov call
r1,#0c9h tulis_inst a,puluhan a,#30h r1,a tulis_data
mov call mov add
r1,#0cah tulis_inst a,satuan a,#30h 82
mov call
r1,a tulis_data
mov call mov add call
r1,#0cch tulis_inst r1,#0DFH a,#30h tulis_data
mov call mov add call ret
r1,#0cdh tulis_inst r1,#'C' a,#30h tulis_data
;-----------------------------------------------; INISIALISASI LCD ;-----------------------------------------------initlcd: mov call call mov call call mov call call mov call call mov call call ret
A,#00000001b lcdins delay A,#00111000b lcdins delay A,#00001100b lcdins delay A,#00000110b lcdins delay A,#00000001b lcdins delay2
; clear display
; 8 bit - 2 line, 5x7 matrix
; disply on, cursor off
; increment cursor
; clear display
;======= Prosedur Kontrol Byte Operasi pada LCD lcdins: mov plcd,a clr lcd_rs jmp lcdout lcddat: mov
plcd,a 83
setb lcd_rs lcdout: setb lcd_en call delay clr lcd_en call delay ret ;====== Prosedur Cetek String lcd_atas: mov a,#080h call lcdins ret lcd_bawah: mov a,#0C0h call lcdins ret printstringloop: call lcddat inc dptr lcdstring: clr a movc a,@a+dptr jnz printstringloop ret tulis_inst: clr mov setb call clr ret
lcd_rs p0,r1 lcd_en delay lcd_en
tulis_data: setb mov setb call clr ret
lcd_rs p0,r1 lcd_en delay lcd_en
84
;====== loading prosessing: mov
r1,#0c0h
call mov add setb mov setb call clr inc cjne
tulis_inst r2,#' ' a,#30h lcd_rs p0,r2 lcd_en delay lcd_en r1 r1,#0cfh,balik
call mov call mov call
lcd_bawah dptr,#txt_d lcdstring a,#01 delay3
mov
r1,#0c9h
setb call mov add setb mov setb call clr clr mov call inc cjne
led tulis_inst r2,#'.' a,#30h lcd_rs p0,r2 lcd_en delay lcd_en led a,#01 delay3 r1 r1,#0cfh,lagi
mov
r1,#0c0h
call mov add setb mov setb
tulis_inst r2,#' ' a,#30h lcd_rs p0,r2 lcd_en
balik:
lagi:
back:
85
call clr inc cjne setb
delay lcd_en r1 r1,#0cfh,back led
ret ;-----------------------------------------------; DELAY ;-----------------------------------------------delay3: mov putr,a muterz: call delay2 djnz putr,muterz ret delay2: mov r5,#94 muterx: mov r6,#250 call delay djnz r6,$ djnz r5,muterx ret delay: mov r3,#08 muter: mov r4,#0255 djnz r4,$ djnz r3,muter ret ;-----------------------------------------------; TABEL DATA ;-----------------------------------------------txt_1 txt_2 txt_3 txt_4 txt_a txt_b txt_c txt_d
: : : : : : : :
db db db db db db db db
' Arif Budi S ',0 'Pendeteksi Suhu ',0 'Tnk.Elektromedik',0 'Jakarta II ',0 ' Cek Suhu Siap ',0 ' Tekan Start ',0 'Suhu di sini: ',0 'memproses ',0
end 86