BAB II TINJAUAN PUSTAKA
2.1
HC-SR04 Ultrasonic Range Finder HC-SR04 merupakan sensor ultrasonik yang dapat digunakan untuk mengukur
jarak antara penghalang dan sensor. Konfigurasi pin dan tampilan sensor HC-SR04 diperlihatkan pada Gambar 2.1.
Gambar 2.1 Konfigurasi pin dan tampilan sensor ultrasonik HC-SR04 (http://www.accudiy.com/ download/HC-SR04_Manual.pdf, 2015)
HC-SR04 memiliki 2 komponen utama sebagai penyusunnya yaitu ultrasonic transmitter dan ultrasonic receiver. Fungsi dari ultrasonic transmitter adalah memancarkan gelombang ultrasonik dengan frekuensi 40 KHz kemudian ultrasonic receiver menangkap hasil pantulan gelombang ultrasonik yang mengenai suatu objek. Waktu tempuh gelombang ultrasonik dari pemancar hingga sampai ke penerima sebanding dengan 2 kali jarak antara sensor dan bidang pantul seperti yang diperlihatkan pada Gambar 2.2
Gambar 2.2 Prinsip kerja HC-SR04
Prinsip pengukuran jarak menggunakan sensor ultrasonik HC-SR04 adalah, ketika pulsa trigger diberikan pada sensor, transmitter akan mulai memancarkan gelombang ultrasonik, pada saat yang sama sensor akan menghasilkan output TTL transisi naik menandakan sensor mulai menghitung waktu pengukuran, setelah receiver menerima
6
7
pantulan yang dihasilkan oleh suatu objek maka pengukuran waktu akan dihentikan dengan menghasilkan output TTL transisi turun. Jika waktu pengukuran adalah t dan kecepatan suara adalah 340 m/s, maka jarak antara sensor dengan objek dapat dihitung dengan menggunakan Persamaan 2.1.
= ×
⁄
(2.1)
Dimana : s = Jarak antara sensor dengan objek (m) t = Waktu tempuh gelombang ultrasonik dari transmitter ke receiver (s) Pemilihan HC-SR04 sebagai sensor jarak yang akan digunakan pada penelitian ini karena memiliki fitur sebagai berikut; kinerja yang stabil, pengukuran jarak yang akurat dengan ketelitian 0,3 cm, pengukuran maksimum dapat mencapai 4 meter dengan jarak minimum 2 cm, ukuran yang ringkas dan dapat beroperasi pada level tegangan TTL Prinsip pengoperasian sensor ultrasonik HC-SR04 adalah sebagai berikut ; awali dengan memberikan pulsa Low (0) ketika modul mulai dioperasikan, kemudian berikan pulsa High (1) pada trigger selama 10 μs sehingga modul mulai memancarkan 8 gelombang kotak dengan frekuensi 40 KHz, tunggu hingga transisi naik terjadi pada output dan mulai perhitungan waktu hingga transisi turun terjadi, setelah itu gunakan Persamaan 2.1 untuk mengukur jarak antara sensor dengan objek. Timing diagram pengoperasian sensor ultrasonik HC-SR04 diperlihatkan pada Gambar 2.3
Gambar 2.3 Timing diagram pengoperasian sensor ultrasonik HC-SR04 (http://www.accudiy.com/ download/HC-SR04_Manual.pdf, 2015)
8
2.2
CMPS11 Tilt Compensated Magnetic Compass CMPS11 merupakan sensor kompas generasi ke 3 yang diimbangi dengan sensor
kemiringan. Dalam sensor ini terkandung sebuah magnetometer 3 sumbu, sensor gyro 3 sumbu dan sebuah sensor percepatan 3 sumbu. Untuk mengurangi eror yang disebabkan oleh kemiringan PCB maka digunakan sebuah Kalman Filter dalam mengkombinasikan sensor gyro dan sensor percepatan, fitur ini cocok diterapkan pada kacamata tuna netra, karena pergerakan kepala pengguna akan mengakibatkan kemiringan kompas menjadi tidak selalu stabil. CMPS11 menghasilkan output berupa nilai dari 0-3599 desimal untuk data 16 bit atau 0-255 desimal untuk data 8 bit yang mewakili 0°-359,9°, sehingga mikrokontroller dengan lebar data 8 bit dapat digunakan dalam melakukan perhitungan. Pada pengoperasiannya CMPS11 memerlukan sumber tegangan 3.6V sampai 5V dan memerlukan arus 25 mA. Adapun tampilan sensor kompas CMPS11 diperlihatkan pada Gambar 2.4
Gambar 2.4 Tampilan fisik sensor kompas CMPS11 (http://www.robot-electronics.co.uk/htm/cmps11 doc.htm, 2015)
Salah satu mode yang disediakan untuk berkomunikasi dengan modul ini adalah mode serial Universal Asynchronous Receiver/Transmitter (UART) yang juga dimiliki oleh mikrokontroller AT89S52. Keterangan pin sensor kompas CMPS11 diperlihatkan pada Gambar 2.5. Pengoperaian CMPS11 dengan mode UART dilakukan dengan mengkoneksikan pin Mode ke ground
Gambar 2.5 Keterangan Masing-masing pin sensor kompas CMPS11(http://www.robot-electronics.co. uk/htm/cmps11doc.htm, 2015)
9
Secara default baud-rate yang digunakan pada mode serial adalah 9600 bps, tanpa parity dan dengan 2 stop bits. Level sinyal komunikasi serial yang digunakan adalah 3,6V sampai 5V. Perintah yang harus dikirim ke modul kompas CMPS11 untuk memperoleh data yang diinginkan diperlihatkan pada Tabel 2.1. Tabel 2.1 Perintah dan data yang diperoleh dalam komunikasi serial CMPS11 (http://www.robotelectronics.co.uk/htm/cmps11ser.htm, 2015)
Perintah 0x11 0x12 0x13 0x14 0x15 0x16 0x17
Nama GET VERSION GET ANGLE 8 BIT GET ANGLE 16 BIT GET PITCH GET ROLL GET PITCH NO KAL GET ROLL NO KAL
Byte diperoleh 1 1 2 1 1 1 1
GET MAG RAW 0x19
6 GET ACCEL RAW
0x20
6 GET GYRO RAW
0x21
6 GET TEMP
0x22
2 GET ALL
0x23 0xF0 0xF5 0xF6 0xF7 0xF8 0x6A
4 CALIBRATE BYTE 1 CALIBRATE BYTE 2 CALIBRATE BYTE 2 FULL CALIBRATE BYTE 2 FLAT CALIBRATE EXIT RESTORE 1
1 1 1 1 1 1
Deskripsi data yang diperoleh Versi software CMPS11 Sudut sebagai byte tunggal 0-255 Sudut sebagai 2 byte 0-3599, byte tertinggi diperoleh pertama Sudut tanjakan ± 0-85° dengan Kalman filter Sudut kemiringan ± 0-85° dengan Kalman filter Sudut tanjakan ± 0-85° tanpa Kalman filter Sudut kemiringan ± 0-85° tanpa Kalman filter Data mentah untuk medan magnet, penerima 16 bit dengan data X High,X Low, Y High, Y Low, Z High, Z Low Data mentah untuk percepatan, penerima 16 bit dengan data X High,X Low, Y High, Y Low, Z High, Z Low Data mentah gyro, penerima 16 bit dengan data X High,X Low, Y High, Y Low, Z High, Z Low Temperatur sebagai 2 byte, byte tertinggi dikirim di awal dengan resolusi 8LSB/°C Sudut tertinggi, sudut terendah (03599), sudut tanjakan (± 0-85), sudut kemiringan (± 0-85) Tanda OK (0x55) Tanda OK (0x55) Tanda OK (0x55) Tanda OK (0x55) Tanda OK (0x55) Tanda OK (0x55)
10
0x7C 0x81 0xA0 0xA1
RESTORE 2 RESTORE 3 BAUD 19200 BAUD 38400
1 1 1 1
Tanda OK (0x55) Tanda OK (0x55) Tanda OK (0x55) Tanda OK (0x55)
Jika diperlukan sensor kompas CMPS11 dapat dikalibrasi untuk menambah keakurasian sensor. Untuk mengkalibrasi sensor, letakkan sensor pada posisi horisontal, kemudian kirimkan 3 kode perintah dalam format heksa secara berturut-turut 0xF0, 0xF5 dan kemudian 0xF6 untuk masuk ke mode kalibrasi, dengan catatan; pada saat setelah mengirimkan setiap kode perintah, byte konfirmasi dari sensor perlu dibaca terlebih dahulu sebelum mengirimkan kode perintah selanjutnya. Setelah hal ini dilakukan maka LED akan padam, selanjutnya putar sensor kompas CMPS11 ke semua arah dalam 3 dimensi yang berbeda. Jika keadaan maksimum yang baru untuk setiap dimensi terdeteksi, maka LED akan berkedip. Jika LED tidak pernah berkedip keluarlah dari kondisi kalibrasi dengan perintah 0xF8. Pastikan tidak terdapat benda logam yang dapat menginduksikan medan magnet di sekitar kompas serta perlu diingat selama melakukan kalibrasi sensor kompas CMPS11 harus diputar dengan perlahan. Untuk mengembalikan kalibrasi standar yang telah dilakukan oleh pabrik, kirimkan secara berturut-turtut 3 kode perintah 0x6A, 0x7C dan 0x81 (baca byte konfirmasi dari sensor setelah mengirimkan masing-masing kode). Untuk mengubah kecepatan transmisi data atau baud rate sensor kompas CMPS11, maka dapat mengirim kode perintah 0xA0 untuk mengubah baud rate menjadi 19200 bps dan kode perintah 0xA1 untuk mengubah baud rate menjadi 38400 bps. Setelah mengirimkan kode perintah, sensor akan merespon dengan mengrimkan kode OK (0x55). 2.3
Chip-Corder Information Storage Device 1400 (ISD1400) ISD 1400 pada penelitian ini digunakan untuk menyimpan informasi berupa suara
serta menghasilkan suara keluaran sesuai dengan alamat penyimpanan suara yang ditentukan pada proses perekaman sebelumnya. ISD 1400 dapat dibagi menjadi 2 yaitu ISD 1420 yang dapat menyimpan informasi suara selama 20 detik dan ISD 1416 selama 16 detik. Namun seri yang digunakan dalam penelitian ini adalah ISD1420 untuk memperoleh durasi yang lebih panjang. Diagram blok dari ISD 1400 diperlihatkan pada Gambar 2.6.
11
Gambar 2.6 Diagram blok chip-corder ISD 1400 (http://www.ee.mut.ac.th/datasheet/doc/ISD1400_A. pdf, 2014)
Sesuai dengan diagram blok yang diperlihatkan pada Gambar 2.6 maka konfigurasi pin ISD 1400 adalah seperti yang diperlihatkan pada Gambar 2.7
Gambar 2.7 Konfigurasi pin ISD 1400 (http://www.ee.mut.ac.th/datasheet/doc/ISD1400_A.pdf, 2014)
Penjelasan masing-masing pin ISD1400 yang diperlihatkan oleh Gambar 2.7 ditunjukkan pada Tabel 2.2 Tabel 2.2 Deskripsi masing-masing pin chip-corder ISD 1400 (http://www.ee.mut.ac. th/datasheet/doc/ ISD1400_A.pdf, 2014)
Nama Pin
Nomor Pin
A0-A7
1-6, 9, 10
Fungsi Address Input : pin ini memiliki dua fungsi tergantung dari 2 alamat bit tertinggi atau MSB (Most Significant Bit). Jika salah satu atau kedua MSB bernilai Low maka semua input di intepretasikan sebagai pengalamatan bit dan digunakan
12
sebagai alamat awal untuk proses perekaman yang akan berlangsung, Alamat yang diberikan dikunci oleh transisi turun dari pin PLAYE, PLAYL atau REC. Jika kedua MSB (A6 dan A7) bernlai High maka pengalamatan pada inputnya akan dianggap sebaga mode operasi khusus. NC
7, 8, 11, 12
NC : tidak terhubung ( Not Conected )
VSSD,
12, 13
Ground : Rangkaian analog dan digital yang terdapat di
VSSA
dalam IC ISD 1420 menggunakan ground yang terpisah untuk mengurangi noise.
SP+, SP-
14,15
Pin keluaran untuk speaker dengan impedansi 16 ohm
VCCA,
16,28
Supply Voltage : ISD 1420 juga menggunakan koneksi yang
VCCD
terpisah untuk rangkaian analog dan digital yang terdapat dalam IC untuk mengurangi noise.
MIC
17
Microphone : pin ini perfungsi untuk mengirim sinyal suara ke preamplifier yang terdapat di dalam chip perekeam ini. Sebuah Automatic Gain Control (AGC) yang juga terdapat dalam chip ini mengontrol penguatan tersebut dengan rentang dari -15 dB sampai 24 dB.
MIC REF
18
Microphone Refrence : Masukan dari MIC REF merupakan masukan minus (-) pada preamplifire yang digunakan oleh pin MIC. Pin ini berguna untuk membatalkan noise yang masuk atau penolakan terhadap mode diam yang berada dibawah referensi ke ISD 1400
AGC
19
Automatic Gain Control (AGC) : AGC mengatur penguatan dari preamplifire secara dinamis, untuk mengimbangi sinyal masukan dari mikrofon yang memiliki level masukan dengan jangkauan yang besar
ANA IN
20
Pin ini berfungsi untuk mengirim sinyal yang diperoleh ke chip guna direkam. Untuk input yang berasal dari mikrofon ANA OUT harus disambungkan ke ANA IN melalui sebuah kapasitor external.
13
ANA
21
OUT PLAYL
Analog Output : Pin ini menghasilkan keluaran yang diperoleh dari output preamplifier
23
Playback, Level Activated : Ketika masukan untuk pin ini ditahan pada logika LOW, pemutaran suara dimulai hingga pin ini dikembalikan ke logika HIGH atau ketika pnanda EOM dideteksi.
PLAYE
24
Playback, Edge Activated : ketika pin ini diberikan transisi turun (dari logika HIGH ke LOW), pemutaran suara dimulai. Pengembalian pin ini ke logika HIGH tidak akan menghentikan pemutaran suara yang sedang berlangsung. Proses pemutaran akan berhenti ketika penanda EOM dicapai.
RECLED
25
Record LED : Keluaran dari pin ini bernilai LOW selama proses perekaman. Pin ini juga sewaktu-waktu bernilai LOW ketika
EOM
(End-Of-Message)
dicapai
saat
proses
pemutaran berlangsung. XCLK
26
External Clock : Pin ini dapat dihubungkan ke ground jika ingin menggunakan internal clock yang sudah terdapat dalam ISD 1420. Namun jika mengininkan presisi yang lebih baik dapat
menggunakan
external
clock
dan
dihubungkan ke pin ini. Sample rate dari external clock yang harus digunakan dapat dilihat pada datasheet di Lampiran REC
27
Record input : Dengan memberikan logika LOW pada pin ini, maka proses perekaman segera dimulai. Proses perekaman berlangsug selama Logika LOW ditahan pada pin ini dan akan berakhir ketika dikembalikan ke logika HIGH atau ruang memori yang tersedia sudah terisi penuh. Pin ini lebih diprioritaskan dibanding PLAYL dan PLAYE sehingga proses pemutaran akan berakhir kerika proses perekaman dimulai.
14
Pengaplikasian chip corder ISD 1400 dalam proses perekaman dan pemutaran suara harus memperhatikan timing diagram yang disediakan untuk berkomunikasi dengan IC tersebut, sehingga suara yang direkam dapat tersimpan dengan sempurna pada chip dan suara yang dikeluarkan sesuai dengan kehendak . Timing diagram untuk proses perekaman suara dperlihatkan pada Gambar 2.8
Gambar 2.8 Timing diagram proses perekaman suara dengan ISD1400 (http://www.ee.mut.ac.th/ datasheet/doc/ISD1400_A.pdf, 2014)
Sedangkan pada proses pemutaran (playback) dengan atau tanpa menggunakan program perlu memperhatikan timing diagram yang diperlihatkan pada Gambar 2.9.
Gambar 2.9 Timing diagram proses pemutaran suara dengan ISD1400 (http://www.ee.mut.ac.th/ datasheet/doc/ISD1400_A.pdf, 2014)
Keterangan simbol-simbol yang terdapat pada Timing diagram proses perekaman dan pemutaran suara menggunakan ISD1420 driperlihatkan pada Tabel 2.3
15
Tabel 2.3 Data timing diagram proses perekaman dan pemutaran suara menggunakan ISD 1420 (http://www.ee.mut.ac.th/ datasheet/doc/ISD1400_A.pdf, 2014)
Symbol TREC TPLAY TLED1 TLED2 TRUPD TRPDD TPPUD TPPDD TEOM TSET THOLD 2.4
Characteristic Record duration Playback duration RECLED on delay RECLED off delay Record power up delay Record power down delay Play power up delay Play power down delay EOM Pulse width Address setup time Address hold time
Min 20 20 40 300 0
Typ 5 48,6 32 32 32 8,1 15,625 -
Max 110 -
Unit Sec
msec
nsec
Mikrokontroler AT89S52 AT89S52 merupakan seri mikrokontroler MCS-51 yang memiliki kapasitas
penyimpanan flash sebesar 8KB. Pinout dan instruksi pemrograman yang disediakan pada mikrokontroler ini memiliki kesesuaian dengan standar 80C51. Penanaman dan penghapusan program ke dalam memori flash dapat dilakukan hingga 10.000 kali. Selain harga yang rendah, pemilihan AT89S52 sebagai basis kontrol pada penelitian ini adalah karena memiliki fitur standar yang cukup menunjang diantaranya ; Random Access Memory (RAM) sebesar 256 byte, 32 jalur input/output (I/O), Pewaktu Wacthdog, dua buah data pointer, tiga buah timer/counter berukuran 16 bit, memiliki fitur interupsi 6 vektor dan 2 level, port serial dengan fitur komunikasi full-duplex serta memiliki osilator dan rangkaian pewaktu internal. Adapun konfigurasi pinout dari mikrokontroler AT89S52 diperlihatkan pada Gambar 2.10.
Gambar 2.10 Konfigurasi pinout mikrokontroler AT89S52 (www.atmel.com/images/doc1919.pdf, 2015)
16
Adapun fungsi dari masing-masing pinout mikrokontroler AT89S52 adalah; 1. VCC : Input tegangan Catu untuk mengaktifkan mikrokontroler AT89S52. 2. GND : Ground 3. Port 0 : Port 0 merupakan jalur komunikasi dua arah input dan output 8 bit yang tidak memiliki pull-up internal, sehingga jika menulis logika 1 (High) ke port 0, port ini dapat digunakan sebagai masukan dengan impedansi tinggi. Port 0 juga dikonfigurasikan sebagai 8 bit alamat terbawah saat digunakan untuk mengakses program dan data memori eksternal. 4. Port 1: Port 1 merupakan jalur komunikasi dua arah 8 bit yang memiliki pull-up internal sehingga ketika menulis logika 1 ke port 1 akan dihasilkan tegangan dengan nilai 1, keadaan ini dapat digunakan sebagai masukan dengan memberi logika low secara eksternal sehingga mengubah keadaan 1 menjadi keadaan 0 (Low) dan dapat dibaca oleh program. Sebagai tambahan P1.0 dan P1.1 dapat dikonfigurasikan menjadi timer / counter 2 seperti pada Tabel 2.4 Tabel 2.4 Fungsi alternatif Port 1 AT89S52 (www.atmel.com/images/doc1919.pdf, 2015)
Port Pin P1.0 P1.1 P1.5 P1.6 P1.7
Fungsi Alternatif T2 (penghitung masukan eksternal untuk Timer/Counter 2) dan dapat berfungsi sebagai pewaktu T2EX (pengontrol arah dan penangkap triger untuk Timer/Counter 2) MOSI (digunakan pada saat pemrograman chip) MISO (digunakan pada saat pemrograman chip) SCK (digunakan pada saat pemrograman chip)
5. Port 2 : Port 2 merupakan komunikasi 2 arah I/O dengan pull-up internal. Sama halnya dengan port 1, port 2 dapat digunakan sebagai masukan dengan menuliskan logika 1. Port 2 juga disediakan untuk keperluan pembacaan program dan memori external. Port 2 menjadi byte tertinggi diatas Port 1 pada saat mengakses memori dan program eksternal. 6. Port 3 : Port 3 merupakan jalur komunikasi 2 arah I/O dengan pull-up internal. Sama halnya dengan port 1, penulisan logika 1 mengakibatkan port 3 dapat berfungsi sebagai masukan. Port 3 juga menyediakan fungsi alternatif lain, yaitu menjadi jalur beberapa fitur khusus yang dimiki oleh mikrokontroler AT89S52 seperti yang diperlihatkan pada Tabel 2.5.
17
Tabel 2.5 Fungsi alternatif Port 3 AT89S52 (www.atmel.com/images/doc1919 .pdf, 2015)
Port Pin P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
Fungsi alternatif RXD (port masukan pada komunikasi serial) TXD (port eluaran pada komunikasi serial) INT0 (Interupsi eksternal 0) INT1 (Interupsi eksternal 1) T0 (Masukan eksternal Timer 0) T1 (Masukan eksternal Timer 1) WR (strobe penulisan untuk data memori eksternal) RD (strobe pembacaan untuk data memori eksternal)
7. RST : RST merupakan masukan untuk perintah reset. Pemberian logika 1 pada pin ini selama 2 siklus mesin ketika osilator masih berjalan akan mereset pembacaan program. 8. ALE/PROG : Address Lactch Enable (ALE). Selama pengaksesan memori eksternal ALE menghasilkan
pulsa keluaran untuk mengunci alamat byte
terendah. Pin ini juga berfungsi sebagai penerima masukan pulsa program (PROG) saat pemrograman flash. Pada operasi normal, ALE menghasilkan pulsa dengan kecepatan konstan sebesar 1/6 dari frekuensi osilator yang digunakan. 9. PSEN : Program Store Enable (PSEN) merupakan strobe pembacaan untuk program memori eksternal. Ketika AT89S52 mengeksekusi kode dari memori eksternal, PSEN diaktifkan dua kali setiap siklus mesin. 10. EA/VPP : External Acces Enable (EA) harus dihubungkan langsung ke ground jika mikrokontroler AT89S52 digunakan untuk mengambil kode dari memori eksternal pada alamat awal 0000H sampai FFFFH. Sedangkan untuk mengeksekusi program pada memori internal EA harus dihubungkan langsung ke VCC. 11. XTAL1 : Merupakan pin masukan untuk osilator dan pewaktu internal. 12. XTAL2 : Merupakan pin keluaran untuk osilator dan pewaktu internal. 2.5
Interupsi Salah satu fitur yang dimanfaatkan dari mikrokontroler AT89S52 adalah interupsi.
Interupsi merupakan sebuah proses yang dilakukan ketika ada permintaan dalam pemanggilan interupsi tersebut. Pada saat interupsi dipanggil proses normal akan dihentikan sementara selama proses interupsi dijalankan, (Pascal dalam Nugroho, 2010)
18
Mikrokontroller AT89S52 menyediakan 6 vektor interupsi yang berbeda, diantaranya ; 2 buah eksternal interupsi yaitu INT1 dan INT0, 3 buah interupsi Timer yaitu timer 1, 2 dan 3, serta sebuah interupsi port serial. Masing-masing interupsi dapat diaktifkan dan dipadamkan secara tersendiri dengan mengatur setiap bit pada Special Function Register (SFR) Interrupt Enable (IE). Pada register IE juga terdapat sebuah bit EA yang berfungsi untuk mengaktifkan atau memadamkan keseluruhan interupsi yang di set. Isi dari SFR IE diperlihatkan pada Tabel 2.6 Tabel 2.6 Isi SFR IE AT89S52(www.atmel.com/images/doc1919.pdf, 2015)
Bit Ke- Simbol 7 EA 6 5 4 3 2 1 0
ET2 ES ET1 EX1 ET0 EX0
Fungsi Memadamkan keseluruhan interupsi. Jika EA = 0, semua interupsi padam. Jika EA = 1, interupsi yang di set akan aktif Dalam proses pengembangan untuk produk AT89 berikutnya Bit untuk mengaktifkan interupsi Timer 2 Bit untuk mengaktifkan interupsi port serial Bit untuk mengaktifkan interupsi Timer 1 Bit untuk mengaktifkan interupsi eksternal 1 Bit untuk mengaktifkan interupsi Timer 0 Bit Untuk mengaktifkan interupsi eksternal 0
Pada penelitian ini digunakan dua buah interupsi yaitu interupsi Timer 0 dan interupsi port serial dengan baud rate dihasilkan oleh Timer 1. Timer 0 dan Timer 1 pada AT89S52 dapat diatur untuk bekerja sebagai salah satu dari 4 mode yang tersedia diantaranya ; mode 0, mode 1, mode 2 dan mode 3. Mode 0 merupakan mode pencacah 13 bit, dimana TL dianggap sebagai counter 5 bit dan TH dianggap sebagai counter 8 bit. Limpahan dari TL digunakan untuk menaikkan hitungan pada TH, kemudian limpahan pada TH digunakan untuk men-set Timer Flag (TF) sehingga interupsi dipanggil Mode 1 merupakan mode pencacah 16 bit, dimana TL dianggap sebagai counter 8 bit dan TH dianggap sebagai counter 8 bit. Cara kerja dari mode ini adalah sama dengan Mode 0. Mode 2 merupakan mode pencacah auto-reload. Pada mode ini TL dan TH dianggap sebagai counter 8 bit. Pencacahan dilakukan hanya pada TL, dan menggunakan limpahannya untuk men-set TF. Pada saat yang sama limpahan yang terjadi pada TL mengakibatkan isi dari TH dimuat ke TL.
19
Mode 3 pada Timer 0 dan Timer 1 memiliki fungsi yang berbeda. Pada Timer 0, mode 3 mengakibatkan TL0 dan TH0 beroperasi sebagai timer 8 bit yang berbeda, mode ini disediakan untuk pengaplikasian yang membutuhkan 8 bit Timer/Counter tambahan. Sedangkan pada Timer 1, mode 3 mengakibatkan Timer 1 dihentikan dan menahan hitungannya.
2.6
Universal Asynchronous Receiver/Transmitter (UART) Untuk berkomunikasi dengan modul kompas CMPS 11 maka dimanfaatkan fitur
UART yang dimiliki oleh mikrokontroler AT89S52. UART merupakan media komunikasi yang digunakan untuk berkomunikasi antar perangkat yang memiliki CPU. UART dapat melakukan konversi data paralel ke serial pada perangkat pengirim data (transmitter) dan konversi data serial ke paralel pada perangkat penerima data (receiver). Dalam komunikasi serial antar perangkat terdapat parameter yang sangat penting untuk diperhatikan yaitu Baud rate. Baud rate merupakan bilangan yang menunjukkan jumlah bit yang dikirim per satu detik atau bit per second (bps). Baud rate standar yang digunakan diantaranya 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 115200, 128000, dan 26500 (Setiawan, S, 2006). Baud rate antar perangkat yang menggunakan komunikasi serial UART harus memiliki nilai yang sama, jika tidak pengiriman data akan gagal atau data menjadi rusak. Mikrokontroler AT89S52 menyediakan fasilitas UART dengan 4 piliham mode diantaranya: 1. Mode 0 : Pada mode ini serial data masuk dan keluar melalui RXD pin. TXD berfungsi sebagai penghasil shift clock. Bit yang ditransmisikan berjumlah 8 dan bit terendah (LSB) dikirim paling awal. Baud rate pada mode ini ditetapkan sebesar 1/12 dari frekuensi osilator. 2. Mode 1 : Pada mode ini 10 bit ditransmisikan melalui pin TXD atau diterima melalui pin RXD. Urutan pengiriman yang dilakukan adalah; diawali dengan start bit (0), 8 data bit (LSB dikirim terlebih dahulu), dan sebuah stop bit (1). Baud-rate pada mode 1 dapat diatur. Timing diagram UART pada mode 1 dapat dilihat pada Gambar 2.11
20
Gambar 2.11 Timing diagram UART mode 1 pada AT89S52 (http://www.atmel.com/images/ doc4316.pdf, 2015)
3. Mode 2 : Pada mode 2, 11 bit dikirim melalui pin TXD atau diterima melalui pin RXD. Urutan pengiriman data yang dilakukan adalah; diawali dengan start bit (0), 8 data bit (LSB dikirim terlebih dahulu), data bit ke-9 yang dapat diprogram dan sebuah stop bit (1). Pada transmitter data bit ke-9 merupakan Transmitter bit 8 (TB8) pada Serial Control Register (SCON) yang dapat diisi dengan nilai 0 atau 1. Pada receiver data bit ke-9 masuk ke Receiver Bit 8 (RB8) pada SCON dan stop bit diabaikan. Baud rate dapat diprogram menjadi 1/32 atau 1/64 dari frekuensi osilator. 4. Mode 3 : Pada mode 3, 11 bit dikirim melalui pin TXD atau diterima melalui pin RXD. Urutan pengiriman data pada mode 3 sama dengan mode 2, perbedaannya adalah baudrate pada mode 3 dapat diatur. Timing diagram UART pada mode 2 dan 3 dapat dilihat pada Gambar 2.12
Gambar 2.12 Timing diagram UART mode 2 dan 3 pada AT89S52 (http://www.atmel.com/ images/doc4316.pdf, 2015)
Timer 1 dapat digunakan sebagai baud rate generator bagi UART mode 1 dan 3. Ketika Timer 1 digunakan sebagai baud rate generator, baud rate pada mode 1 dan 3 ditentukan oleh kecepatan limpahan dan nilai SMOD. Penggunaan Timer 1 sebagai baud rate generator mengharuskan interupsi Timer 1 dihentikan dan Timer 1 diatur untuk menjadi timer dalam mode auto-reload dengan mengatur nibble atas dari TMOD menjadi 0010B. Pada kasus ini nilai baud-rate yang diinginkan dapat ditentukan dengan menggunakan persamaan 2.2 dan menghitung nilai TH1 untuk menghasilkan kecepatan limpahan yang tepat (Setiawan, S, 2006).
=2
×
×
×[
(
)]
(2.2)
21
Keterangan: : Frekuensi baud rate (bps) : Bit 1 mode port serial untuk UART : frekuensi kristal yang digunakan (Hz) 1
2.7
: Byte tertinggi pengitung register dari Timer 1
Liquid Crystal Display M1632 (LCD M1632) LCD M1632 merupakan sebuah komponen elektronika yang berfungsi untuk
menampilkan huruf atau karakter yang digunakan sebagai penampil data saat proses kalibrasi dalam penelitian ini. LCD terbuat dari suatu bahan kristal cair yang merupakan komponen organik yang dapat bersifat seperti optik misalnya Kolesteril nonanoat dan P-azoxyanisole (Umami, 2010). Tampilan LCD M1632 dapat dilihat pada Gambar 2.13
Gambar 2.13 Tampilan LCD M1632
LCD M1632 merupakan alat penampil dengam resolusi dot 5 x 8 per karakter beserta kursor. Jumlah baris yang disediakan adalah 2 dengan jumlah kolom 16, sehingga jumlah karakter maksimal yang dapat ditampilkan adalah 32. Penomoran pin dari LCD M1632 diperlihatkan pada Gambar 2.14, nomor pin dihitung dari kiri ke kanan dengan urutan 1 sampai 16.
Gambar 2.14 Konfigurasi pin LCD M1632 (http://www.dfrobot.com/image/data/FIT0127/datasheet.pdf , 2015)
22
Untuk menghubungkan LCD M1632 dengan mikrokontroler maka perlu diketahui fungsi dari masing-masing pin yang terdapat pada modul LCD M1632. Fungsi masingmasing pin yang terdapat pada modul ini diperlihatkan pada Tabel 2.7 Tabel 2.7 Fungsi masing-masing pin LCD M1632 (Setiawan, 2006)
No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Simbol VSS VCC VCC RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 V+BL V-BL
Level H/L H/L H,↓ H/L H/L H/L H/L H/L H/L H/L H/L -
Fungsi 0V (GND) 5V ± 10% LCD Drive H : Data In L : Instruction In H : Read L : Write Sinyal Enable
Power Suplay
Data Bus
Back Light Suply
4 - 4,2V , 50 – 200 mA 0V (GND)
Untuk menulis data atau instruksi ke modul LCD M1632 perlu memperhatikan Timing diagram seperti yang diperlihatkan pada Gambar 2.15
Gambar 2.15 Timing diagram penulisan data atau instruksi ke modul LCD M1632 (Xiamen Amotec Display CO.,LTD, 2008)
Dari Gambar 2.15 dapat diketahui bahwa untuk mengirimkan data atau instruksi, pin enable harus pada keadaan High terlebih dahulu, kemudian data dikirim melalui pin
23
DB, setelah itu kembalikan pin enable ke Low, sehingga akan terjadi transisi turun, dan data siap di proses oleh modul LCD M1632. Lama pewaktuan yang diperlukan diperlihatkan pada Tabel 2.8 Tabel 2.8 Data timing diagram LCD M1632 (Xiamen Amotec Display CO.LTD, 2008)
Parameter Enable cycle time Enable pulse time Enable rise/fall time RS; R/W setup time RS; R/W Address hold time Read data output delay Read data hold time 2.8
Symbol tC tW tr, tf tSU1 th1 tSU2 th2
Test Pin E RS; R/W DB0 – DB7
Min 500 300 100 10 60 10
Max 25 -
Unit
ns
Low Voltage Audio Power Amplifier LM386 LM386 merupakan rangkaian terpadu penguat daya yang didesain untuk
penerapan pada rangkaian audio dengan konsumsi tegangan rendah. Pada penelitian ini LM386 digunakan untuk memperkuat dan mengatur volume suara yang dihasilkan oleh ISD1420 sehingga dapat didengar dengan baik dan nyaman. Adapun diagram skematik LM386 diperlihatkan pada Gambar 2.16. Penguatan yang terdapat pada IC ini sudah di set secara internal sebesar 20 untuk meminimalisir penggunaan komponen external, tetapi penambahan kapasitor dan resistor external diantara pin 1 dan pin 8 akan meningkatkan nilai penguatan dari 20 hingga 200.
Gambar 2.16 Diagram skematik IC penguat daya audio LM386 (http://www.ti.com/lit/ds/symlink/ lm386.pdf, 2015)
Masukan yang diterima LM386 direferensialkan terhadap ground sementara output yang dihasilkan secara otomatis dibiaskan terhadap satu-setengah dari catu
24
tegangan yang diterima. Daya yang diserap pada keadaan diam hanya 24 miliwatt ketika beroprasi dengan catu tegangan 6 volt, hal ini menjadikan LM386 ideal jika ingin dioperasikan dengan menggunakan baterai. Adapun beberapa fitur yang menjadi pertimbangan dalam pengguanaan IC ini diantaranya ; tidak menggunakan komponen internal yang banyak, catu tegangan yang dapat diterapkan luas yaitu 4V – 12V atau 5V – 18V serta distorsi yang dihasilkan rendah yaitu sekitar 0.2 % dari masukan yang diterima pada kreteria Penguatan (AV)= 20, Catu tegangan (VS) = 6V, hambatan beban (RL) = 8 Ω , daya (PO)= 125 mW dan frekuensi (f) = 1 kHz LM386 tersedia dalam bentuk paket Molded Mini Smal Outline, and Dual in Line Package (MSOP) seperti yang diperlihatkan pada Gambar 2.17
Gambar 2.17 Konfigurasi pin IC penguat daya audio LM386 (http://www.ti.com/lit/ds/symlink/lm386 .pdf, 2015)
2.9
IC LM2596 LM2596 merupakan regulator tegangan step-down dengan mode switching yang
mampu mengalirkan arus ke beban hingga 3 Ampere. IC ini tersedia dalam versi regulator 3,3 volt, 5 volt, 12 volt dan versi tegangan keluaran yang dapat diatur. LM2596 beroperasi pada frekuensi switching yang tetap yaitu 150 kHz sehingga memperbolehkan penggunaan nilai komponen filter yang lebih kecil dibandingkan regulator switching dengan frekuensi yang lebih rendah. Keuntungan yang paling mendasar dari penggunaan regulator dengan mode switching adalah efesiensi. Menurut datasheet LM2596 dari Texas Instrument, penggunaan tegangan masukan 12 VDC untuk memperoleh tegangan keluaran 5 VDC akan menghasilkan efesiensi sebesar 80%, sehingga sumber tegangan masukan dapat bertahan lebih lama jika dibandingkan dengan penggunaan regulator linier. Namun dalam pengaplikasiannya, regulator
25
switching perlu penanganan yang lebih khusus untuk mencegah tegangan transien pada keluarannya. Untuk mengatasi hal ini penggunaan komponen filter dengan Equivalent Series Resistance (ESR) yang sesuai perlu diperhatikan dan teknik grounding yang baik merupakan hal yang wajib diterapkan. Adapun konfigurasi pin dari LM2596 diperlihatkan pada Gambar 2.18
Gambar 2.18 Konfigurasi pin LM2596 (http://www.ti.com/lit/ds/symlink/lm2596.pdf, 2015)
2.10 Bahasa Assembly Bahasa assembly merupakan salah satu tipe dari bahasa pemrograman aras rendah (low-level programming language) setelah bahasa mesin. Bahasa pemrograman aras rendah merupakan sebuah bahasa yang langsung mengarah ke instruksi mesin atau lebih mendekati bahasa mesin sehingga memerlukan lebih sedikit memori dan waktu dalam mengeksekusi setiap intruksinya dibandingkan dengan bahasa pemrograman aras menengah (middle-level language) dan aras tinggi (high-level language programming). Oleh karena itu penggunaan bahasa assembly sangat baik diterapkan pada penelitian ini, karena dalam pengukuran jarak menggunakan sensor HC-SR04, memerlukan penghitung waktu yang akurat dan cepat untuk mengurangi kesalahan dalam pengukuran. Mesin penghitung atau computer hanya dapat mengerti dan mengeksekusi instruksi bahasa yang membentuk sistem nomer biner 0 dan 1 karena bahasa pemrograman aras rendah berorientasi pada mesin, sehingga dalam pembuatan sebuah program, seorang programmer bahasa assembly harus memiliki pengetahuan yang baik tentang arsitektur computer seperti perangkat keras dan konfigurasinya. Bahasa assembly menggunakan simbol alphanumerik sebagai operand dan operasi serta digit biner dalam penulisan sintax-nya. Bahasa assembly juga dapat disebut Bahasa Pemrograman Tersimbol (Simbolic Programming Language), karena untuk mempresentasikan setiap kode operasi mesin dan lokasi penyimpanan digunakan simbol-simbol alphanumerik untuk mempermudah dalam membaca program oleh
26
manusia. Adapun beberapa contoh alih kode bahasa mesin menjadi kode dalam bahasa assembly diperlihatkan pada Tabel 2.9 Tabel 2.9 Beberapa contoh hubungan kesesuaian bahasa mensin terhadap bahasa assembly (Kahanwal, 2013)
Language Code (Machine) (16 bit instruction set) 1000000100100101 1000000101000101 1010000100000110 1000001000000110 1111111111111111
Assembly Language Code (Equivalent) LOAD R1 5 LOAD R2 5 ADD R0 R1 R2 SAVE R0 6 HALT
Walaupun cara pengetikan dari setiap perintah bahasa assembly adalah sederhana, namun penggunaannya tidak mudah karena sangat banyak detail-detail teknis yang harus diingat oleh proggrammer. 2.11 Transistor 2N2222 / PN2222 Sebagai Penguat Daya Transistor 2N2222 atau PN2222 merupakan jenis transistor NPN yang digunakan untuk switching, dimana transistor ini memiliki kemampuan untuk merubah besar arus yang mengalir dari kolektor ke emiter dari posisi potensial terendah hingga pontensial tertinggi dan sebaliknya dengan kecepatan tinggi, dimana besar arus tersebut bergantung pada besar arus yang mengalir pada basis dengan hubungan seperti yang diperlihatkan pada persamaan 2.3 =
×
(2.3)
Dimana : : Arus yang mengalir pada kolektor (Ampere) : Arus yang mengalir pada basis (Ampere) : Penguatan transistor disebut juga ℎ
Pada penelitian ini transistor 2N2222 atau PN2222 digunakan sebagai penguat daya dari suara beep yang dihasilkan oleh P2.0 mikrokontroller AT89S52. Penggunaan transistor sebagai penguat daya diperlihatkan pada Gambar 2.19.
27
Gambar 2.19. Rangkaian penguat daya dengan transistor NPN (Horowitz, P., et.al., 1989)
C1 dan C2 berfungsi sebagai high pass filter dan coupling capacitor yang haya melewatkan sinyal AC. R1 dan R2 berfungsi sebagai pembagi tegangan yang berfungsi untuk menjaga tegangan pada basis setengah dari tegangan VCC – Ground agar sinyal keluaran (arus kolektor) dapat berayun dengan baik sesuai dengan sinyal masukan yang diterima sehingga tidak terjadi pemotongan terhadap sinyal keluaran, untuk itu juga diperluan RE untuk menjaga tegangan keluaran berada setengah dari VCC – Ground dan membatasi arus yang mengalir dari kolektor ke emiter. C2 harus lebih besar dari C1 untuk mencegah terjadinya atenuasi, karena kedua kapasitor ini membentuk high pass filter bertumpuk (Horowitz, P., et.al., 1989).
2.12 Kerangka Konsep Kerangka konsep aplikasi sensor kompas dan sensor jarak pada kaca mata bagi kaum tuna netra dengan output suara manusia berbasis mikrokontroller AT89S52 ditunjukkan pada Gambar 2.19
Sensor kompas CMPS11
Sensor Jarak HC-SR04
Tombol arah mata angin
Antarmuka: UART, protokol : 2 stopbit tanpa parity dengan kecepatan 9600 bps
Antarmuka: Input : Pulsa High (5V) selama 10 μs Output : Pulsa PWM
Antarmuka: Output : sinyal transisi turun 5V ke 0V
TX
1
RX
Echo
Trigger
2
3
4
5
28
1
2
3
4
5
Pin RXD
Pin TXD
Pin 1
Pin 2
Pin 3
UART mode 3, protokol : 1 stop-bit dan 1 parity seolah 2 stop bit, dengan kecepatan 9600 bps
Hitung waktu dan periksa keadaan Pin 1
Set High selama 10μs
Kirim perintah ambil data sudut kompas
tPWM(high)/ 59 (μs/cm) = jarak (cm)
Timer 1 mode 2 (Auto reload) dengan pengaturan sebagai baud rate generator
Aktifkan interupsi Timer 0
Data 8 bit mempresentasikan sudut kompas
Timer 0 mode 2 (Auto reload) dengan pengaturan interupsi setiap 59 μs
Tampung data jarak pada register Atur penghitung delay untuk suara beep
Konversikan data menjadi alamat suara yang sesuai
Data alamat suara rekaman Aktifkan suara beep kemudian delay
Data 8 bit
Pin kontrol
Feedback
Chip-corder ISD1420
Pengolahan data oleh AT89S52
Penguat daya audio berbasis transistor 2N2222
Penguat daya audio berbasis LM386
Output Suara Gambar 2.20 Kerangka konsep aplikasi sensor kompas dan sensor jarak pada kaca mata bagi kaum tuna netra berbasis mikrokontroller AT89S52