BAB 2 LANDASAN TEORI - Perancangan Pemantau Kapasitas Tong Air Menggunakan Sensor Ultrasonic dengan Sms Gatewayberbasis Atmega 8535

BAB 2 LANDASAN TEORI Dalam bab ini penulis akan membahas tentang komponen- komponen yang di

  gunakan dalam seluruh unit alat ini. Agar pembahasan tidak melebar dan menyimpang dari topic utama laporan ini, maka setiap komponen hanya di bahas sesuai fungsi nya pada masing- masing unit nya

2.1 Mikrokontroler ATMega 8535

  Mikrokontroler merupakan sebuah single chip yang didalamnya telah dilengkapi dengan CPU (Central Processing Unit), RAM (Random Access Memori), ROM (Read

  

Only Memori ), Input dan Output, Timer/Counter, Serial com port secara spesifik

  digunakan untuk aplikasi – aplikasi kontrol dan aplikasi serbaguna. Perangkat ini sering digunakan untuk kebutuhan kontrol tertentu seperti pada sebuah penggerak motor. Read

  

Only Memori (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya.

  Memori penyimpanan program dinamakan sebagai memori program. Random Access

  Memori

  (RAM) isinya akan langsung hilang ketika IC kehilangan catudaya yang dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.

  Mikrokontroler biasanya dilengkapi dengan UART (Universal Asychronous

  Receiver Transmitter

  ) yaitu port serial komunikasi serial asinkron, USART (Universal

  Syncrhronous and Asyncrhronous Serial Receiver and Transmitter

  ) yaitu port yang digunakan untuk komunikasi serial sinkron dan asinkron yang kecepatannya 16 kali lebih cepat dari UART, SPI (Serial Port Interface), SCI (Serial Communication

  

Interface ), Bus RC (Intergrated circuit Bus) merupakan 2 jalur yang terdapat 8 bit,

  CAN (Control Area Network) merupakan standart pengkabelan SAE (Society of

  Automatic Engineers ).

  Mikrokontroler saat ini sudah dikenal dan digunakan secara luas pada dunia industri. Banyak sekali penelitian atau proyek mahasiswa yang menggunakan berbagai versi mikrokontroler yang dapat dibeli dengan harga yang relative murah. Mikrokontroler saat ini merupakan chip utama pada hamper setiap peralatan elektronika canggih. Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16 bit (16 bit word) dan sebagian besar instruksi dieksekusi dalam satu siklus clock, berbeda dengan instruksi CS51 yang membutuhkan siklus 12 clock.

  AVR berteknologi RISC (Reduce Instruction Set Computing), sedangkan seri MCS51berteknologi CISC (Complex Instruction Set Computing). Secara umum, AVR dikelompokkan menjadi beberapa kelas, yaitu keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang membedakan masing – masing kelas adalah memori, peripheral dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bias dikatakan hamper sama.

2.1.1. Fitur ATMega8535

  Fitur-fitur yang dimiliki oleh mikrokontroler ATmega8535 adalah sebagai berikut:

  1. Saluran I/O sebanyak 32 buah, yaitu port A, port B, port C, dan port D.

  2. ADC internal sebanyak 8 saluran.

  3. Tiga buah Timer/Counter dengan kemampuan pembandingan.

  4. CPU yang terdiri atas 32 buah register.

  5. SRAM sebesar 512 byte.

  6. Memori Flash sebesar 8 kb dengan kemampuan Read While Write.

  7. Port antarmuka SPI 8. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.

  9. Antarmuka komparator analog.

  10. Port USART untuk komunikasi serial.

  11. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.

2.1.2. Konfigurasi Pin ATMega 8535

  

Package ) dapat dilihat pada gambar xxxxxx. Dari gambar di atas dapat dijelaskan

  fungsi dari masing-masing pin Atmega8535 sebagai berikut: 1.

  VCC merupakan pin yang berfungsi sebagai masukan catu daya.

  2. GND merukan pin Ground.

  Konfigurasi pin ATmega8535 dengan kemasan 40 pin DIP (Dual Inline

  4. Port B (PortB0…PortB7) merupakan pin input/output dua arah dan dan pin fungsi khusus,

  5. Port C (PortC0…PortC7) merupakan pin input/output dua arah dan pin fungsi khusus,

  6. Port D (PortD0…PortD7) merupakan pin input/output dua arah dan pin fungsi khusus,

  7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.

  8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.

  9. AVCC merupakan pin masukan tegangan untuk ADC.

  10. AREFF merupakan pin masukan tegangan referensi ADC.

  3. Port A (PortA0…PortA7) merupakan pin input/output dua arah dan pin masukan ADC.

Gambar 2.1 Konfigurasi Pin ATmega8535 PDIP

  Berikut ini penjelasan mengenai konfigurasi pin ATMega8535 sebagai berikut :

  1. Port A Pin33 sampai dengan pin 40 merupakan pin dari port A. Merupakan 8 bit directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up resistor

  (dapat diatur per bit). Output buffer port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus di-setting terlebih dahulu sebelum port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang disesuaikan sebagai input, atau diisi 1 jika sebagai output.

  2. Port B Pin 1 sampai dengan pin 8 merupakan pin dari port B. Merupakan 8 bit directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up resistor

  (dapat diatur per bit). Output buffer port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B diisi 0 jika ingin memfungsikan pin-pin port B yang disesuaikan sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port B juga memiliki fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel:

Tabel 2.1 Penjelasan pin pada port B

  Pin Keterangan PB.7 SCK (SPI Bus Serial Clock) PB.6

  VISO (SPI Bus Master Input/Slave Output) PB.5

  VOSI (SPI Bus Master Output/Slave Input) PB.4 SS (SPI Slave Select Input) PB.3 AIN1 (Analog Comparator Negative Input)OCC

  (Timer/Counter0 Output Compare Match Output) PB.2 AIN0 (Analog Comparator Positive Input)INT2 (External

  Interrupt2 Input) PB.1 T1 (Timer/Counter1 External Counter Input) PB.0 T0 (Timer/Counter0 External Counter Input)XCK (JSART

  External Clock Input/Output)

  3. Port C Pin 22 sampai dengan pin 29 merupakan pin dari port C. Port C sendiri merupakan port input atau output. Setiap pin-nya dapat menyediakan internal pull-

  up

  resistor (dapat diatur per bit). Output buffer port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus di-setting terlebih dahulu sebelum port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang disesuaikan sebagai

  4. Port D Pin 14 sampai dengan pin 20 merupakan pin dari port D. Merupakan 8 bit directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up resistor

  (dapat diatur per bit). Output buffer port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus di-setting terlebih dahulu sebelum port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang disesuaikan sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port D juga memiliki fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel:

Tabel 2.2 Penjelasan pin pada port D

  Pin Keterangan PD.0 RDX (UART input line) PD.1 TDX (UART output line) PD.2

  INT0 (external interrupt 0 input) PD.3

  INT1 (external interrupt 1 input) PD.4 OC1B (Timer/Counter1 output compareB match output) PD.5 OC1A (Timer/Counter1 output compareA match output) PD.6

  ICP (Timer/Counter1 input capture pin) PD.7 OC2 (Timer/Counter2 output compare match output) 2.1.3.

   Peta Memori ATMega 8535

  ATMega8535 memiliki dua jenis memori yaitu Data Memori dan Program Memori ditambah satu fitur tambahan yaitu EEPROM Memori untuk penyimpan data.

  1. Program Memori

  ATMEGA 8535 memiliki On-Chip In-Sistem Reprogrammable Flash Memory untuk menyimpan program. Untuk alasan keamanan, program memori dibagi menjadi dua bagian, yaitu Boot Flash Section dan Application Flash Section. Boot Flash Section digunakan untuk menyimpan program Boot Loader, yaitu program yang harus dijalankan pada saat AVR reset atau pertama kali diaktifkan.

  Application Flash Section

  digunakan untuk menyimpan program aplikasi yang dibuat user. AVR tidak dapat menjalakan program aplikasi ini sebelum menjalankan program Boot Loader. Besarnya memori Boot Flash Section dapat diprogram dari 128 word sampai 1024 word tergantung setting pada konfigurasi bit di register BOOTSZ.

  Jika Boot Loader diproteksi, maka program pada Application Flash Section juga sudah aman.

Gambar 2.2 Peta Memori Program

  2. Data Memori Gambar berikut menunjukkan peta memori SRAM pada ATMEGA 8535.

  Terdapat 608 lokasi address data memori. 96 lokasi address digunakan untuk Register

  

File dan I/O Memori sementara 512 lokasi address lainnya digunakan untuk internal

  data SRAM. Register file terdiri dari 32 general purpose working register, I/O register

Gambar 2.3 Peta Memori Data

  EEPROM Data Memori 3.

  ATMEGA 8535 memiliki EEPROM 8 bit sebesar 512 byte untuk menyimpan data. Loaksinya terpisah dengan sistem address register, data register dan control register yang dibuat khusus untuk EEPROM. Alamat EEPROM dimulai dari $000 sampai $1FF.

Gambar 2.4 EEPROM Data Memori 2.1.4.

   Status Register (SREG) ATMega8535

  Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler.

Gambar 2.5 Status Register ATMega 8535

  1. Bit 7-I : Global Interrupt Enable Bit harus diset untuk meng-enable interupsi. Setelah itu anda dapat mengaktifkan interupsi mana yang akan digunakan dengan cara meng-enable bit kontrol register yang bersangkutan secara individu. Bit akan di-clear apabila terjadi suatu interupsi yang dipicu oleh hardware, dan bit tidak akan mengizinkan terjadinya interupsi, serta akan diset kembali oleh instruksi RETI.

  2. Bit 6-T : Bit Copy Storage Instruksi BLD dan BST menggunakan bit-T sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BTS, dan sebaliknya bit-T dapat disalin kembali ke suatu bit dalam register GPR menggunakan instruksi BDL.

  3. Bit 5-H : half Carry Flag

  4. Bit 4-S : Sigh Bit Bit-S merupakan hasil operasi EOR antara Flag-N (negatif) dan flag V (komplemen dua overflow).

  5. Bit 3-V : Two’s Complement Overflow Flag Bit berguna untuk mendukung operasi aritmatika.

  6. Bit 2-N : Negative Flag Apabila suatu operasi menghasilkan bilangan negatif, maka flag-N akan di-set.

  Bit akan di-set bila hasil operasi yang diperoleh adalah nol.

  8. Bit 0-C : Carry Flag Apabila suatu operasi menghasilkan carry, maka bit akan di-set.

  Port I/O pada mikrokontroler ATMega8535 dapat difungsikan sebagai input ataupun dengan keluaran high atau low. Untuk mengatur fungsi port I/O sebagai input ataupun output perlu dilakukan setting pada DDR dan Port. Logika port I/O dapat berubah-ubah dalam program secara byte atau hanya bit tertentu. Mengubah sebuah keluaran bit I/O dapat dilakukan menggunakan perintah cbi (clear bit I/O) untuk menghasilkan output low atau perintah sbi (set bit I/O) untuk menghasilkan output high.

  Perubahan secara byte dilakukan dengan perintah in atau out yang menggunakan register bantu.

2.2 Modem GSM

  Modem adalah sebuah alat yang dapat membuat komputer terkoneksi dengan internet melalui line telepon standar. Modem banyak digunakan komputer rumah dan jaringan sederhana untuk dapat berkomunikasi dengan jutaan komputer lain dalam lalu lintas internet. Kata Modem itu sendiri merupakan kependekan dari Modulator Demodulator. Ini berarti Modem bekerja dengan cara mengubah informasi digital dari komputer pengirim ke dalam bentuk sinyal analog yang ditransmisikan melaluli line telepon.

  Selanjutnya Modem pada komputer penerima akan mengubah ulang sinyal analog ke sinyal digital. Modem GSM adalah sebuah perangkat Modem Wireless Plug and Play dengan konektivitas GSM/GPRS untuk aplikasi-aplikasi machine to machine. GSM Modul atau Modem GSM adalah jenis khusus dari modem yang menerima kartu SIM, dan mengoperasikan selama berlangganan ke operator mobile, seperti ponsel. Modem GSM dihubungkan dengan suatu interface yang memungkinkan aplikasi seperti SMS untuk mengirim dan menerima pesan melalui Modem. Beberapa fungsi kegunaan modem ini di masyarakat adalah antara lain: · SMS Broadcast application · SMS Quiz application · SMS Polling · SMS auto-reply · M2M integration · Aplikasi Server Pulsa · Telemetri · Payment Point Data Pada pembuatan proyek ini, digunakan Modem GSM Serial Wavecom Fastrack M1306B. Untuk Modem seri ini memiliki dua type konektor yaitu serial dan USB[12].

Gambar 2.6 Modem Gsm Fastrack M1306b

  Spesifikasi modem WAVECOM FASTRACK M1306B: · Dual-band GSM 900/1800MHZ & GPRS Class 10 · GSM Dual Band antenna

  · Standard USB 2.0 interface (untuk USB) · Input Voltage : 5V-32V · Maximum transmitting speed 253KBps · Support AT-Command · Dimensi : 74×54×25mm 2.2.5.

   AT-Command

  AT-Command adalah singkatan dari Attention Command. AT Command adalah perintah yang digunakan dalam komunikasi dengan serial port. Pada awalnya standar perintah ini untuk modem-modem telepon PSTN, akan tetapi perintah ini sekarang dikembangkan juga untuk modem-modem GSM.

  Perintah AT-Command dapat diberikan kepada handphone atau GSM/CDMA modem untuk melakukan sesuatu hal, termasuk untuk mengirim dan menerima SMS.

  Dengan memberikan perintah ini di dalam komputer/mikrokontroller maka perangkat kita dapat melakukan pengiriman atau penerimaan SMS secara otomatis untuk mencapai tujuan tertentu. Untuk memulai suatu perintah AT-Command, diperlukan prefiks “AT” atau “at” dalam setiap perintah AT-Command.[6]

Tabel 2.3 Tabel Set AT-Command 2.2.6.

   Short Message Service (SMS)

  Short Message Service (SMS) merupakan salah satu tipe Instant Messaging (IM) yang memungkinkan user untuk bertukar pesan singkat. SMS dihantarkan pada channel signal Global System for Mobile Communication (GSM). Dewasa ini perkembangan teknologi yang sangat pesat membuat teknologi SMS ini banyak digemari masyarakat karena teknologi ini bersifat praktis, murah dan mudah untuk digunakan.

  Sebuah pesan SMS maksimal terdiri dari 140 bytes, yang berarti dapat memuat 140 karakter 8-bit, 160 karakter 7-bit atau 70 karakter 16-bit untuk bahasa Jepang, bahasa Mandarin dan bahasa Korea yang memakai Hanzi (Aksara Kanji/Hanja). User pun dapat mengirim pesan SMS yang lebih dari 140 bytes dengan catatan membayar lebih dari sekali biaya kirim SMS. [5] 21 SMS menjamin pengiriman pesan oleh jaringan, jika terjadi kegagalan maka disimpan di jaringan atau yang disebut SMS Center (SMSC). Di SMSC pesan disimpan dan dicoba untuk mengirimkannya selama beberapa kali. Batas waktu yang telah ditentukan untuk menyimpannya biasanya sekitar 1 hari atau 2 hari, lalu pesan dihapus.

  2.2.7. Database

  Database merupakan sekumpulan data yang terintegrasi yang diorganisasi untuk memenuhi kebutuhan pemakai untuk keperluan organisasi yang dimana dapat dipakai hanya sekali atau berulang yang dimana dalam bentuk digital. Salah satu komponen penting dalam penggunaan database adalah DataBase Management System (DBMS).

  DBMS ini bertugas untuk menangani semua akses ke database dan bertanggug jawab untuk menerapkan pemeriksaan otorisasi dan prosedur validasi.

  2.2.8. Microsoft Office Access

  Salah satu software atau aplikasi yang banyak digunakan untuk membuat suatu database sederhana adalah Microsoft Access. Micosoft Access merupakan software yang dikeluarkan oleh microsoft untuk membuat aplikasi database. Sofware ini cocok untuk kalangan industri kecil atau rumah tangga, karena kapasitas datanya yang mencapai 4 GB. Program ini banyak dipakai karena kemudahannya dalam mengolah database.

2.3 LCD

  LCD merupakan salah satu perangkat penampil yang sekarang ini mulai banyak digunakan. Penampil LCD mulai dirasakan menggantikan fungsi dari penampil CRT (Cathode Ray Tube), yang sudah berpuluh-puluh tahun digunakan manusia sebagai penampil gambar/text baik monokrom (hitam dan putih), maupun yang berwarna.

  Teknologi LCD memberikan keuntungan dibandingkan dengan teknologi CRT, kaena pada dasarnya, CRT adalah tabung triode yang digunakan sebelum transistor ditemukan.

  Beberapa keuntungan LCD dibandingkan dengan CRT adalah konsumsi daya yang relative kecil, lebih ringan, tampilan yang lebih bagus, dan ketika berlama-lama di depan monitor, monitor CRT lebih cepat memberikan kejenuhan pada mata dibandingkan dengan LCD

Gambar 2.7 LCD

  LCD memanfaatkan silicon atau gallium dalam bentuk Kristal cair sebagai pemendar cahaya. Pada layar LCD, setiap matrik adalah susunan dua dimensi piksel yang dibagi dalam baris dan kolom. Dengan demikian, setiap pertemuan baris dan kolom adalah sebuah LED terdapat sebuah bidang latar (backplane), yang merupakan lempengan kaca bagian belakang dengan sisi dalam yang ditutupi oleh lapisan elektroda trasparan. Dalam keadaan normal, cairan yang digunakan memiliki warna cerah.

  Daerah-daerah tertentu pada cairan akan berubah warnanya menjadi hitam ketika tegangan diterapkan antara bidang latar dan pola elektroda yang terdapat pad sisi dalam lempeng kaca bagian depan.

  Keunggulan LCD adalah hanya menarik arus yang kecil (beberapa microampere), sehingga alat atau sistem menjadi portable karena dapat menggunakan catu daya yang kecil. Keunggulan lainnya adalah tampilan yang diperlihatkan dapat dibaca dengan mudah di bawah terang sinar matahari. Di bawah sinar cahaya yang remang-remang dalam kondisi gelap, sebuah lampu (berupa LED) harus dipasang dibelakang layar tampilan.

  LCD yang digunakan adalah jenis LCD yang mena mpilkan data dengan 2 baris tampilan pada display. Keuntungan dari LCD ini adalah :

  1. Dapat menampilkan karakter ASCII, sehingga dapat memudahkan untuk membuat program tampilan.

  2. Mudah dihubungkan dengan port I/O karena hanya mengunakan 8 bit data dan 3 bit control.

  3. Ukuran modul yang proporsional.

  4. Daya yang digunakan relative sangat kecil.

Gambar 2.8 Konfigurasi Pin LCD

  Operasi dasar pada LCD terdiri dari empat, yaitu instruksi mengakses proses internal, instruksi menulis data, instruksi membaca kondisi sibuk, dan instruksi membaca data. ROM pembangkit sebanyak 192 tipe karakter, tiap karakter dengan huruf 5x7 dot matrik. Kapasitas pembangkit RAM 8 tipe karakter (membaca program), maksimum pembacaan 80x8 bit tampilan data. Perintah utama LCD adalah Display Clear, Cursor Home, Display ON/OFF, Display Character Blink, Cursor Shift, dan Display Shift. Tabel 2.3 menunjukkan operasi dasar LCD

Tabel 2.4 Operasi Dasar LCD

  RS R/W Operasi

  Input Instruksi ke LCD

  1 Membaca Status Flag (DB

  7 ) dan alamat counter (DB ke

  DB

  6 )

  1 Menulis Data

  1

  1 Membaca Data

Tabel 2.5 Konfigurasi Pin LCD

  Pin Keterangan Konfigurasi Hubung No.

  1 GND Ground

  2 VCC Tegangan +5VDC

  3 VEE Ground

  4 RS Kendali RS

  5 RW Ground

  6 E Kendali E/Enable

  7 D0 Bit 0

  8 D1 Bit 1

  9 D2 Bit 2

  10 D3 Bit 3

  11 D4 Bit 4

  12 D5 Bit 5

  13 D6 Bit 6

  14 D7 Bit 7

  15 A Anoda (+5VDC)

  16 K Katoda (Ground)

Tabel 2.6 Konfigurasi LCD

  Pin Bilangan biner Keterangan

  RS Inisialisasi

  1 Data RW Tulis LCD / W (write)

  1 Baca LCD / R (read) E Pintu data terbuka

  1 Pintu data tertutup Lapisan film yang berisis Kristal cair diletakkan di antara dua lempeng kaca yang telah ditanami elektroda logam transparan. Saat teganga dicatukan pada beberapa pasang elektroda, molekul – molekul Kristal cair akan menyusun diri agar cahaya yang mengenainya akan dipantulkan atau diserap. Dari hasil pemantulan atau penyerapan cahaya tersebut akan terbentuk pola huruf, angka, atau gambar sesuai bagian yang di aktifka.

  LCD membutuhkan tegangan dan daya yang kecil sehingga sangat popular untuk aplikasi pada kalkulator, arloji digital, dan instrument elektronika lain seperti Global Positioning System (GPS), baragraph display dan multimeter digital. LCD umumnya dikemas dalam bentuk Dual In Line Package (DIP) dan mempunyai kemampuan untuk menampilkan beberapa kolom dan baris dalam satu panel. Untuk membentuk pola, baik karakter maupun gambar pada kolom dan baris secara bersamaan digunakan metode Screening.

  Metode screening adalah mengaktifkan daerah perpotongan suatu kolo dan suatu baris secara bergantian dan cepat sehingga seolah-olah aktif semua. Penggunaan metode ini dimaksudkan untuk menghemat jalur yang digunakan untuk mengaktifkan panel LCD. Saat ini telah dikembangkan berbagai jenis LCD, mulai jenis LCD biasa, Passive Matrix LCD (PMLCD), hingga Thin-Film Transistor Active Matrix (TFT-AMLCD).

  Kemampuan LCD juga telah ditingkatkan daru yang monokrom hingga yang mampu menampilkan ribuan warna.

2.4 Sensor Ultrasonic

  Sensor ultrasonic adalah sensor yang bekerja berdasarkan prinsip pantulan gelombang dimana sensor menghasilkan gelombang pantulan ke benda yang kemudian menangkapnya kembali dengan perbedaan waktu sebagai dasar perhitungannya.. Perbedaan waktu antara gelombang pantulan yang di kembalikan dan yang diterima kembali adalah berbanding lurus dengan jarak atau tinggi objek yang memantulkannya..

  Jenis objek yang dapat di indranya adalah padat, cair dan butiran. Tanpa kontak jarak 2 cm sampai 3 meter dan dapat dengan mudah dihubungkan dengan mikrokontroler malalui satu pin I/O saja. Dimensi : 2,6 cm (p) x 4,1 cm (l) x 6,2 cm (t)

  Spesifikasi: :  Memiliki 2 jenis antarmuka yang dapat aktif bersamaan, yaitu I2C-bus (fSCL maks. 65 kHz) dan pulse width (10µs/mm).

   8 modul dapat digunakan bersama dalam satu sistem I2C-bus yang hanya membutuhkan 2 pin I/O mikrokontroler saja.

   Membutuhkan catu daya tunggal +5 VDC, dengan konsumsi arus 17 mA typ (tanpa sensor infrared ranger).

   Terdapat 2 mode operasi yaitu full operation dan reduced operation. Pada mode reduced operation beberapa komponen ultrasonic ranger akan dimatikan (saat idle) dan konsumsi arus mejadi 13 mA typ.

   Terdiri dari sebuah ultrasonic ranger dengan spesifikasi: Mengukur jarak dari 2 cm hingga 3 m tanpa dead zone atau blank spot. Obyek dalam jarak 0 - 2 cm dideteksi sebagai 2 cm. Menggunakan burst sinyal kotak 16 Vp-p dengan frekuensi 40 kHz.

   Dapat dihubungkan dengan maksimum 2 buah infrared ranger Sharp GP2D12 yang memiliki jangkauan pengukuran 10 - 80 cm.

   Data keluaran sudah siap pakai dalam satuan mm (untuk antarmuka I2C) sehingga mengurangi beban mikrokontroler.

   Ketelitian pengukuran jarak (ranger) adalah 5mm.  Siklus pengukuran yang cepat, pembacaan dapat dilakukan tiap 25 ms (40 Hz rate). Memerlukan input trigger berupa pulsa negatif TTL (20µs min.) untuk

   antarmuka pulse width.

   Tersedia 1 pin output yang menunjukkan aktifitas sensor, dapat tidak dimanfaatkan.

   Tidak diperlukan waktu tunda sebelum melakukan pengukuran berikutnya.

   Kompensasi kesalahan dapat diatur secara manual untuk mengurangi pengaruh faktor perubahan suhu lingkungan dan faktor reflektifitas obyek.

  Blok diagram ini di lengkapi dengan tampilan seven segment agar kita bisa melihat hasilnya tanpa mengaflikasikan ke sebuah alat.

Gambar 2.10 Blok Sensor Ultrasonic dengan Tampilan Seven Segment

  Kita lihat secara seksama cara kerja sensor ultrasonic dengan cara memantulkan gelombang ke sebuah objek kemudian data yang di pantulkan menentukan jarak dari sensor ke objek.

  Untuk pengaktifan sensor ultrasonik, hubungkan Pin Vss ke Ground, kemudian pin Vdd ke catu daya yang keluarannya sudah diset 5V, setelah batere dihubungkan dengan IC Regulator 7805, tinggal Pin SIG dihubungkan ke pin di Mikrokontroller, buat sensor ke port P1.7, sedangkan indikator output P3.7

Gambar 2.12. Skematik hubungan pin

2.5 Komunikasi Serial Pada PC / laptop standar, biasanya terdapat sebuah port untuk komunikasi serial.

  Pada prinsipnya, komunikasi serial ialah komunikasi dimana pengiriman data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi parallel seperti pada port printer yang mampu mengirim 8 bit sekaligus dalam sekali detak. Beberapa contoh penerapan komunikasi serial ialah mouse, scanner dan sistem akuisisi data yang terhubung ke port serial COM1/COM2. Sistem antar muka komunikasi serial RS232 sering digunakan sebagai antar muka antara komputer dengan mikrokontroler. Agar level tegangan data serial dari mikrokontroler setara dengan level tegangan komunikasi port serial PC, diperlukan MAX232 untuk mengubah ke tegangan TTL/CMOS logic level RS232. MAX232 menggunakan sistim komunikasi simplex sehingga difungsikan untuk mengubah dari arus dan tegangan logika TTL menjadi arus tegangan logika komputer (RS232).

2.5.1 Karakteristik Sinyal Port Serial

  Gambar dibawah adalah contoh level tegangan RS232 pada pengiriman huruf “A” dalam format ASCII tanpa bit paritas.

  Standar sinyal komunikasi serial yang banyak digunakan adalah Standar RS232 yang dikembangkan oleh Electronic Industri Association (EIA/TIA) yang pertama kali dipublikasikan pada tahun 1962.Ini terjadi jauh sebelum IC TTL populer sehingga sinyal ini tidak ada hubungan sama sekali dengan level tegangan IC TTL. Standar ini hanya menyangkut komunikasi antara (Data Terminal Equipment – DTE) dengan alat – alat pelengkap komputer (Data Circuit Terminating Equipment – DCE). Standar sinyal RS232 memiliki ketentuan level tegangan sebagai berikut :

  • Logika 1 disebut ‘Mark’ terletak antara -3 Volt sampai -25 Volt • Logika ‘0’ disebut ‘space’ terletak antara +3 Volt samapai +25 Volt.
  • Daerah tegangan antara -3 Volt sampai +3 Volt adalah invalid level, yaitu daerah tegangan yang tidak memiliki level logika pasti sehingga harus dihindari. Demikian juga level tegangan dibawah -25 Volt dan diatas +25 Volt juga harus dihindari karena bisa merusak line driver pada saluran RS232

Gambar 2.13 Level Tegangan RS232 pada Pengiriman Huruf “A” Tanpa Bit Paritas.

2.5.2 Port Komunikasi Serial

  Komunikasi serial membutuhkan port sebagai saluran data. Berikut tampil port serial DB9 yang umum digunakan sebagai port serial

Gambar 2.14 Port DB9 JantanGambar 2.15 Port DB9 Betina

  Untuk menghubungkan antara 2 buah PC, biasanya digunakan format null mode, dimana pin TxD dihubungkan dengan RxD pasangan, pin Sinyal ground (5) dihubungkan dengan SG di pasangan, dan masing masing pin DTR, DSR dan CD dihubung singkat, dan pin RTS dan CTS dihubung singkat di setiap devais.

  Gambar.2.16 Susunan Pin Konektor DB9

Tabel 2.7 Fungsi Susunan Konektor DB9

  Untuk dapat menggunakan port serial harus diketahui dahulu alamat dari port serial tersebut. Biasanya tersedia dua port serial pada CPU, yaitu COM1 dan COM2. Base Address COM1 biasanya 1016 (3F8h) dan COM2 biasanya 760 (2F8h). Alamat tersebut kita bisa melihat pada peta memori tempat menyimpan alamat tersebut, yaitu memori 0000.0400h untuk COM1 dan 0000.0402h untuk COM2. Berikut adalah nama – nama register yang digunakan beserta alamatnya.

2.5.3 Koneksi Ke RS232 Port

  Koneksi TXD dan RXD MCU MCS-51 dengan port serial komputer selain level tegangannya harus disesuaikan, cara koneksikan juga perlu diperhatikan. Ada semacam protokol komunikasi, bila DTE hendak menghubungi DCE atau sebaliknya, untuk ’DCE’ yang berupa MCU MCS-51 ini, protokol perlu diakali, lebih sederhana prosesnya, sehingga tidak memrlukan software yang rumit, tetapi masih tetap handal.

  Selain sinyal data, terdapat sinyal – sinyal protokol komunikasi serial pada komputer dan dihubungkan keluar melalui konektor male DB9 (komputer baru) dan DB25 (Komputer lama), nama sinyal – sinyal tersebut adalah: • RD, Receive Data (RXD).

  • TD, Transmit Data • SG, Signal Ground • DTR, Data Terminal Ready • DSR, Data Set Ready • CD, Carrier Detect • RTS, Request To Send • CTS, Clear To Send.

Tabel 2.8 Koneksi Null Mode Komunikasi asinkron yang sederhana yang disebut sebagai null modem, adalah dengan menghubungkan pin- pin DTR, DSR dan CD serta RTS dengan CTS. Sedangkan sinyal data input masuk RD dan sinyal transmit output adalah TD. Konvertor level untuk saat ini tersedia dalam bentuk ic, contoh adalah ICL232 dari Harris semikonduktor, MAX232 dari Maxim.

Gambar 2.17 IC MAX232

  Protokol standar yang mengatur komunikasi melalui serial port disebut RS-232 (Recommended Standard-232) yang dikembangkan oleh EIA (Electronic Industries Association). Interfacing RS-232 menggunakan komunikasi asyncronous di mana sinyal clock tidak dikirimkan bersamaan dengan data. Setiap word data disingkronisasikan menggunakan sebuah start bit dan sebuah stop bit. Jadi, sebuah frame data terdiri dari sebuah start bit, diikuti bit-bit data dan diakhiri dengan stop bit. Jumlah bit data yang digunakan dalam komunikasi serial adalah 8 bit. Encoding yang digunakan dalam komunikasi serial adalah NRZ (Non-Return-to-Zero), di mana bit 1 dikirimkan sebagai high value dan bit 0 sebagai low value.

  Komunikasi serial merupakan hal yang penting dalam system embedded, karena dengan komunikasi serial kita dapat dengan mudah menghubungkan mikrokontroler dengan devais lainnya.

  Port serial pada mikrokontroler terdiri atas dua pin yaitu RXD dan TXD. RXD berfungsi untuk mengirim data dari komputer atau perangkat lainnya, standard komunikasi serial untuk computer adalah RS-232, RS-232 mempunyai standard tegangan yang berbeda dengan serial port mikrokontroler, sehingga agar sesuai dengan RS-232 maka dibutuhkan suatu rangkaian level converter, IC yang digunakan bermacam-macam, tapi yang paling mudah dan sering digunakan ialah IC MAX232/HIN232.

  Pada prinsipnya, komunikasi serial ialah komunikasi dimana pengiriman data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi parallel seperti pada port printer yang mampu mengirim 8 bit sekaligus dalam sekali detak. Beberapa contoh komunikasi serial ialah mouse, scanner, dan system akuisisi data yang terhubung ke port COM1/COM2.

  Jika ingin menggunakan mikrokontroler untuk berkomunikasi dengan komputer atau device lainnya maka Rx dan Tx tidak bisa langsung dihubungkan begitu saja dengan device tersebut karena level sinyal yang digunakan berbeda-beda. Contohnya komunikasi serial untuk komputer menggunakan sinyal RS232 yaitu sinyal yang gelombang level sinyalnya antara +25V sampai -25V. Oleh karena itu, jika ingin diharapkan terjadi komunikasi antara mikrokontroler dengan komputer dibutuhkan sebuah buffer yang dapat mengubah sinyal level TTL dari mikrokontroler menjadi sinyal level RS232. Salah satu Buffer yang sering digunakan adalah IC MAX232CPE dan menggunakan transistor NPN maupun PNP.

Gambar 2.18 merupakan penggunaan ic max 232 dalam rangkaian sebagai komunikasi serial.

2.6 Bahasa Pemograman Mikrokontroler

  Pengembangan sebuah sistem menggunakan mikrokontroler AVR buatan ATMEL menggunakan software AVR STUDIO dan CodeVisionAVR. AVR STUDIO merupakan software yang digunakan untuk bahasa assembly yang mempunyai fungsi yang sangat lengkap, yaitu digunakan untuk menulis program, kompilasi, simulasi dan download program ke IC mikrokontroler AVR. Sedangkan CodeVisionAVR merupakan

  

software C-cross Compiler, dimana program dapat ditulis dalam bahasa C, CodeVision

  memiliki IDE (Integrated Development Environment) yang lengkap, dimana penulisan program, compile, link, pembuatan kode mesin (assembler) dan download program ke chip AVR dapat dilakukan dengan CodeVision, selain itu ada fasilitas terminal, yaitu melakukan komunikasi serial dengan mikrokontroler yang sudah di program. Proses

  

download program ke IC mikrokontroler AVR dapat menggunakan Sistem

programmable Flash on-Chip

  mengizinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI.

2.7. Dasar Pemrograman ATMega8535 dengan Bahasa C 2.7.1. Pendahuluan

  C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi (bahasa yang berorientasi pada manusia). Seperti yang diketahui, bahasa tingkat tinggi mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk membuat program pada berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin, sebab setiap perintahnya sangat bergantung pada jenis mesin.

  Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI (American National Standart Institute) yang dijadikan acuan oleh para pembuat kompiler.

2.7.2 Pengenal Pada Bahasa C

  Pengenal merupakan sebuah nama yang didefinisikan oleh program untuk menunjukkan sebuah konstanta, variabel, fungsi, label, atau tipe data khusus. Pemberian pengenal pada program harus memenuhi syarat-syarat di bawah ini:

  a. Karakter pertama tidak menggunakan angka; b. Karakter kedua berupa huruf, angka, garis bawah,;

  c. Tidak menggunakan spasi;

  3. Nama pengenal

  Signed short int Short, signed short -32.768 s/d 32.767

  Signed char Char -128 s/d 127 Signed int Int -32.768 s/d 32.767

  

Pemodifikasi Tipe Persamaan Jangkauan Nilai

Tabel 2.9 Tipe Data

  

signed menyebabkan nilai tipe data bernilai negatif dan memungkinkan data bernilai

positif. Perbedaan nilai tipe data dapat kita lihat pada tabel di bawah ini.

  Pemberian signed dan unsigned pada tipe data menyebabkan jangkauan dari tipe berubah. Pada unsigned menyebabkan tipe data akan selalu bernilai positif sedangkan

  2. Nama+2

  d. Bersifat case sensitive, yaitu huruf kapital dan huruf kecil dianggap berbeda;

  1. 2nama

  4. Nama_pengenal Contoh penggunaan pengenal yang tidak diperbolehkan:

  3. Nama2

  1. Nama 2. _nama

  Contoh menggunakan pengenal yang diperbolehkan:

  e. Tidak boleh menggunakan kata-kata yang merupakan sintaks atau operator dari bahasa C.

2.7.3 Tipe Data

  Signed long int Long, long int, signed -2.147.483.648 s/d long 2.147.483.647 Unsigned char Tidak ada 0 s/d 255

  Unsigned int Unsigned 0 s/d 65.535 Unsigned short int Unsigned short 0 s/d 65.535

  Unsigned long int Unsigned long 0 s/d 4.294.967.295 Contoh program yang menunjukkan pengaruh signed dan unsigned pada hasil program,

  #include <mega.8535> #include <delay.h> Void main (void) { int a, b; // pengenal unsigned d, e; a = 50; b = 40; d = 50; e = 40; PORTC = 0x00; DDRC = 0Xff; //set PORTC sebagai output PORTB = 0x00; DDRB = 0Xff; // set PORTB sebagai output

  While(1)

  PORTB = a – b; PORTC = d – e; delay_ms(100); };

  }

  Program di atas akan memberikan data di PORTB = 10 (desimal) sedangkan PORTC = -10 (desimal) karena PORT mikrokontroler tidak dapat mengeluarkan nilai negatif maka PORTB dan PORTC akan memiliki keluaran 0x0A tapi pada kenyataannya PORTC lebih banyak memakan memori karena tanda negatif tersebut disimpan dalam memori.

  Pada program di atas terdapat tulisan //set PORTB sebagai output yang berguna sebagai komentar yang mana komentar ini tidak mempengaruhi hasil dari program. Ada dua cara penulisan komentar pada pemrograman bahasa C, yaitu dengan mengawali komentar dengan tanda “ // “ ( untuk komentar yang hanya satu baris ) dan mengawali komentar dengan tanda “ /* “ dan mengakhiri komentar dengan tanda “ */ “.

  Contoh:

  // ini adalah komentar /* ini adalah komentar Yang lebih panjang Dan lebih panjang lagi */

2.7.4. Header

  Header digunakan untuk menginstruksikan kompiler untuk menyisipkan file

  lain. Di dalam file header ini tersimpan deklarasi, fungsi, variable, dan jenis mikrokontroler yang kita gunakan (pada software Code Vision AVR). File-file yang ber akhiran .h disebut file header.

  File header yang digunakan untuk mendefinisikan jenis mikrokontroler yang

  digunakan berfungsi sebagai pengarah yang mana pendeklarasian register-register yang terdapat program difungsikan untuk jenis mikrokontroler apa yang digunakan ( pada software Code Vision AVR ). Contoh:

  #include <mega8535.h> #include<delay.h> #include <stdio. h> 2.7.5.

   Operator Aritmatika Operator aritmatika digunakan untuk melakukan proses perhitungan matematika.

  Fungsi-fungsi matematika yang terdapat pada bahasa C dapat dilihat pada tabel di bawah ini.

Tabel 2.10 Operator Aritmatika

  Operator Keterangan Operator untuk penjumlahan + Operator untuk pengurangan -

  Operator untuk perkalian * / Operator untuk pembagian

  % Operator untuk sisa bagi Contoh penggunaan operator aritmatika dapat dilihat di bawah ini.

  #include < mega8535.h> #include <delay.h> void main (void) { unsigned char a, b; a = 0x03; b = 0x05; DDRC 0XFF; // PORTC digunakan sebagai output while (1) {

  PORTC = (a * b); delay_ms(500); } }

2.7.6. Operator Pembanding

  Operator pembanding digunakan untuk membandingkan 2 data atau lebih. Hasil operator akan di jalankan jika pernyataan benar dan tidak dijalankan jika salah.

  Operator pembanding dapat kita lihat pada tabel di bawah ini.

Tabel 2.11 Operator Pembanding

  Operator Contoh Keterangan = = x = = y Benar jika kedua data bernilai sama

  != x != y Bernilai benar jika kedua data tidak sama > x > y Bernilai benar jika nilai x lebih besar dari pada y < x < y Bernilai jika x lebih kecil dari y

  >= x >= y Bernilai jika x lebih besar atau sama dengan y

  <= x <= y Bernilai benar jika x lebih kecil atau sama dengan y 2.7.7.

   Operator Logika

  Operator logika digunakan untuk membentuk logika dari dua pernyataan atau lebih. Operator logika dapat dilihat pada tabel di bawah ini.

Tabel 2.12 Operator Logika

  Operator Keterangan && Logika AND | | Logika OR ! Logika NOT

  Contoh program:

  #include < mega8535.h> #include <delay.h> void main (void) { DDRC = 0XFF; // sebagai output DDRA = 0X00; // sebagai input while (1) { If ( PINA.0 == 1 )|| (PINA.1 == 1 ){ PORTC = 0XFF; delay_ms(500); PORTC = 0X00; Delay_ms(500); }

  PORTC = 0x00; delay_ms(500); } }

  }

  Penjelasan program: Apabila PINA.0 atau PINA.1 diberi input logika 1 maka PORTC akan mengeluarkan logika 0xff kemudian logika 0x00 secara bergantian dengan selang waktu

  0,5 s. dan apabila bukan PINA.1 atau PINA.0 diberi logika 1 maka PORTC akan mengeluarkan logika 0x00.

2.7.8. Operator Bitwise

  Operator logika ini bekerja pada level bit. Perbedaan operator bitwise dengan operator logika adalah pada operator logika akan menghasilkan pernyataan benar atau salah sedangkan pada operator bitwise akan menghasilkan data biner. Operator bitwise dapat dilihat pada tabel di bawah ini.

Tabel 2.13 Operator Bitwise

  Operator Keterangan & Operasi AND level bit

  | Operasi OR level bit ^ Operasi XOR level bit ~ Operator NOT level bit

  >> Operator geser kanan << Operator geser kiri Contoh program:

  #include <mega8535.h> #include <delay.h> void main (void) { unsigned char a,b,c; DDRC = 0xff; //portc sebagai output while (1) { a = 0x12; b = 0x34; c = a & b; PORTC = c; delay_ms(500); };

  }

  Penjelasan program:

  a = 0x12 = 0001 0010 b = 0x32 = 0011 0010

  • a & b = 0x12 = 0001 0110 2.7.9.

   Operator Penugasan dan Operator Majemuk

  Operator ini digunakan untuk memberikan nilai atau manipulasi data sebuah variabel. Operator penguasa dapat kita lihat pada tabel di bawah ini:

Tabel 2.14 Operator Penugasan

  Operator Keterangan = Memberikan nilai variabel

  • = Menambahkan nilai variabel
    • = Mengurangi nilai variabel
      • = Mengalikan nilai variabel /= Membagi nilai variable %= Memperoleh sisa bagi

  Contoh: a += 2 ; artinya nilai variabel a berubah menjadi a = a + 2 b *= 4; artinya nilai variabel b berubah menjadi b = b * 4 selain operator penugasan di atas juga ada operator penugasan yang berkaitan dengan operator bitwise seperti pada tabel di bawah ini:

Tabel 2.15 Operator Majemuk

  Operator Contoh Arti &= x &= 1 Variabel x di AND kan dengan 1 |= x |= 1 Variabel x di OR kan dengan 1 ~= x ~= 1 x = ~ (1) ; x = 0xFE ^= x ^= 1 Variabel x di XOR kan dengan 1 <<= x <<= 1 Variabel x digeser kiri 1 kali >>= x >>= 1 Variabel x digeser kanan 1 kali

  2.7.10. Operator Penambahan dan Pengurangan

  Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel dengan selisih 11. Operator ini dapat dilihat pada tabel di bawah ini.

Tabel 2.16 Operator Penambahan dan Pengurangan

  Operator Keterangan Penambahan 1 pada variable ++ Pengurangan --

  Contoh:

  a = 1; b = 2; a ++; b --;

  Penjelasan: Maka operator a++ akan mengubah variabel a dari satu menjadi 2, sedangkan operator B— akan mengubah variabel b dari 2 menjadi 1.

  2.7.11. Pernyataan If dan If Bersarang

  Pernyataan if digunakan untuk pengambilan keputusan terhadap 2 atau lebih pernyataan dengan menghasilkan pernyataan benar atau salah. Jika pernyataan benar maka akan di jalankan instruksi pada blok nya, sedangkan jika pernyataan tidak benar maka instruksi yang pada blok lain yang dijalankan ( sesuai dengan arah programnya).

  Bentuk pernyataan IF adalah sebagai berikut: 1. Bentuk sederhana

  if (kondisi){

  Pernyataan_1; Pernyataan_2; ............ }

  2. Pernyataan else

  if (kondisi) { Pernyataan_1; ............;

  } else { Pernyataan_2;

  ............; }

  3. If di dalam if Pernyataan ini sering disebut nested if atau if bersarang. Salah satu bentuknya adalah sebagai berikut:

  if (kondisi1) Pernyataan_1; else if (kondisi2) pernyataan_2; else if (kondisi3) pernyataan_3; else pernyataan;