modul.mercubuana.ac.id elektro... · web viewbluetooth dengan jarak jangkauan layanan yang...
Post on 10-Mar-2019
217 Views
Preview:
TRANSCRIPT
BAB II
LANDASAN TEORI
2.1 Gambaran Umum
Sering kita mendengar istilah mikroprosesor, mikrokomputer dan
mikrokontroler. Mikroprosesor adalah bagian dari CPU (Central Processing Unit)
dari sebuah komputer, tanpa memori, I/O dan peripheral yang dibutuhkan oleh
suatu sistem lengkap. Supaya dapat bekerja, mikroprosesor memerlukan
perangkat pendukung seperti RAM, ROM dan I/O. Bila sebuah mikroprosesor
dikombinasi dengan I/O dan memori (RAM/ROM) maka akan menghasilkan
sebuah mikrokomputer. Sebagai terobosan, mikrokomputer ini dapat juga dibuat
dalam bentuk single chip yaitu Single Chip Microcomputer (SCM) yang biasa
orang kenal dengan sebutan mikrokontroler.
Perbedaan yang menonjol antara mikrokomputer dengan mikrokontroler
yaitu terletak pada penggunaan perangkat I/O dan media untuk penyimpanan
program. Bila mikrokomputer menggunakan disket, harddrive lainnya maka
mikrokontroler menggunakan EEPROM sebagai penyimpan programnya.
Sedangkan untuk keuntungan mikrokontroler dibandingkan dengan mikroprosesor
adalah pada mikrokontroler sudah terdapat RAM dan peralatan I/O pendukung
sehingga tidak memerlukan perangkat tambahan.
2.2 Arduino
Arduino adalah sebuah papan (board) rangkaian elektronik yang terdiri
dari perangkat keras (hardware) dan perangkat lunak (software) yang bersifat
open source. Perangkat lunaknya bersifat open source dimana source code
Arduino dapat disesuaikan dan dikembangkan dengan kebutuhan perograman para
5
6
penggunanya. Begitu juga dengan perangkat kerasnya dimana rancangan
board Arduino dipublikasikan di bawah creative common license yang artinya
pengembang rancangan elektronik dapat mengembangkan, menambahkan dan
merancang versi boardnya sendiri. Arduino dapat diprogram untuk memproses
input dan output antara perangkat dan komponen elektronik yang terhubung pada
Arduino.
Board Arduino terbuat dari Atmel AVR Microprocessor, kristal atau
osilator (sebuah clock sederhana yang mengirimkan pulsa-pulsa waktu pada
frekuensi yang ditetapkan sehingga memungkinkan clock tersebut bekerja sesuai
dengan kecepatan yang diinginkan), dan regulator linear 5V. Arduino memiliki
soket untuk dihubungkan ke komputer untuk meng-upload dan menerima data
kembali. Soket tersebut tergantung tipe Arduino yang digunakan. Arduino
memiliki pin-pin input / output mikrokontroler (microcontroller I/O) yang dapat
dihubungkan ke berbagai rangkaian atau sensor.
Bentuk dari board Arduino dapat dilihat pada Gambar 2.1 Komponen
Arduino berikut ini :
Gambar 2.1 Komponen Arduino
Board Arduino memiliki berbagai macam versi. Beberapa tahun yang lalu
Tim Arduino menyempurnakan desain board Arduino dan merilis beberapa versi
baru Arduino ke pasaran. Versi - versi tersebut biasanya menggunakan nama Italia
seperti Arduino Uno, Arduino Duemilanove, atau Arduino Diecimilia. Daftar
versi board Arduino yang telah dirilis tersebut dapat dilihat di situs resmi Arduino
http://arduino.cc/en/Main/Boards. Berbagai macam board yang dipasarkan dapat
dilihat pada Gambar 2.2 Berbagai Versi board Arduino berikut ini :
7
Gambar 2.2 Berbagai Versi Board Arduino
Arduino yang digunakan dalam adalah versi terbaru yaitu Arduino Uno
R3. Arduino Uno adalah board mikrokontroler berbasis ATmega328. memiliki 14
pin digital input/output dimana 6 diantaranya dapat digunakan sebagai output
PWM, 6 analog input, sebuah resonator keramik 16 MHz, koneksi Universal
Serial Bus (USB), power jack, In Circuit Serial Programming (ICSP) header dan
tombol reset.
Arduino Uno R3 memiliki kelebihan dibandingkan dengan Uno versi R1
dan R2 yang telah dirilis sebelumnya. Uno R3 memiliki fitur ATmega16U2 yang
diprogram sebagai USB-to-SerialConverter, berbeda dengan Uno versi
sebelumnya yang memerlukan chip driver Future Technology Devices
International (FTDI) USB-to-serial.
2.2.1 Spesifikasi Arduino Uno
Spesifikasi yang dimiliki oleh Ardunino Uno yang digunakan dapat dilihat
pada Tabel 2.1 berikut ini:
Tabel 2.1 Spesifikasi Arduino Uno
Spesifikasi Keterangan
Microcontroller ATmega328
Operating Vage 5 V
Input Vage (recommended) 7 – 12 V
Input Vage (limits) 6 – 20 V
Digital I/O Pin 14 (6 pin sebagai output PWM)
Analog Input Pins 6 (A0 – A5)
8
DC Current per I/O Pin40 mA
DC Current for 3.3V Pin50 mA
Flash Memory 32 Kb (ATmega328) 0.5Kb digunakan oleh
bootloader
SRAM 2 Kb (ATmega328)
EEPROM 1 Kb (ATmega328)
Clock Speed 16 MHz
Serial Pin Rx (D0) dan Tx (D1)
2.2.1.1 Daya
Power Arduino Uno dapat diberikan melalui koneksi USB A-B atau
power supply. Power supply (non-USB) dapat berasal dari adaptor DC (wall-wart)
atau baterai. Adaptor ini dapat dihubungkan ke koneksi port input supply. Board
Arduino dapat beroperasi dengan input eksternal 6 - 20 V. Suplai tegangan yang
sebaiknya digunakan adalah 7 – 12 V. Hal ini dilakukan untuk menghindari
ketidakstabilan atau kerusakan pada board. Penjelasan Pin power pada Arduino
Uno adalah sebagai berikut:
a) VIN
Tegangan input ke board Arduino ketika menggunakan sumber daya
eksternal. Pin ini dapat digunakan jika diinginkan masukan dari power
jack.
b) 5V
Keluaran dari pin ini sebesar 5V dari regulator pada board. Board dapat
disuplai dengan daya, baik dari daya power jack (7 - 12V), konektor USB
(5V), atau pin VIN pada board (7-12V).
c) 3.3V
Menyuplai 3,3V yang dihasilkan oleh regulator pada board. Menarik arus
maksimum 50 mA.
d) GND
Berfungsi sebagai jalur ground pada Arduino.
9
e) IOREF
Pin ini menyediakan tegangan referensi dimana mikrokontroler dapat
beroperasi. Shield yang dikonfigurasi dengan benar dapat membaca
IOREF tegangan pin dan memilih sumber daya yang tepat atau
mengaktifkan translator tegangan pada output agar dapat bekerja dengan
tegangan 5V atau 3.3V.
2.2.1.2 Memory
ATmega328 yang digunakan pada Arduino memiliki kapasitas 32 Kb
(dengan 0,5 Kb digunakan untuk bootloader). Selain itu juga memiliki 2 Kb dari
SRAM dan 1 Kb EEPROM (yang dapat dibaca dan ditulis dengan EEPROM
library).
2.2.1.3 Input dan Output
Pin - pin digital pada Arduino Uno berjumlah 14 pin yang beroperasi
pada tegangan 5V, dapat digunakan sebagai input atau output, menggunakan
fungsi pin Mode(), digitalWrite(), dan digitalRead(). Setiap pin dapat
menghasilkan atau menerima arus maksimum 40 mA dan memiliki resistor pull-
up internal yang (secara default terputus) sebesar 20 - 50 k. Selain itu, beberapa
pin memiliki fungsi khusus, yaitu:
a) Serial : 0 (RX) dan1 (TX)
Digunakan untuk menerima (RX) dan mengirimkan (TX) data serial TTL.
Pin ini terhubung ke pin yang sesuai pada ATmega USB ke TTL Serial
Chip.
b) Interupsi eksternal : 2 dan 3
Pin ini dapat dikonfigurasi untuk men-trigger interrupt pada nilai yang
rendah, tepi naik atau jatuh, atau perubahan nilai.
c) PWM : 3, 5, 6, 9, 10, dan 11
Menyediakan PWM output 8-bit dengan fungsi analogWrite().
d) SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
Pin ini mendukung komunikasi SPI menggunakan SPI library.
10
e) LED : 13
Terdapat built-in LED yang terhubung ke pin digital13. Ketika pin bernilai
high, LED menyala, saat pin bernilai low, LED mati.
Arduino Uno memiliki enam input analog, berlabel A0 sampai A5, yang
masing - masing menyediakan 10 bit resolusi (yaitu 1024 nilai yang berbeda).
Secara default diukur dari ground sampai 5V, namun batas atas jangkauan dapat
diubah dengan menggunakan pin AREF dan fungsi analogReference(). Selain itu,
beberapa pin memiliki fungsi khusus, yaitu:
a) TWI : pin A4 atau SDA dan pin A5 atau SCL
Mendukung komunikasi TWI menggunakan Wire library.
b) AREF
Tegangan referensi untuk input analog. Digunakan dengan fungsi
analogReference().
c) Reset
Digunakan untuk me-reset program yang tertanam atau terdapat pada
mikrokontroler.
2.2.1.4 Komunikasi
Arduino Uno memiliki sejumlah fasilitas untuk berkomunikasi dengan
komputer, Arduino lain, atau mikrokontroler lainnya. ATmega328 menyediakan
komunikasi (5V), yang tersedia di pin digital 0 (RX) dan 1 (TX). Software
Arduino termasuk monitor seri yang memungkinkan data tekstual sederhana yang
akan dikirim ke dan dari board Arduino. LED RX dan TX pada board akan
berkedip ketika data sedang dikirim melalui chip USB-to-serial dan koneksi USB
ke komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1). Software
Serial library memungkinkan untuk komunikasi serial pada setiap pin digital Uno.
Untuk komunikasi SPI, digunakan SPI library.
2.2.2 Bahasa Pemrograman Arduino
11
Ketika akan membuat program untuk Arduino membutuhkan software
arduino untuk membuat bahasa pemrograman. Berikut tampilan software Arduino
pada gambar 2.3.
Gambar 2.3 Software Arduino
Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah
sedikit penjelasan pemrograman dan penjelasan singkat mengenai karakter bahasa
C dan software Arduino. Untuk penjelasan yang lebih mendalam, web Arduino.cc
adalah sumber yang lengkap.
Semua bahasa perograman terdiri dari :
1. ekspresi,
2. statemen,
3. blok statemen
4. blok fungsi
Berikut tampilan jendela software Arduino pada gambar 2.4.
12
Gambar 2.4 Jendela Software Arduino
Ekspresi adalah kombinasi operand dan operator contohnya ( 2 + 3), (X
> Y) dan sebagainya. Untuk 2, 3, X dan Y adalah operand sedangkan + dan >
adalah operator . Statemen adalah instruksi lengkap dalam bahasa C diakhiri dgn
tanda ; (titik koma) contohnya : (A= 2+3;). Statemen dan ekspresi C arduino
indentik dengan ANSI-C, struktur program C Arduino minimal terdiri dari dua
fungsi yaitu setup() dan loop(). Berikut tampilan struktur minimal program C
Arduino pada gambar 2.5.
Gambar 2.5 Strukutur Minimal Program C Arduino
13
Fungsi setup() dijalankan pertama kali setiap board arduino dihidupkan
sedangkan fungsi loop() dijalankan terus menerus selama board arduino hidup.
Pada program standar C ANSI fungsi yg pertama dijalankan adalah fungsi
main() pada C arduino adalah fungsi setup().
Variabel adalah memori penyimpanan data yang nilainya dapat diubah -
ubah. variabel disimpan di RAM, sedangkan konstanta adalah memori
penyimpanan data yang nilainya tidak dapat diubah setelah program di compile.
Konstanta disimpan di memori program. Variabel dan konstanta global dapat
diakses di seluruh bagian program. Variabel dan konstanta lokal hanya dapat
diakses didalam fungsi tempat dideklarasikannya.
2.2.2.1 Struktur
Setiap program Arduino (biasa disebut sketch) mempunyai dua buah
fungsi yang harus ada yaitu :
void setup( ) { }
Semua kode didalam kurung kurawal akan dijalankan hanya satu kali
ketika program Arduino dijalankan untuk pertama kalinya.
void loop( ) { }
Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai.
Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara
terus menerus sampai catu daya (power) dilepaskan.
2.2.2.2 Syntax
Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format
penulisan pada program antara lain :
// (komentar satu baris)
Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari
kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan
apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.
/* */ (komentar banyak baris)
Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada
beberapa baris sebagai komentar. Semua hal yang terletak di antara dua
simbol tersebut akan diabaikan oleh program.
14
{ } (kurung kurawal)
Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir
(digunakan juga pada fungsi dan pengulangan).
; (titk koma)
Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik
koma yang hilang maka program tidak akan bisa dijalankan).
2.2.2.3 Variabel
Sebuah program secara garis besar dapat didefinisikan sebagai instruksi
untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang
digunakan untuk memindahkannya antara lain :
int (integer)
Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak
mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.
long (long)
Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit)
dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan
2,147,483,647.
boolean (boolean)
Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar)
atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari
RAM.
float (float)
Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit)
dari RAM dan mempunyai rentang dari -3.4028235E+38 dan
3.4028235E+38.
char (character)
Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65).
Hanya memakai 1 byte (8 bit) dari RAM.
2.2.2.4 Operator Matematika
Operator yang digunakan untuk memanipulasi angka (bekerja seperti
matematika yang sederhana) yaitu :
15
= (sama dengan)
Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 *
2, x sekarang sama dengan 20).
% (persen)
Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang
lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).
+ (tambah)
Penjumlahan
- (kurang)
Pengurangan
* (bintang)
Perkalian
/ (garis miring)
Pembagian
2.2.2.5 Operator Pembanding
Operator pembanding digunakan untuk membandingkan nilai logika
antara lain :
==
Sama dengan (misalnya: 12 == 10 adalah false (salah) atau 12 == 12
adalah true (benar)).
!=
Tidak sama dengan (misalnya: 12 != 10 adalah true (benar) atau 12 != 12
adalah false (salah)).
<
Lebih kecil dari (misalnya: 12 < 10 adalah false (salah) atau 12 < 12
adalah false (salah) atau 12 < 14 adalah true (benar)).
>
Lebih besar dari (misalnya: 12 > 10 adalah true (benar) atau 12 > 12
adalah false (salah) atau 12 > 14 adalah false (salah)).
16
2.2.2.6 Struktur Pengaturan
Program sangat tergantung pada pengaturan apa yang akan dijalankan
berikutnya, berikut ini adalah elemen dasar pengaturan (banyak lagi yang lain dan
bisa dicari di internet) yaitu :
If dan Else
dengan format seperti berikut ini:
if (kondisi) { }
else if (kondisi) { }
else { }
Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam
kurung kurawal jika kondisinya true, dan jika tidak (false) maka akan diperiksa
apakah kondisi pada else if dan jika kondisinya false maka kode pada else yang
akan dijalankan.
For
dengan format seperti berikut ini:
for (int i = 0; i < #pengulangan; i++) { }
Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal
beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan.
Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–.
2.2.2.7 Digital
pinMode(pin, mode)
Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin
yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa
digunakan adalah input atau output.
digitalWrite(pin, value)
Ketika sebuah pin ditetapkan sebagai output, pin tersebut dapat dijadikan
high (ditarik menjadi 5 volts) atau low (diturunkan menjadi ground).
digitalRead(pin)
Ketika sebuah pin ditetapkan sebagai input maka anda dapat menggunakan
kode ini untuk mendapatkan nilai pin tersebut apakah high (ditarik menjadi 5
volts) atau low (diturunkan menjadi ground).
17
2.2.2.8 Analog
Arduino adalah mesin digital tetapi mempunyai kemampuan untuk
beroperasi di dalam analog (menggunakan trik). Berikut ini cara untuk
menghadapi hal yang bukan digital antara lain :
analogWrite(pin, value)
Beberapa pin pada Arduino mendukung PWM (pulse width modulation)
yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on) atau mati (off)
dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran
analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty
cycle ~ 0V) dan 255 (100% duty cycle ~ 5V).
analogRead(pin)
Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca
keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024
(untuk 5 volts).
2.3 Bluetooth
Bluetooth adalah teknologi yang memungkinkan dua perangkat yang
kompatibel, seperti telepon dan PC untuk berkomunikasi tanpa kabel dan tidak
memerlukan koneksi saluran yang terlihat. Teknologi ini memberikan perubahan
yang signifikan terhadap peralatan elektronik yang kita gunakan. Jika kita melihat
sekeliling kita dimana keyboard dihubungkan pada komputer. Demikian juga
halnya dengan printer, mouse, monitor dan lain sebagainya. Semua peralatan itu
dihubungkan dengan menggunakan kabel. Akibatnya terjadi masalah banyak
kabel yang dibutuhkan di kantor, rumah atau tempat-tempat lainnya. Masalah lain
yang ditemui adalah bagaimana menelusuri kabel-kabel yang terpasang jika ada
suatu kesalahan atau kerusakan. Bluetooth memperbaiki penggunaan teknologi
kabel yang cenderung menyulitkan ini dengan cara menghubungkan beberapa
peralatan tanpa menggunakan kabel.
Bluetooth beroperasi dalam pita frekuensi 2,4 GHz (antara 2.402 GHz
sampai 2.480 GHz) yang mampu menyediakan layanan komunikasi data dan suara
18
secara real-time antara host to host bluetooth dengan jarak jangkauan layanan
yang terbatas. Bluetooth dapat berupa card yang bentuk dan fungsinya hampir
sama dengan card yang digunakan untuk wireless local area network (WLAN)
dimana menggunakan frekuensi radio standar IEEE 802.11, hanya saja pada
bluetooth mempunyai jangkauan jarak layanan yang lebih pendek dan
kemampuan transfer data yang lebih rendah.
Pada dasarnya bluetooth diciptakan bukan hanya menggantikan atau
menghilangkan penggunaan kabel didalam melakukan pertukaran informasi,
tetapi juga mampu menawarkan fitur yang baik untuk teknologi mobile wireless
dengan biaya yang relatif rendah, konsumsi daya yang rendah, interoperability
yang menjanjikan, mudah dalam pengoperasian dan mampu menyediakan layanan
yang bermacam-macam.
Bluetooth memiliki lapisan – lapisan yang mempunyai fungsi berbeda –
beda sehingga secara umum digambarkan sebagai berikut :
Gambar 2.6 Arsitektur Bluetooth.
Untuk penjelasan dari gambar diatas adalah sebagai berikut :
Profile : Profiles adalah aplikasi yang dibuat pada arsitektur bluetooth.
contoh: Handfree Profile, Audio Gateway Profile.
OBEX : Object Exchange (OBEX) adalah protokol yang berfungsi untuk
melakukan transfer object antar aplikasi yang berjalan dengan menggunakan
bluetooth.
19
SDP : Service Discovery Protocol ( SDP ) merupakan sebuah protokol
yang berfungsi untuk memberikan layanan pencarian service terhadap bluetooth
device yang berada disekitarnya.
RFCOMM: protokol yang mempunyai fungsi untuk melakukan emulasi
koneksi serial antar device bluetooth.
L2CAP: Logical Link Control and Adaptation Protocol (L2CAP)
merupakan suatu lapisan dalam arsitektur bluetooth yang dapat membuat paket -
paket yang siap untuk digunakan oleh lapisan - lapisan yang berada di atasnya.
HCI: Human Computer Interface (HCI) adalah layer antar muka antara
perangkat keras bluetooth dengan perangkat lunak atau platform.
Link Manager:Link Manager (LM) adalah protokol yang berfungsi untuk
melakukan membangun kanal hubungan antara device bluetooth setelah
melakukan mekanisme sistem keamanan serta melakukan negosiasi berapa besar
paket baseband yang akan dikirimkan.
Baseband: Layer baseband mempunyai fungsi untuk melakukan sinkronisasi
pengiriman data antar device bluetooth.
Radio: Radio mempunyai fungsi untuk membuat gelombang radio yang
mempunyai frekuensi 2.4 Ghz sesuai dengan data yang akan diterima maupun
dikirimkan.
2.4 Triac
TRIAC merupakan singkatan dari Triode Alternating Current Switch,
yang berarti saklar untuk arus bolak-balik. TRIAC merupakan suatu komponen
yang mempunyai susunan atas 5 lapisan bahan jenis P dan N dalam arah lain
antara terminal T1 dan T2 dan dapat menghantarkan dalam arah yang lain
sebagaimana ditunjukkan pada gambar 2.7 secara jelas pada simbolnya.
Gambar 2.7 Simbol dan Komponen TRIAC
20
2.5 Optotriac
Prinsip kerja rangkaian ini adalah memanfaatkan masukan dengan arus
yang kecil untuk menghidupkan Led di dalam kemasan IC tersebut yang akan
menyulut TRIAC yang berfungsi sebagai saklar elektronik yang dapat
melewatkan arus bolak balik, keluaran optotriac inilah yang akan dihubungkan
langsung dengan sumber tegangan AC pada beban yang akan dikendalikan.
Berikut merupakan gambar simbol dan komponen optotriac yang ditunjukan pada
gambar 2.8.
Gambar 2.8 Simbol dan Komponen Optotriac
top related