BAB II LANDASAN TEORI Dalam Bab ini penulis akan membahas tentang komponen- komponen yang digunakan dalam seluruh unit alat ini. Agar pembahasan tidak melebar dan menyimpang dari topik utama laporan ini, maka setiap komponen hanya dibahas sesuai fungsinya pada masing- masing unit. 2.1 Mikrokontroler Arduino Uno R3 Arduino Uno sebenarnya adalah salah satu kit mikrokontroler yang berbasis pada ATmega28. Arduino Uno adalah board berbasis mikrokontroler pada ATMega328. Board ini memiliki 14 digital input / ouput pin (dimana 6 pin dapat digunakan sebagai ouput PWM), 6 input analog, 16 MHz osilator kristal, koneksi USB, jack listrik dan tombol reset. Pin– pin ini berisi semua yang diperlukan untuk mendukung mikrokontroler, hanya terhubung ke komputer dengan kabel USB atau sumber tekanan bisa didapat dari adaptor AC– DC atau baterai untuk menggunakannya (Arduino, Inc., 2009). Arduino Uno R3 berbeda dengan semua board sebelumnya karena Arduino Uno R3 ini tidak menggunakan chip driver FTDI USB-to-serial. Sebagaimana kita ketahui dengan mikrokontroler kita dapat membuat program untuk mengendalikan berbagai komponen elektronika. Program yang kita buat dengan bahasa pemrograman di download ke mikrokontroler, yang kemudian mikrokontroler akan bekerja sesua dengan program yang kita buat. Dengan Arduino Uno itu sendiri lebih memudahan pernggunanya untuk membuat berbagai hal yang berkaitan dengan mikrokontroler, karena didalamnya Universitas Sumatera Utara sudah tersedia yang dibutuhkan oleh mikrokontroler. Contohnya yang dapat dibuat dengan Arduino antara lain, untuk membuat robot, mengontrol motor stepper, pengatur suhu, mesin gate turnstile, display LCD, dan masih banyak lagi contoh yang lainnya. Gambar 2.1. Arduino Uno R3 2.1.1 Arsitektur Mikrokontroler Arduino Uno R3 Board Arduino Uno memiliki fitur – fitur baru sebagai berikut : • Pinout : menambahkan SDA dan SCL pin yang deket ke pin aref dan dua pin baru lainnya ditempatkan dekat ke pin RESET, dengan I/O REF yang memungkinkan sebagai buffer untuk beradaptasi dengan tegangan yang disediakan dari board sistem. Pengembangannya, sistem akan lebih kompatibel dengan prosesor yang menggunakan AVR, yang beroperasi dengan 5V dan dengan Arduino karena beroperasi dengan 3,3V. Yang kedua adalah pin yang tidak terhubung, yang disediakan untuk tujuan pengembangannya. • Sirkuit reset • ATMega 16U2 ganti 8U yang digunakan sebagai konverter USB-to-serial Universitas Sumatera Utara Gambar 2.2. Arsitektur Arduino Uno R3 Arduino Uno dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal. Sumber listrik dipilih secara otomatis. Eksternal (non-USB) daya dapat berupa baik AC-DC adaptor atau baterai. Adaptor ini dapat dihubungkan dengan cara menghubungkan plug pusat – positif 2.1mm ke dalam board colokan listrik. Sedangkan untuk baterai dapat dihubungkan kedalam header pin GND dan Vin dari konektor Power. Board dapat beroperasi pada pasokan daya dari 6 – 20 volt. Jika diberikan dengan kurang dari 7V, bagaimanapun pin 5V dapat menyuplai kurang dari 5 volt dan board mungkin tidak stabil. Jika menggunakan lebih dari 12V, regulator bisa panas dan merusak board. Rentang yang dianjurkan adalah 7V – 12V. Universitas Sumatera Utara Arduino Uno R3 memiliki 6 input analog diberi label A0 sampai A5, masing – masing menyediakan 10-bit resolusi (yaitu 1024 nilai yang berbeda). Secara default sistem mengukur dari ground sampai 5 volt, meskipun mungkin untuk mengubah ujung atas rentang mengunakan pin AREF dan fungsi analogReference(). Selain itu, beberapa pin memiliki fungsi khusus : • TWI : A4 atau SDA pin dan A5 atau SCL pin. Mendukung komunikasi TWI • AREF : Referensi tegangan untuk input analog. Digunakan dengan analogReference() • RESET 2.1.2 Konfigurasi Pin Arduino Uno R3 Dalam pasaran yang sering kita jumpai adalah Arduino Uno dimana didalamnya terdapat tiga PORT yaitu PORTB, PORTC, dan PORTD. Diantara ketiga PORT tersebut terdapat dua PORT yang terdiri atas 14 pin digital Input/Output yaitu PORTB dan PORTD sedangkan 7 pin analog Input/Output yaitu POTRC. Setiap 14 pin digital pada Arduino Uno R3 dapat digunakan sebagai input dan output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Fungsi– fungsi tersebut beroperasi ditegangan 5V, setiap pin dapat memberikan atau menerima suatu arus maksimum 40 mA dan memounyai sebuah resistor pullup (terputus secara default) 20-50 kOhm. Selain itu, beberapa pin mempunyai fungsi-fungsi spesial, yaitu : Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan memancarkan (TX) serial data TTL (Transistor-Transistor Logic). Kedua pin ini dihubungkan ke pin-pin yang sesuai dari chip Serial Atmega8U2 USB-ke-TTL. Universitas Sumatera Utara External Interrupts: 2 dan 3. Pin-pin ini dapat dikonfigurasikan untuk dipicu sebuah interrupt (gangguan) pada sebuah nilai rendah, suatu kenaikan atau penurunan yang besar, atau suatu perubahan nilai. Lihat fungsi attachInterrupt() untuk lebih jelasnya. PWM: 3, 5, 6, 9, 10, dan 11. Memberikan 8-bit PWM output dengan fungsi analogWrite(). SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport komunikasi SPI menggunakan SPI library. LED: 13. Ada sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika pin bernilai HIGH LED menyala, ketika pin bernilai LOW LED mati. Reset Membawa saluran ini LOW untuk mereset mikrokontroler. Secara khusus, digunakan untuk menambahkan sebuah tombol reset untuk melindungi yang memblock sesuatu pada board Universitas Sumatera Utara Gambar 2.3. Pin- Pin Arduino Uno R3 2.1.3 Deskripsi pin-pin pada mikrokontroler Arduino Uno R3 Gambar 2.4. Deskripsi Pin Pada Arduino Uno R3 1. 14 Pin Output/Input Digital (Pin 0 – pin 13) Pin ini dapat digunakan sebagai pin input dan output digital. Artinya pin-pin ini hanya dapat digunakan untuk keluar data digital. Bila pin – pin ini diatur sebagai pin output, maka pin – pin hanya dapat mengeluar tegangan 0V untuk kondisi OFF dan mengeluarkan tegangan 5V untuk kondisi ON. Dalam penulisan program sketch, 0V dinyatakan dengan kondisi LOW dan 5V dinyatakan dengan kondisi HIGH. Jika pin-pin digital ini diatur sebagai pin input, maka pin-pin ini hanya dapat menerima data digital. Bila pin diberi tegangan 0V, maka pin mendapat logika Universitas Sumatera Utara rendah (LOW) dan jika pin mendapat tegangan 5V, maka pin mendapat logika tinggi (HIGH). 2. Pin A0 – pin A5 Pin A0 – pin A5 adalah pin analog, artinya pin ini dapat menerima dan mengeluarkan data data analog. Pin A0 – pin A5 terhubung ke ADC (analog to digital converter). Board arduino uno menggunakan mikrokontroller ATMega 328 yang mempunyai 2 macam konfigurasi ADC yaitu ADC 8 bit dan ADC 12 bit. Pin analog ini dapat mengolah tegangan analog dari tegangan 0 V hingga 5 V. Selain dapat digunakan untuk data analog, pin ini juga dapat difungsikan sebagai pin input/output digital. 3. Pin Utilitas Pin utilitas terdiri dari : 1. Pin V input; untuk input tegangan DC 5 V 2. Pin V output 5V; pin ini mengeluarkan tegangan 5V 3. Pin V output 3,3 V; pin ini mengeluarkan tegangan 3,3 V 4. Pin Ground (-) 5. Pin Aref; pin ini untuk memberikan tegangan referensi eksternal pada ADC. 6. Pin reset; pin ini untuk reset mikrokontroller. 4. Q1 – Kristal (quartz crystal oscillator) Jika microcontroller dianggap sebagai sebuah otak, maka kristal adalah jantung-nya karena komponen ini menghasilkan detak-detak yang dikirim kepada Universitas Sumatera Utara microcontroller agar melakukan sebuah operasi untuk setiap detak-nya. Kristal ini dipilih yang berdetak 16 juta kali per detik (16MHz). 5. Terminal USB Terminal USB digunakan untuk menghubungkan board arduino dengan komputer, terminal ini digunakan untuk memprogram mikrokontroller dan juga dapat digunakan untuk komunikasi mikrokontroller dengan komputer (serial komunikasi). 6. Terminal Catudaya Eksternal. Board arduino selain dapat menggunakan datudaya dari USB komputer, juga dapat diberi catudaya eksternal melalui terminal catudaya ini. Pada board arduino telah dilengkapi dengan regulator tegangan 5V, sehingga board arduino ini dapat diberikan tegangan eksternal berkisar dari 5 V hingga 12 VDC. 7. Tombol Reset Untuk me-reset papan sehingga program akan mulai lagi dari awal. Perlu dipahami bahwa tombol reset ini bukan untuk menghapus program atau mengosongkan microkontroler. 8. Terminal Header ISP Terminal Header ISP digunakan untuk pemograman boatloader mikrokontroller. Agar mikrokontroller atmega328 dapat bekerja pada board arduino, maka atmega328 harus diisi dengan program boatloader terlebih dahulu. Pada saat kita membeli board arduino, board telah dilengkapi dengan sebuah IC atmega328 yang telah diisi dengan program boatloader, tetapi jika kita hendak Universitas Sumatera Utara mengganti IC atmega328 dengan yang baru, maka IC tersebut terlebih dahulu harus diisi dengan program boatloader dengan menggunakan terminal header ISP yang dihubungkan ke downloader lain. 2.1.4 Peta Memory Arduino Uno R3 Arduino Uno adalah arduino board yang menggunakan mikrokontroler ATmega328. Maka peta memori arduino uno sama dengan peta memori pada mikrokontroler ATmega328. Gambar 2.5. Organisasi Memori Aarduino Uno R3 2.1.4.1 Memori Program Universitas Sumatera Utara ATMega328 memiliki 32K byte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program. Memori flash dibagi kedalam dua bagian, yaitu bagian program bootloader. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor. 2.1.4.2 Memori Data Memori data ATMega328 terbagi menjadi 4 bagian, yaitu 32 lokasi untuk register umum, 64 lokasi untuk register I/O, 160 lokasi untuk register I/O tambahan dan sisanya 2048 lokasi untuk data Static Random Access Memory (SRAM) internal. Register umum menempati alamat data terbawah, yaitu 0x0000 sampai 0x001F. Register I/O menempati 64 alamat berikutnya mulai dari 0x0020 hingga 0x005F. Register I/O tambahan menempati 160 alamat berikutnya mulai dari 0x0060 hingga 0x00FF. Sisa alamat berikutnya mulai dari 0x0100 hingga 0x08FF digunakan untuk SRAM internal. Peta memori data dari ATMega 328 dapat dilihat pada Gambar dibawah. Universitas Sumatera Utara Gambar 2.6. Peta Memori ATMega328 2.1.4.3 Memori EEPROM Arduino uno terdiri dari 1 Kbyte memori data EEPROM. Pada memori EEPROM, data dapat ditulis/dibaca kembali dan ketika catu daya dimatikan, data terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM bersifat nonvolatile. Alamat EEPROM dimulai dari 0x000 hingga 0x3FF. 2.1.5 Register Serba guna ( General Purpose Register) Register geser memegang apa yang dapat dianggap sebagai delapan lokasi memori , masing-masing dapat menjadi 1 atau 0 . Untuk mengatur masing- masing nilai ini atau menonaktifkan, dalam data menggunakan ' data ' dan pin ' Jam ' chip. Universitas Sumatera Utara Gambar 2.7. Register Serba Guna 2.2 Sensor Ultrasonik HC-SR04 Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis (bunyi) menjadi besaran listrik. Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor ini menggunakan gelombang ultrasonik. Gelombang ultrasonik adalah gelombang bunyi yang mempunyai frekuensi sangat tinggi yaitu 20.000 Hz. Bunyi ultrasonik tidak dapat di dengar oleh telinga manusia, bunyi ultrasonic hanya dapat didengar oleh anjing, kucing, kelelawar, dan lumba-lumba. Bunyi ultrasonik bisa merambat melalui zat padat, cair dan gas. Reflektivitas bunyi ultrasonik di permukaan zat padat hampir sama dengan reflektivitas bunyi ultrasonik di permukaan zat cair. Akan tetapi, gelombang bunyi ultrasonik akan diserap oleh tekstil dan busa. Sensor ini merupakan sensor ultrasonik siap pakai, satu alat yang berfungsi sebagai pengirim, penerima, dan pengontrol gelombang ultrasonik. Alat ini bisa digunakan untuk mengukur jarak benda dari 2cm - 4m dengan akurasi 3mm. Alat ini memiliki 4 pin. Pin Vcc, Gnd, Trigger, dan Echo. Pin Vcc untuk listrik positif dan Gnd untuk ground-nya, sedangkan Pin Trigger untuk trigger keluarnya sinyal dari sensor dan pin Echo untuk menangkap sinyal pantul dari benda. Universitas Sumatera Utara Gambar 2.8 Sensor ultrasonik HC-SR04 Adapun fitur- fitur yang dimiliki sensor ultrasonik ini antara lain : - Suply tegangan 5 VDC - Supply arus 30mS- 35mA - jarak yang dapat diukur 2cm- 3-cm - Input Trigger 2µs- 5µ - Echo Hold-off 750µs - Burst Frequency 40 kHz untuk 200µs - Burst Indicator LED akan aktif bila sensor aktif - Delay sebelum pengukuran selanjutnya - 200µs Sensor ultrasonik memiliki tiga pin header yang digunakan untuk untuk supply power (5VDC), Ground dan Output Universitas Sumatera Utara Gambar 2.9. Pin Header Untuk Supply, Gnd dan Output 2.2.1 Cara Kerja Sensor Ultrasonik Pada sensor ultrasonik, gelombang ultrasonik dibangkitkan melalui sebuah alat yang disebut dengan piezoelektrik dengan frekuensi tertentu. Piezoelektrik ini akan menghasilkan gelombang ultrasonik (umumnya berfrekuensi 40kHz) ketika sebuah osilator diterapkan pada benda tersebut. Secara umum, alat ini akan menembakkan gelombang ultrasonik menuju suatu area atau suatu target. Setelah gelombang menyentuh permukaan target, maka target akan memantulkan kembali gelombang tersebut. Gelombang pantulan dari target akan ditangkap oleh sensor, kemudian sensor menghitung selisih antara waktu pengiriman gelombang dan waktu gelombang pantul diterima. Gambar 2.10. Cara kerja sensor ultrasonik dengan pemantulan gelombang. Secara detail, cara kerja sensor ultrasonik adalah sebagai berikut: • Sinyal dipancarkan oleh pemancar ultrasonik dengan frekuensi tertentu dan dengan durasi waktu tertentu. Sinyal tersebut berfrekuensi diatas 20kHz. Untuk Universitas Sumatera Utara mengukur jarak benda (sensor jarak), frekuensi yang umum digunakan adalah 40kHz. • Sinyal yang dipancarkan akan merambat sebagai gelombang bunyi dengan kecepatan sekitar 340 m/s. Ketika menyentuh suatu benda, maka sinyal tersebut akan dipantulkan oleh benda tersebut. • Setelah gelombang pantulan sampai di alat penerima, maka sinyal tersebut akan diproses untuk menghitung jarak benda tersebut. Jarak benda dihitung berdasarkan rumus : S= Dimana S merupakan jarak antara sensor ultrasonik dengan benda (bidang pantul), dan t adalah selisih antara waktu pemancaran gelombang oleh transmitter dan waktu ketika gelombang pantul diterima receiver. 2.2.2 Rangkaian Sensor Ultrasonik Transmitter Transmitter adalah sebuah alat yang berfungsi sebagai pemancar gelombang ultrasonik dengan frekuensi tertentu (misal, sebesar 40 kHz) yang dibangkitkan dari sebuah osilator. Untuk menghasilkan frekuensi 40 KHz, harus di buat sebuah rangkaian osilator dan keluaran dari osilator dilanjutkan menuju penguat sinyal. Besarnya frekuensi ditentukan oleh komponen RLC / kristal tergantung dari disain osilator yang digunakan. Penguat sinyal akan memberikan sebuah sinyal listrik yang diumpankan ke piezoelektrik dan terjadi reaksi mekanik sehingga bergetar dan memancarkan gelombang yang sesuai dengan besar frekuensi pada osilator. Universitas Sumatera Utara Gambar 2.11. Rangkaian dasar transmitter sensor ultrasonik Receiver Receiver terdiri dari transduser ultrasonik menggunakan bahan piezoelektrik, yang berfungsi sebagai penerima gelombang pantulan yang berasal dari transmitter yang dikenakan pada permukaan suatu benda atau gelombang langsung LOS (Line of Sight) dari transmitter. Oleh karena bahan piezoelektrik memiliki reaksi yang reversible, elemen keramik akan membangkitkan tegangan listrik pada saat gelombang datang dengan frekuensi yang resonan dan akan menggetarkan bahan piezoelektrik tersebut. Universitas Sumatera Utara Gambar 2.12. Rangkaian dasar receiver sensor ultrasonik 2.3 Bahasa Pemograman Arduino dan Software IDE Arduino Pemrograman Arduino mempunyai bahasa pemrograman sendiri yaitu bahasa pemrograman C/C++ yang telah disederhanakan, sehingga pemula pun bisa mempelajarinya dengan cukup mudah. Untuk membuat program Arduino dan mengupload ke dalam board Arduino, membutuhkan software Arduino IDE (Integrated Development Enviroment) 2.3.1 Bahasa Pemrograman Arduino Bahasa C dikembangkan pada Lab Bell pada tahun 1978, oleh Dennis Ritchi dan Brian W. Kernighan. Pada tahun 1983 dibuat standar C yaitu stnadar ANSI ( American National Standards Institute ), yang digunakan sebagai referensi dari berbagai versi C yang beredar dewasa ini termasuk Turbo C. Dalam beberapa literature, bahasa C digolongkan bahasa level menenganh karena bahasa C mengkombinasikan elemen bahasa tinggi dan elemen bahasa rendah. Kemudahan dalam level rendah merupakan tujuan diwujudkanya bahasa C. pada tahun 1985 lahirlah pengembangan ANSI C yang dikenal dengan C++ (diciptakan oleh Bjarne Struostrup dari AT TLab). Bahasa C++ adalah pengembangan dari bahasa C, bahasa C++ mendukung konsep pemrograman berorientasi objek dan pemrograman berbasis windows. Sampai sekarang bahasa C++ terus brkembang dan hasil perkembangannya muncul bahasa baru pada tahun 1995 (merupakan keluarga C dan C++ yang dinamakan Java). Istilah prosedur dan fungsi dianggap sama dan disebut dengan fungsi saja. Hal ini karena di C++ sebuah prosedur pada dasanya adalah sebuah Universitas Sumatera Utara fungsi yang tidak memiliki tipe data kembalian (void). Hingga kini bahasa ini masih popular dan penggunaannya tersebar di berbagai platform dari windows samapi linux dan dari PC hingga main frame. Ada pun kekurangan dan Kelebihan Bahasa C sebagai berikut : • Kelebihan Bahasa C: · Bahasa C tersedia hampir di semua jenis komputer. · Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis komputer. · Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci. · Proses executable program bahasa C lebih cepat. · Dukungan pustaka yang banyak. · Bahasa C adalah bahasa yang terstruktur. · Bahasa C termasuk bahasa tingkat menengah. Penempatan ini hanya menegaskan bahwa C bukan bahasa pemrograman yang berorientasi pada mesin, yang merupakan ciri bahasa tingkat rendah. Melainkan berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan cepat, secepat bahasa mesin. Inilah salah satu kelebihan c yaitu memiliki kemudahan dalam menyusun programnya semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat rendah. • Kekurangan Bahasa C: · Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai. · Bagi pemula pada umumnya akan kesulitan menggunakan pointer. Universitas Sumatera Utara 2.3.2 IDE Arduino Pemrograman board Arduino dilakukan dengan menggunakan Arduino Software (IDE). Chip ATmega328 yang terdapat pada Arduino Uno R3 telah diisi program awal yang sering disebut bootloader. Bootloader tersebut yang bertugas untuk memudahkan anda melakukan pemrograman lebih sederhana menggunakan Arduino Software, tanpa harus menggunakan tambahan hardware lain. Cukup hubungkan Arduino dengan kabel USB ke PC lalu jalankan software Arduino Software (IDE), dan kita sudah bisa mulai memprogram chip ATmega328. Lebih mudah lagi, di dalam Arduino Software sudah diberikan banyak contoh program yang memanjakan kita dalam belajar mikrokontroler. Gambar 2.13. Contoh Arduino Software 2.3.3 Tipe Data Universitas Sumatera Utara Tipe data merupakan suatu hal yang penting untuk kita ketahui pada saat belajar bahasa pemrograman. Kita harus dapat menentukan tipe data yang tepat untuk menampung sebuah data, baik itu data berupa bilangan numerik ataupun karakter. Hal ini bertujuan agar program yang kita buat tidak membutuhkan pemesanan kapling memori yang berlebihan. Seorang programmer yang handal harus dapat memilih dan menentukan tipe data apa yang seharusnya digunakan dalam pembuatan sebuah program. Secara garis besar tipe data pada bahasa C dibagi menjadi beberapa bagian antara lain sebagai Berikut Macam-Macam Tipe Data Pada Bahasa C : 1. Tipe Data Karakter Sebuah karakter, baik itu berupa huruf atau angka dapat disimpan pada sebuah variabel yang memiliki tipe data char dan unsigned char. Besarnya data yang dapat disimpan pada variabel yang bertipe data char adalah (-127)- (127). Sedangkan untuk tipe data unsigned char adalah dari 0- 255. Pada dasarnya setiap karakter memiliki nilai ASCII (American Standard Code for Information Interchange), nilai inilah yang sebetulnya disimpan pada variabel yang bertipe data karakter ini. 2. Tipe Data Bilangan Bulat Tipe data bilangan bulat atau dapat disebut juga bilangan desimal merupakan sebuah bilangan yang tidak berkoma. Pada bahasa C terdapat bermacam-macam tipe data yang dapat kita gunakan untuk menampung bilangan bulat. Kita dapat menyesuaikan penggunaan tipe data dengan terlebih dahulu memperhitungkan seberapa besar nilai yang akan kita simpan. Contohnya seperti berikut, kita akan melakukan operasi penjumlahan nilai 300 dan 100 dan hasilnya akan disimpan Universitas Sumatera Utara pada variabel C. Jika dilihat, hasil dari penjumlahan tersebut nilainya akan lebih besar dari 255 dan nilainya pasti positif, oleh karena itu sebaiknya kita menggunakan tipe data unsigned int. Namun berbeda halnya jika kita ingin melakukan operasi pengurangan -5 - 300, jika dilihat hasilnya akan negatif maka selayaknya digunakan variabel dengan tipe data int. 3. Tipe Data Bilangan Berkoma Pada bahasa C terdapat dua buah tipe data yang berfungsi untuk menampung data yang berkoma, tipe data tersebut adalah float dan double. Tipe data double dapat digunakan jika kita membutuhkan variabel yang dapat menampung tipe data berkoma yang bernilai besar. Tabel 2.1. Tipe Data Tipe Data Ukuran Jangkauan Nilai Bit 1 byte 0 atau 1 Char 1 byte -128 s/d 127 Unsigned Char 1 byte 0 s/d 255 Signed Char 1 byte -128 s/d 127 Int 2 byte -32.768 s/d 32.767 Short Int 2 byte -32.768 s/d 32.767 Unsigned Int 2 byte 0 s/d 65.535 Signed Int 2 byte -32.768 s/d 32.767 Long Int 4 byte -2.147.483.648 s/d 2.147.483.647 Unsigned Long Int 4 byte 0 s/d 4.294.967.295 Signed Long Int 4 byte -2.147.483.648 s/d 2.147.483.647 Universitas Sumatera Utara Float 4 byte 1.2*10-38 s/d 3.4*10+38 Double 4 byte 1.2*10-38 s/d 3.4*10+38 2.3.4 Identifier Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh pemrogram yang digunakan untuk menyimpan nilai, misalnya nama variable, nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll). Identifier punya ketentuan sebagai berikut : 1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang diperhatikan hanya 32 karakter pertama saja). 2. Case sensitive membedakan huruf besar dan huruf kecil. 3. Karakter pertama harus karakter atau underscore ( _ ). Selebihnya boleh angka. 4. Tidak boleh mengandung spasi atau blank. 5. Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi. 2.4 LCD (Liquid Cristal Display) LCD (Liquid Crystal Display) adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alal–alat elektronik seperti televisi, kalkulator, ataupun layar komputer. Pada postingan aplikasi LCD yang dugunakan ialah LCD dot-matrik dengan jumlah karakter 16 x 2. LCD sangat berfungsi sebagai penampil yang nantinya akan digunakan untuk menampilkan status kerja alat. Universitas Sumatera Utara Gambar 2.14. Bentuk Fisik LCD 16x2 2.4.1 Konfigurasi Pin LCD 16x2 Berikut Ini adalah tabel konfigurasi pin LCD 16x2 : Tabel 2.2. Konfigurasi Pin LCD 16x2 Keterangan : • Pin 1 dan 2 Merupakan sambungan catu daya, Vss dan Vdd. Pin Vdd dihubungkan dengan tegangan positif catu daya, dan Vss pada 0V atau ground. Meskipun Universitas Sumatera Utara data menentukan catu 5 Vdc, menyediakan 6V dan 4.5V yang keduanya bekerja dengan baik, bahkan 3V cukup untuk beberapa modul. • Pin 3 Pin 3 merupakan pin kontrol Vee, yang digunakan untuk mengatur kontras display. • Pin 4 Pin 4 merupakan Register Select (RS), masukan yang pertama dari tiga command control input. Dengan membuat RS menjadi high, data karakter dapat ditransfer dari dan menuju modulnya. • Pin 5 Read/Write (R/W), untuk memfungsikan sebagai perintah write maka R/W low atau menulis karakter ke modul. R/W high untuk membaca data karakter atau informasi status dari register-nya. • Pin 6 Enable (E), input ini digunakan untuk transfer aktual dari perintah-perintah atau karakter antara modul dengan hubungan data. Ketika menulis ke display, data ditransfer hanya pada perpindahan high atau low. Tetapi ketika membaca dari display, data akan menjadi lebih cepat tersedia setelah perpindahan dari low ke high dan tetap tersedia hingga sinyal low lagi. • Pin 7-14 Pin 7 sampai 14 adalah delapan jalur data/data bus (D0 sampai D7) dimana data dapat ditransfer ke dan dari display. Universitas Sumatera Utara • Pin 16 Pin 16 dihubungkan kedalam tegangan 5 Volt untuk memberi tegangan dan menghidupkan lampu latar/Back Light LCD. 2.4.2 Karakteristik LCD 16x2 • Terdapat 16 x 2 karakter huruf yang bisa ditampilkan. • Setiap huruf terdiri dari 5x7 dot-matrix cursor. • Terdapat 192 macam karakter. • Terdapat 80 x 8 bit display RAM (maksimal 80 karakter). • Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit. • Otomatis reset saat tegangan dihidupkan. • Koneksi pengendalian yang digunakan adalah 4bit Data Interface. • Telah dilengkapi pengendalian Contrast dan Brightnees. • Telah disediakan kabel IDC 10 sehingga dapat langsung dihubungkan • Bekerja pada suhu 0oC sampai 55oC. Bila dirangkai maka rangkaian dari LCD 16x2 seperti gambar 2.15 dibawah ini : Universitas Sumatera Utara