• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI 2.1 Water Flow Sensor G12 - Alat Ukur Flowmeter dengan Water flow Sensor G1/2 Berbasis Mikrokontroler ATMega16

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB II LANDASAN TEORI 2.1 Water Flow Sensor G12 - Alat Ukur Flowmeter dengan Water flow Sensor G1/2 Berbasis Mikrokontroler ATMega16"

Copied!
21
0
0

Teks penuh

(1)

BAB II

LANDASAN TEORI

2.1 Water Flow Sensor G1/2

Water Flow Sensor ini terdiri terbuat dari plastik dimana didalamnya terdapat rotor dan sensor Hall Effect. Saat air mengalir melewati rotor, rotor akan berputar. Kecepatan putaran ini akan sesuai dengan besarnya aliran air. Output dari sensor Hall Effect merupakan pulsa. Kelebihan sensor ini adalah hanya membutuhkan 1 sinyal (SIG) selain jalur 5V dc dan

Ground. Perhatikan gambar di bawah ini.

Gambar 2.1 Water Flow Sensor G1/2

(2)

Tabel 2.1 Komponen Sensor

(3)

Water Flow Sensor ini terdiri atas katup plastik, rotor air, dan sebuah sensor Hall-Effect. Prinsip kerja sensor ini adalah dengan memanfaatkan fenomena efek Hall. Efek Hall ini didasarkan pada efek medan magnetik terhadap partikel bermuatan yang bergerak. Ketika ada arus listrik yang mengalir pada device efek Hall yang ditempatkan dalam medan magnet yang arahnya tegak lurus arus listrik, pergerakan pembawa muatan akan berbelok ke salah satu sisi dan menghasilkan medan listrik. Medan listrik terus membesar hingga gaya Lorentz yang bekerja pada partikel menjadi nol. Perbedaan potensial antara kedua sisi divais tersebut disebut potensial Hall. Potensial Hall ini sebanding dengan medan magnet dan arus listrik yang melalui device.

2.2 Mikrokontroler AVR AT MEGA 16

Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu chip. Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah terdapat atau berisikan ROM ( Read-Only Memory), RAM (Read-Write Memory), beberapa port masukan maupun keluaran, dan beberapa peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC (converter Digital to Analog) dan serial komunikasi. Salah satu mikrokontroler yang banyak digunakan saat ini yaitu mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instuction Set Computer) 8 bit berdasarkan arsitektur Harvard. Secara umum mikrokontroler AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega dan ATtiny. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fiturnya Seperti mikroprosesor pada umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu serta komponen kendali lainnya. Berbeda dengan mikroprosesor, mikrokontroler menyediakan memori dalam chip yang sama dengen prosesornya (in chip).

AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving, ADC dan PWM internal. AVR juga mempunyai In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI. ATMega16. ATMega16 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi konsumsi daya versus kecepatan proses.

(4)

1. Advanced RISC Architecture

 130 Powerful Instructions – Most Single Clock Cycle Execution  32 x 8 General Purpose Fully Static Operation

Up to 16 MIPS Throughput at 16 MHz  On-chip 2-cycle Multiplier

2. Nonvolatile Program and Data Memories

8K Bytes of In-System Self-Programmable Flash

Optional Boot Code Section with Independent Lock Bits

512 Bytes EEPROM

512 Bytes Internal SRAM

 Programming Lock for Software Security 3. Peripheral Features

Two 8-bit Timer/Counters with Separate Prescalers and Compare Mode

Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes

One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture

Mode

Real Time Counter with Separate Oscillator

Four PWM Channels

8-channel, 10-bit ADC

Byte-oriented Two-wire Serial Interface

Programmable Serial USART

4. Special Microcontroller Features

Power-on Reset and Programmable Brown-out Detection

Internal Calibrated RC Oscillator

External and Internal Interrupt Sources

Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby and

Extended Standby

5. I/O and Package

32 Programmable I/O Lines

40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF

6. Operating Voltages

2.7 - 5.5V for Atmega16L

(5)

2.2.1 Konfigurasi Pena (Pin) Atmega16

Konfigurasi pena (pin) mikrokontroler Atmega16 dengan kemasan 40-pena dapat dilihat pada Gambar 2.2. Dari gambar tersebut dapat terlihat ATMega16 memiliki 8 pena untuk masing-masing bandar A (Port A), bandar B (Port B), bandar C (Port C), dan bandar D (Port D).

Gambar 2.3 Pin ATMEGA 16 2.2.2 Deskripsi Mikrokontroler Atmega16

• VCC (Power Supply) dan GND(Ground) • Bandar A (PA7-PA0)

• Bandar B (PB7-PB0) • Bandar C (PC7-PC0) • Bandar D (PD7-PD0) • RESET (Reset input) • XTAL1 (Input Oscillator)

2.2.3 Peta Memori ATMega16 1. Memori Program

(6)

program boot dan aplikasi. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor.

Gambar 2.4 Peta Memori 2. Memori Data (SRAM)

Memori data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32 register umum, 64 buah register I/O dan 1 Kbyte SRAM internal. General purpose register menempati alamat data terbawah, yaitu $00 sampai $1F. Sedangkan memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai fitur mikrokontroler seperti kontrol register, timer/counter , fungsi-fungsi I/O, dan sebagainya. 1024 alamat berikutnya mulai dari $60 hingga $45F digunakan untuk SRAM internal.

2.3 MAX 232

(7)

Gambar 2.6 IC MAX 232

IC MAX232 memiliki dua charge-pump internal yang berfungsi sebagai konverter tegangan +5V menjadi ±10V saat tanpa beban untuk operasi driver RS232. Konverter pertama menggunakan kapasitor C1 untuk menggandakan tegangan input +5V menjadi +10V saat C3 berada pada output V+. Konverter kedua menggunakan kapasitor C2 untuk merubah +10V menjadi -10V saat C4 berada pada output V-. Berikut skematik rangkaian media komunikasi serialnya.

Gambar 2.7 Skematik Rangkaian Media Komunikasi Serial

2.4 Komunikasi Serial

Komunikasi serial ialah pengiriman data secara serial (data dikirim satu persatu secara berurutan dan bergantian), sehingga komunikasi serial lebih lambat daripada komunikasi paralel.

(8)

2.4.1 Prinsip Kerja Port Serial

Perangkat yang menggunakan kabel serial untuk komunikasinya dibagi ke dalam dua kategori. Yaitu DCE (Data Communications Equipment) dan DTE (Data Terminal Equipment). Data Communications Equipment adalah perangkat seperti modem, TA adapter,

plotter dan lain-lain, sedangkan Data Terminal Equipment adalah komputer atau terminal. Untuk menjamin terjadinya sebuah transfer data yang cepat dan realible antara 2 peralatan, lalu lintas data harus dikoordinasi dengan baik. Tidak seperti printer yang selalu mencetak setiap karakter yang diterimanya. Namun dalam komunikasi serial, bisa saja peralatan tidak memiliki lagi tampungan data yang diterimanya. Sehingga harus memberitahukan PC untuk tidak lagi mengirim data. Hingga modem selesai mengerjakan semua tugasnya dan kembali memberitahukan PC untuk kembali mengirim data berikutnya setelah modem siap. Pada tabel berikut terdapat nama pin yang dipakai oleh DB-9 beserta keterangannya.

Tabel 2.3 Konfigurasi Pin DB9

2.5Bahasa C

Bahasa 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.

(9)

kompiler.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 Standar Institut) yang dijadikan acuan oleh para pembuat kompiler.

Kelebihan Bahasa C:

- Bahasa C tersedia hampir di semua jenis computer.

- Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer. - Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata

kunci.

- Proses executable program bahasa C lebih cepat - Dukungan pustaka yang banyak.

- 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. Struktur Bahasa Pemrograman C

<preprosesor directive> {

<statement>; <statement>; }

(10)

Penjelasan : 1. Header File

Header File adalah berkas yang berisi prototype fungsi. definisi konstanta. dan definisi variable. Fungsinya adalah kumpulan code C yang diberi nama dan ketika nama tersebut dipanggil maka kumpulan kode tersebut dijalankan. 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 ) contohnya di bawah ini:

Contoh :

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

2. Preprosesor Directive (#include)

Preprosesor directive adalah bagian yang berisi pengikutsertaan file atau berkas-berkas fungsi maupun pendefinisian konstanta.

Contoh:

#include <stdio.h> #include phi 3.14

3. Void

Void artinya fungsi yang mengikutinya tidak memiliki nilai kembalian (return).

4. Main ( )

(11)

5. Statement

Statement adalah instruksi atau perintah kepada suatu program ketika program itu dieksekusi untuk menjalankan suatu aksi. Setiap statement diakhiri dengan titik-koma (;).

2.5.1 Kata Kunci (Keyword)

Kata kunci-kata kunci yang terdapat di C, sebagai berikut: Tabel 2.4 Kata-Kata Kunci

2.5.2 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 kecilnya.

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.5.3 Variabel

Variabel adalah identifier yang nilainya dapat berubah atau diubah selama program berjalan (dieksekusi). Pengubahnya adalah user atau proses.

(12)

Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebih dahulu. Pengertian deklarasi di sini berarti memesan memori dan menentukan jenis data yang bisa disimpan di dalamnya.

Contoh :

Int a, b, c; - Inisialisasi variabel (tipe_data nama_variabel = nilai;)

Int a=15, b=7, c=0

2.5.4 Konstanta

Konstanta adalah identifier yang nilainya tetap selama program berjalan/ dieksekusi. Cara untuk mengubahnya hanya melalui source codenya saja seperti halnya variabel, konstanta juga memiliki tipe. Penulisan konstanta mempunyai aturan tersendiri, sesuai dengan tipe masing-masing.

1. Konstanta karakter misalnya ditulis dengan diawali dan diakhiri dengan tanda petik tunggal, contohnya : ‘A’ dan ‘@’.

2. Konstanta integer ditulis dengan tanda mengandung pemisah ribuan dan tidak mengandung bagian pecahan, contohnya : –1 dan 32767.

3. Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda berupa titik) dan nilainya bisa ditulis dalam bentuk eksponensial (menggunakan tanda e), contohnya : 27.5f (untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5 (maksudnya 2,1 x 105 ). 4. Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda

petik-ganda (“), contohnya :“Pemrograman Dasar C”. Contoh :

2.5.5 Tipe Data Dasar

Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau

(13)

Tabel 2.5 Ukuran Memori untuk Tipe Data

Untuk mengetahui ukuran memory bisa dipakai fungsi sizeof (<tipe_data>). Catatan:

Ukuran dan kawasan dari masing-masing tipe data adalah bergantung pada jenis mesin yang digunakan (misalnya mesin 16 bit bisa jadi memberikan hasil berbeda dengan mesin 32 bit). Untuk menampilkan hasil output dibutuhkan kode format, berikut adalah daftar kode format:

(14)

2.5.6 Karakter Escape

Karakter escape adalah karakter yang diawali dengan tanda backslash (/), yang masing- masing memiliki makna tertentu. Berikut adalah daftar karakter:

Tabel 2.6 Karakter Escape

2.5.7 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. 7 Operator Aritmatika

(15)

#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.5.8 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.8 Operator Pembanding

2.5.9 Operator Logika

(16)

Tabel 2.9 Operator Logika

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

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.5.10 Operator Bitwise

(17)

sedangkan pada operator bitwise akan menghasilkan data biner. Operator Bitwise dapat dilihat pada tabel di bawah ini:

(18)

2.5.11 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.11 Operator Penambahan dan Pengurangan

2.5.12 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

(19)

if (kondisi1)

Jika PINA.0 diberi input logika 1 maka PORTC akan mengeluarkan logika 0xff, jika yang pernyataan yang lain maka PORTC akan mengeluarkan logika 0x00.

2.5.14 Pernyatan While

Pernyataan while digunakan untuk menguangi sebuah pernyataan atau blok kenyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk pernyataan while adalah sebagai berikut :

while (kondisi) {

// sebuah pernyataan atau blok pernyataan }

Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja maka tanda { dan } bias dihilangkan.

Contoh :

unsigned char a=0; …..

(20)

{

PORTC=a; a++;

Pernyataan di atas akan mengeluarkan data a ke port C secara berulang-ulang. Setiap kali pengulangan nilai a akan bertambah 1 dan setelah niai a mencapai 10 maka pengulangan selesai.

2.6 Code Vision AVR

CodeVision AVR merupakan sebuah software yang digunakan untuk memprogram mikrokontroler sekarang ini telah umum. Mulai dari penggunaan untuk kontrol sederhana sampai kontrol yang cukup kompleks, mikrokontroler dapat berfungsi jika telah diisi sebuah program, pengisian program ini dapat dilakukan menggunakan compiler yang selanjutnya diprogram ke dalam mikrokontroler menggunakan fasilitas yang sudah di sediakan oleh program tersebut. Salah satu compiler program yang umum digunakan sekarang ini adalah CodeVision AVR yang menggunakan bahasa pemrograman C.

CodeVision AVR mempunyai suatu keunggulan dari compiler lain, yaitu adanya codewizard, fasilitas ini memudahkan kita dalam inisialisasi mikrokontroler yang akan kita gunakan.

(21)

2.6Visual Basic

Visual Basic adalah bahasa pemrograman yang digunakan untuk membuat aplikasi yang berbasis grafis (GUI Graphical User Interface) dan Visual Basic ini sangat disukai oleh penggunanya karena fasilitas pemrograman yang disediakan sangat banyak serta sangat terbuka dalam penambahan komponen.

Kemampuan dari Visual Basic :

a. Dapat menghasilkan file-file eksekusi atau bersifat executable (file berakhiran *.EXE) sehingga dapat dijalankan dengan memanggil nama file tersebut.

b. Dapat membuat program-program aplikasi yang berbasis windows.

c. Dapat membuat objek-objek program bantu seperti ActiveX, Aplikasi Internet, file Help dan sebagainya

d. Sangat mendukung sebagai pengelola database server dan pembuatan program mutisiuser.

Gambar

Gambar 2.1 Water Flow Sensor G1/2
Tabel 2.1 Komponen Sensor
Gambar 2.3 Pin ATMEGA 16
Gambar 2.4 Peta Memori
+7

Referensi

Dokumen terkait

This makes it impossible to use fes:Function in conjunction with that operations, and does not harmonize with other operations such as BinarySpatialOpType where fes:expression

Distribusi perbekalan farmasi dengan menggunakan sistem ODDD berarti bahwa pendistribusian obat sesuai dengan dosis per hari yang dibutuhkan oleh pasien. Pembayaran perbekalan

Pada saat kita olah raga terjadi peningkatan pada curah jantung (jumlah darah yang kelaur dari jantung setiap menit) dan peningkatan curah jantung selama

Adapun ibrah yang dapat diambil dari penerapan perkembangan Islam suku Samin Blora di desa Samin Kudus di antaranya adalah dapat lebih memahami kearifan lokal dan tetap

Berdasarkan hal-hal tersebut maka perlu dilakukan suatu evaluasi terhadap kapasitas dan unit pengolahan air minum yang ada sehingga dapat mengetahui kondisi-kondisi yang

Memperhatikan hasil evaluasi kualifikasi pada Perusahaan Saudara untuk pekerjaan ” PEMBANGUNAN GEDUNG KANTOR KELURAHAN SIMALUNGUN (1. PAKET) ” , dengan ini kami

[r]

Bagaimana mengukur kemampuan berpikir kreatif? Untuk mengukur tes tersebut dapat digunakan tes pilihan ganda maupun uraian.namun pada penelitian ini tes kemampuan kreatif