BAB II LANDASAN TEORI 2.1 Teori Umum Pressure (tekanan) adalah gaya yang diberikan pada per unit area. Bisa juga dijelaskan bahwa pressure adalah ukuran intensitas gaya yang diberikan pada suatu titik permukaan. Satuan tekanan untuk hasil pengukuran tekanan biasanya berupa psi, psf, mmhg, inhg, bar, dan atmosphere (atm). Namun satuan yang digunakan dalam hasil pengukuran tekanan ini adalah satuan psi. Besarnya tekanan udara disuatu tempat sangat bergantung pada jumlah udara diatasnya. Semakin tinggi suatu tempat maka semakin sedikit jumlah udara diatasnya, semakin sedikit berat udara yang ditahan wilayah tersebut sehingga tekanannya semakin sedikit. Berbanding terbalik dengan daerah atau dataran rendah, mereka mempunyai tekanan udara yang lebih besar. Jadi tekanan udara di suatu wilayah sangat ditentukan oleh ketinggian tempat atau wilayah tersebut dari permukaan air laut. Dalam pembahasan kali ini, tekanan yang diukur adalah tekanan diruang tertutup. Udara di dalam ruang tertutup memiliki ciri yang berbeda dengan udara di ruang terbuka (atmosfer). Ciri-ciri tersebut menyangkut volume, tekanan, dan suhu. Alat pengukur tekanan udara dalam ruang tertutup disebut manometer. Perbedaan tekanan udara di dalam dan di luar ruang ditunjukkan oleh perbedaan ketinggian permukaan zat cair tersebut. Semakin besar tekanan udara di dalam ruang, perbedaan ketinggian ini juga semakin besar. 4
2.2 Sensor Pressure Gauge MPX5700 Pressure gauge adalah alat yang digunakan untuk mengukur tekanan fluida (gas atau liquid) dalam tabung tertutup. Satuan dari alat ukur tekanan ini berupa psi (pound per square inch), psf (pound per square foot), mmhg (millimeter of mercury), inhg (inch of mercury), bar, atm (atmosphere). Gambar 2.1 Konfigurasi Sensor Pressure Gauge MPX5700 Gambar 2.1 merupakan konfigurasi sensor pressure gauge seri MPX5700DPCASE 867C-05. Sensor ini memiliki daerah ukur untuk tekanan dari 0-700 kpa, dengan tingkat akurasi ±2,5%. Idealnya cocok untuk sistem Microprosessor atau Microcontroller. Untuk mengkonversi terhadap hasil pengukuran tekanan udara tertutup, sensor ini memerlukan suatu sirkuit listrik tambahan. Kelebihan dari sensor ini adalah memiliki kepekaan yang baik terhadap tekanan yang dihasilkan, masa aktif yang lama, dan membutuhkan biaya yang lebih rendah. Sensor ini juga memiliki tingkat sensitivitas yang rendah sehingga mudah dibawa kemana-mana, karena sensor ini akan bekerja jika ada tekanan udara yang diberikan. Dengan memanfaatkan prinsip kerja dari sensor MPX5700 ini, tekanan didalam ruang tertutup dapat diukur. 2.3 Mikrokontroler ATMega8535 Mikrokontroler adalah otak dari suatu sistem elektronika seperti halnya mikroprosesor sebagai otak komputer. Namun mikrokontroler memiliki nilai tambah 5
karena didalamnya sudah terdapat memori dan sistem input/output dalam suatu kemasan IC. Mikrokontroler AVR (Alf and Vegard s RISC processor) standar memiliki arsitektur 8-bit, dimana semua instruksi dikemas dalam kode 16- bit dan sebagian besar instruksi dieksekusi dalam satu siklus clock. Berbeda dengan instruksi MCS-51 yang membutuhkan 12 siklus clock karena memiliki arsitektur CISC (seperti komputer). Teknologi yang digunakan pada mikrokontroler AVR berbeda dengan mikrokontroler seri MCS-51. AVR berteknologi RISC (Reduced Instruction Set Computer), sedangkan seri MCS-51 berteknologi CISC (Complex Instruction Set Computer). Mikrokontroler AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, Keluarga ATMega, dan AT89RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, kelengkapan periferal dan fungsi-fungsi tambahan yang dimiliki. ATMega8535 adalah mikrokontroler CMOS 8-bit daya rendah berbasis arsitektur RISC. Kebanyakan instruksi dikerjakan pada satu siklus clock, ATMega8535 mempunyai throughput mendekati 1 MIPS per MHz, hal ini membuat ATMega8535 dapat bekerja dengan kecepatan tinggi walaupun dengan penggunaan daya rendah. Mikrokontroler ATMega8535 memiliki beberapa fitur atau spesifikasi yang menjadikannya sebuah solusi pengendali yang efektif untuk berbagai keperluan. Fiturfitur tersebut antara lain: - Saluran I/O sebanyak 32 buah, yang terdiri atas Port A, B, C dan D - ADC (Analog to Digital Converter) dengan resolusi 10-bit sebanyak 8 saluran melalui Port A - Tiga buah Timer atau Counter dengan kemampuan perbandingan 6
- CPU yang terdiri atas 32 register - Watchdog Timer dengan osilator internal - SRAM sebesar 512 byte - Memori Flash sebesar 8 kb dengan kemampuan Read While Write - Unit Interupsi Internal dan Eksternal - Port antarmuka SPI untuk mendownload program ke flash - EEPROM sebesar 512 byte yang dapat diprogram saat operasi - Antarmuka komparator analog - Port USART untuk komunikasi serial Gambar 2.2 Blok Diagram ATMega8535 Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama. Oleh karena itu, dipergunakan salah satu AVR produk Atmel, yaitu ATMega8535. Selain mudah didapatkan dan lebih murah Atmega8535 juga memiliki fasilitas yang lengkap. 7
2.3.1 Konfigurasi PIN ATMega8535 Gambar 2.33 Konfigurasi Pin ATMega8535 Berikut ini adalah susunan pin-pinn dari ATMega8535: VCC merupakan pin yang berfungsi sebagai pin masukkan catu daya GND merupakan pin ground Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC Port B (PB0..PB7) merupakan pin I/O duaa arah dan pin fungsi khusus, yaitu Timer/Counter, Komparatorr Analog, dan SPI Port C (PC0..PC7) merupakan pin I/O duaa arah dan pin fungsi khusus, yaitu TWI, Komparator Analog, dan Timer Oscilator O Port D (PD0..PD7) merupakan pin I/O duaa arah dan pin fungsi khusus, yaitu Komparator Analog, Interupsi Iksternal dan komunikasi serial USART Reset merupakan pin yang digunakan untuk mereset m mikrokontroler XTAL1 dan XTAL2 merupakan pin masukkan clock k eksternal (osilator menggunakan kristal, biasanya dengan frekuensi 11,0592 MHz) 8
2.3.2 Port-Port Pada ATMega853 35 Dan Fungsinya - Port A - Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakann internal pull-upp resistor (dapat diatur per bit). Output bufferr Port A dapat memberi arus 20 ma dan dapat mengendalikan display d LEDD secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahuluu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin- Selain itu, kedelapan pin port A juga digunakan untuk u masukan sinyal analog pin port A yang bersesuaian sebagai input, atau diisi d 1 jika sebagai output. bagi A/D converter. - Port B Merupakan 8-bit directional port I/O. Setiapp pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 ma dan n dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu pin port B juga memilikii untuk fungsi-fungsi sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin- pin port B yang bersesuaian sebagai input, atau diisi d 1 jika sebagai output. Pin- alternatif khusus seperti yang dapat dilihat dalam tabel berikut. Tabel 2.1 Fungsi Pin-pin Port B 9
- Port C Merupakan 8-bit directional port I/O. Setiapp pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 ma dan n dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu pin sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin- port C yang bersesuaian sebagai input, atau diisi 1 jika sebagaii output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai oscillator untuk timer/counter 2. - Port D Merupakan 8-bit directional port I/O. Setiapp pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 ma dan n dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu pin sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin- port D yang bersesuaian sebagai input, atau diisi 1 jika sebagaii output. juga memiliki untuk fungsi-fungsi alternatif khusus Selain itu, pin-pin port D seperti yang dapat dilihat dalam tabel berikut. Tabel 2.2 Fungsi Pin-pin Port D 10
2.4 LCD (Liquid Crystal Display) LCD (Liquid Crystal Display) adalah satu alat untuk display berbagai character. Antaranya LCD yang mempunyai dot matrix controller HD44780. HD44780 boleh beroperasi pada 5X8 atau 5X10 dot matrix. LCD ini mempunyai beberapa ukuran mengikut bilangan character. Antaranya 16X2 atau 20X4 character. 16X2 character bermakna LCD itu mempunyai 16 character pada line dengan 2 lines. LCD ini mempunyai 16 pin. Gambar 2.4 LCD Character 16x2 LCD adalah LCD yang tampilannya terbatas pada tampilan karakter, khususnya karakter ASCII (seperti karakter-karakter yang tercetak pada keyboard komputer). Sedangkan LCD Graphics = LCD Grafik, adalah LCD yang tampilannya tidak terbatas, bahkan dapat menampilkan foto. LCD Grafik inilah yang terus berkembang seperti layar LCD yang biasa dilihat di notebook atau laptop. Dalam pembahasan kali ini akan dikonsentrasikan pada LCD karakter. Jenis LCD karakter yang beredar di pasaran biasa dituliskan dengan bilangan matriks dari jumlah karakter yang dapat dituliskan pada LCD tersebut, yaitu jumlah kolom karakter dikali jumlah baris karakter. Sebagai contoh, LCD 16X2, artinya terdapat 16 kolom dalam 2 baris ruang karakter, yang berarti total karakter yang dapat dituliskan adalah 32 karakter. 11
Gambar 2.5 Penunjukkan Kolom dan Baris Pada LCD 16x2 LCD Karakter dalam pengendaliannya cenderung lebih mudah dibandingkan dengan LCD Grafik. Namun ada kesamaan diantara keduanya, yaitu inisialisasi. Inisialisasi adalah prosedur awal yang perlu dilakukan dan dikondisikan kepada LCD agar LCD dapat bekerja dengan baik. Hal yang sangat penting yang ditentukan dalam proses inisialisasi adalah jenis interface (antarmuka) antara LCD dengan controller (pengendali). Pada umumnya terdapat dua jenis antarmuka yang dapat digunakan dalam pengendalian LCD karakter: Untuk dapat mengendalikan LCD karakter dengan baik, tentu perlu koneksi yang benar. Dan koneksi yang benar dapat diwujudkan dengan cara mengetahui pinpin antarmuka yang dimiliki oleh LCD karakter tersebut. LCD karakter yang beredar di pasaran memiliki 16 pin antarmuka: Keterangan: Gambar 2.6 Spesifikasi LCD 16x2 1. VSS = GND 2. VDD = Positif 5 Volt 3. Vo = Tegangan untuk mengatur kontras dari tampilan karakter 12
4. RS 5. R/W 6. E = pin 4 (RS) pin 6 (E) digunakan untuk aktivasi LCD 7. DB0 8. DB1 9. DB2 10. DB3 11. DB4 12. DB5 13. DB6 14. DB7 = pin 7 (DB0) pin 14 (DB7) digunakan untuk komunikasi data paralel dengan pengendali 15. Anoda LED Backlight LCD 16. Katoda LED Backlight LCD Seperti yang dipaparkan di paragraph sebelumnya, bahwa ada dua jenis antarmuka yang dapat digunakan dalam mengendalikan LCD karakter: 4 Bit, 8 Bit. Dalam 4 BitAntarmuka hanya membutuhkan empat pin data komunikasi data parallel, DB4 (pin 11) DB7 (pin14), yang dikoneksikan dengan pengendali. Langkah-langkah inisialisasi haruslah bersesuaian dengan apa yang telah dituliskan pada datasheet LCD karakter yang digunakan. Tiap jenis antarmuka memiliki langkah inisialisasi yang unik, dan langkah-langkah pemrograman biasa dituliskan dalam bentuk diagram-alir (flowchart): 13
Gambar 2.7 Diagram-alir 4 Bit Antarmuka Gambar 2.8 Diagram-alir 8 Bit Antarmuka 14
2.5 Pemrograman C Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Bahasa ini memberikan ide pada Ken Thompson yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C yang ditulis oleh Dennis Ritchie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell Laboratories). Bahasa C pertama kali digunakan pada komputer Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi UNIX. Standar bahasa C yang asli adalah standar dari UNIX.Sistem operasi, kompiler C dan seluruh program aplikasi UNIX yang esensial ditulis dalam bahasa C. Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat untuk komputer mikro. Untuk membuat versi-versi tersebut menjadi standar, ANSI (American National Standard Institutes) membentuk suatu komite (ANSI Committee X3J11) pada tahun 1983 yang kemudian menetapkan standar ANSI untuk bahasa C. Standar ANSI ini didasarkan kepada standar UNIX yang diperluas. Bahasa C mempunyai kemampuan lebih dibanding dengan bahasa pemrograman yang lain. Bahasa C merupakan bahasa pemrograman yang bersifat portabel, yaitu suatu program yang dibuat dengan bahasa C pada suatu komputer akan dapat dijalankan pada komputer lain dengan sedikit (atau tanpa) ada perubahan yang berarti. Bahasa C merupakan bahasa yang biasa digunakan untuk keperluan pemrograman sistem, antara lain untuk membuat: 1. Assembler 2. Interpreter 3. Compiler 15
4. Sistem Operasi 5. Program bantu(utility) 6. Editor 7. Paket program aplikasi 2.5.1 Kelebihan dan Kelemahan Bahasa C Bahasa C mempunyai beberapa kelebihan dibanding dengan bahasa pemrograman yang lain, yaitu: - KelebihanBahasa C 1. C mempunyai operator yang lengkap untuk memanipulasi data. 2. Berbagai struktur data dan pengendalian proses disediakan dalam C, sehingga memungkinkan dibuat program yang terstruktur, bahkan program yang berorientasi pada objek OOP (Object Orientied Programming). 3. Dibanding dengan bahasa mesin atau rakitan (assembly), C jauh lebih mudah dipahami dan pemrogram tidak perlu tahu detail mesin komputer yang digunakan sehingga tidak menyita waktu dalam menyelesaikan masalah ke dalam bentuk program. C merupakan bahasa yang berorientasi pada permasalahan (objek), dan bukan berorientasi pada mesin. 4. Kecepatan eksekusi C mendekati kecepatan eksekusi program yang dibuat dengan bahasa tingkat rendah, namum kemudahan dalam memprogram setara dengan bahasa tingkat tinggi. 5. C memungkinkan memanipulasi data dalam bentuk bit maupun byte secara efisien. Disamping itu juga memungkinkan untuk melakukan manipulasi alamat dari suatu data yang dalam C dinamakan pointer. - Kelemahan Bahasa C 16
1. Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai, yang jika belum familiar akan menimbulkan masalah. 2. Para pemrogram C tingkat pemula umumnya belum pernah mengenal pointer dan tidak terbiasa menggunakannya, padahal keampuhan bahasa C justru terletak pada pointer. Namun kesulitan di atas biasanya hanya bersifat sementara saja. 2.5.2 Fungsi Penyusun Bahasa C - Fungsi main() Pada program bahasa C, main() merupakan fungsi yang istimewa, karena fungsi main harus selalu ada dalam program, sebab fungsi inilah yang menjadi titik awal dan titik akhir eksekusi program. Tanda { di awal fungsi menyatakan awal tubuh fungsi dan sekaligus awal program, sedangkan tanda } di akhir tubuh fungsi menyatakan akhir dari tubuh fungsi sekaligus akhir eksekusi program. Jika program lebih dari satu fungsi, fungsi main() biasa ditempatkan pada posisi yang paling atas dalam pendefinisian fungsi, untuk memudahkan pencarian program utama. - Fungsi printf() Fungsi printf() merupakan fungsi yang umum digunakan untuk menampilkan suatu keluaran program pada layar penampil (monitor). Untuk menampilkan tulisan Selamat Datang maka pernyataan yang diperlukan berupa: printf("selamat Datang"); Pernyataan di atas berupa pemanggilan fungsi printf() dengan argumen/parameter berupa string "Selamat Datang". Dalam C suatu konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda ("). Pernyataan dalam bahasa C 17
selalu diakhiri dengan titik koma ( ; ), yang dipakai sebagai pemberhentian pernyataan dan bukanlah sebagai pemisah antara dua pernyataan. Contoh berikut adalah contoh program yang agak lengkap: #include main() { printf("selamat datang di program bahasa C"); } Jika program dieksekusi maka akan menghasilkan keluaran string Selamat darang di program bahasa C. - Praprosesor #include Pada contoh program sebelumnya terdapat baris yang berisi #include : 1. #include merupakan salah satu jenis pengarah praprosesor yang digunakan untuk memberitahu kompiler agar dalam proses linking membaca file yang dinamakan file judul (header file), yaitu file yang diantaranya berisi deklarasi fungsi dan definisi konstanta. 2. Bahasa C menyediakan beberapa file judul yang ditandai dengan ekstensi.h. Misal, pada program di atas, #include menyatakan pada kompiler agar membaca file bernama stdio.h saat melakukan kompilasi. 3. Bentuk umum #include: #include atau #include "namafile" 4. Bentuk pertama ( #include ) mengisyaratkan bahwa pencarian file dilakukan pada direktori khusus (direktori file include), yang merupakan default direktori file-file judul yang disediakan oleh bahasa pemrograman. 5. Bentuk kedua ( #include "namafile" ) menyatakan bahwa pencarian file dilakukan pertama kali pada direktori aktif tempat program sumber, dan 18
seandainya tidak ditemukan pencarian akan dilanjutkan pada direktori lainnya sesuai dengan perintah pada sistem operasi (yaitu path). 6. Kebanyakan program melibatkan file stdio.h, yaitu file judul I/O standar yang disediakan dalam C, yang diperlukan untuk program-program yang menggunakan pustaka fungsi I/O standar seperti printf(). 2.5.3 Kondisi di bahasa C Kondisi dalam bahasa C ada dua macam yaitu if dan switch pernyataan if mempunyai bentuk : if(kondisi) pernyataan; Bentuk ini menyatakan : Jika kondisi yang di seleksi adalah benar (bernilai logika = 1), maka pernyataan yang mengikutinya akan di proses. Sebaliknya, jika kondisi yang di seleksi tidak benar (bernilai logika = 0), maka pernyataan yang mengikutinya tidak akan di proses. 19