6
BAB II
LANDASAN TEORI
2.1 Pengenalan Arduino
Arduino adalah platform pembuatan prototype elektronik yang bersifat
open-source hardware yang berdasarkan pada perangkat keras dan perangkat
lunak yang fleksibel dan mudah digunakan. Arduino ditujukan bagi para seniman,
desainer, dan siapapun yang tertarik dalam menciptakan objek atau lingkungan
yang interaktif.
Arduino pada awalnya dikembangkan di Ivrea, Italia. Nama Arduino
adalah sebuah nama maskulin yang berarti teman yang kuat. Platform arduino
terdiri dari arduino board, shield, bahasa pemrograman arduino, dan arduino
development environment. Arduino board biasanya memiliki sebuah chip dasar
mikrokontroler Atmel AVR ATmega8 berikut turunannya. Blok diagram arduino
board yang sudah disederhanakan dapat dilihat pada gambar 2.1. Shield adalah
sebuah papan yang dapat dipasang diatas arduino board untuk menambah
kemampuan dari arduino board.
Bahasa pemrograman arduino adalah bahasa pemrograman yang umum
digunakan untuk membuat perangkat lunak yang ditanamkan pada arduino board.
Bahasa pemrograman arduino mirip dengan bahasa pemrograman C++.
Arduino Development Everenment adalah perangkat lunak yang
Development Everonment juga digunakan untuk meng-upload program yang
sudah di-compile ke memori program arduino board.
Gambar 2.1 Blok Diagram Arduino Board
2.1.1 Arduino Uno
Arduino Uno adalah board berbasis mikrokontroler pada ATmega328
yang memiliki 14 pin digital input / output (dimana 6 pin dapat digunakansebagai
output PWM), 6 input analog, 16 MHz osilator kristal, sebuah koneksi USB,
sebuah konektor sumber tegangan, sebuah header ICSP, dan sebuah tombol reset.
Arduino Uno memuat segala hal yang dibutuhkan untuk mendukuang sebuah
mikrokontroler. Hanya dengan menghubungkannya ke sebuah komputer melalui
USB atau memberikan tegangan DC dari baterai atau adaptor AC ke DC sudah
dapat menggunakannya.
Arduino Uno menggunakan ATmega16u2 yang diprogram sebagai
USB-to-serial converter untuk komunikasi serial ke komputer melalui port USB.
Tampak atas Arduino Uno dapat dilihat pada gambar 2.2.
Adapun data teknis board Arduino Uno adalah sebagai berikut :
1. Mikrokontroller : Atmega328
3. Tegangan input (recommended) : 7 – 12 V
4. Tegangan input (limit) : 6 – 20 V
5. Pin input/output : 14 (6 diantaranya pin PWM)
6. Arus DC per pin I/O : 40 mA
7. Arus DC untuk pin 3,3V : 50 mA
8. Flash Memori : 32 KB dengan 0,5 KB digunakan
untuk bootloader.
9. SRAM : 2 KB
10.EEPROM : 1 KB
11.Kecepatan pewaktuan : 16 Mhz
Gambar 2.2 Aduino Uno
2.1.2 Sistem Komunikasi Pada Arduino Uno
Arduino Uno memiliki sejumlah fasilitas untuk dapat berkomunikasi
dengan Komputer, arduino lain, maupun mikrokontroler lainnya. Atmega328 ini
menyediakan serial komunikasi UART TTL (5V), yang tersedia pada pin digital 0
melalui USB dan muncul sebagai com port virtual untuk perangkat lunak pada
komputer. Firmware Arduino menggunakan USB driver standar COM, dan tidak
ada driver eksternal yang dibutuhkan. Bagaimanapun pada windows, sebuah
file.inf pasti dibutuhkan. Perangkat lunak Arduino termasuk serial monitor yang
memungkinkan data sederhana yang akan dikirim ke board arduino. Led Rx dan
Tx pada board akan berkedip ketika data sedang dikirim melalui chip
USB-to-serial dan koneksi USB ke komputer (tapi tidak untuk komunikasi USB-to-serial pada pin
0 dan 1). Atmega328 juga mendukung komunikasi I2C dan SPI.
2.1.3 Arduino Development Environment
Arduino Development Environment terdiri dari editor teks untuk
menulis kode, sebuah area pesan, sebuah konsul, sebuah toolbar dengan
tombol-tombol untuk fungsi yang umum dan beberapa menu. Arduino Development
Environment terhubung ke arduino board untuk meng-upload program dan juga
untuk berkomunikasi dengan arduino board.
Perangkat lunak yang ditulis menggunakan Arduino Development
Environment disebut sketch. Sketch ditulis pada editor teks. Sketch disimpan
dengan file berekstensi .ino. area pesan memberikan informasi dan pesan error
ketika kita menyimpan atau membuka sketch. Konsul menampilkan output teks
dari Arduino Development Environment dan juga menampilkan pesan error ketika
kita mengkompile sketch. Pada sudut kanan bawah jendela Arduino Development
Environment menunjukan jenis board dan port serial yang sedang digunakan.
membuka, atau menyimpan sketch, dan menampilkan serial monitor. Arduino
Development Environment dapat dilihat pada gambar 2.3.
Gambar 2.3 Arduino Development Environment
Berikut ini merupakan tombol-tombol toolbar serta
fungsinya :
Verfy berfungsi untuk mengecek error pada kode program
Upload berfungsi untuk meng-compile dan meng-upload
program ke Arduino board.
New berfungsi untuk membuat sketch baru
Open berfungsi untuk menampilkan sebuah menu dari seluruh
sketch yang berada di dalam sketchbook.
2.2 Sensor LM35
Sensor suhu IC LM35 merupakan chip IC produksi National
Semicondictor yang berfungsi untuk mengetahui temperature suatu objek atau
ruangan dalm bentuk besaran elektrik, atau dapat juga di definisikan sebagai
komponen elektronika yang berfungsi untuk mengubah perubahan temperature
yang diterima dalam perubahan besaran elektrik. Sensor suhu IC LM 35 dapat
mengubah perubahan temperature menjadi perubahan tegangan pada bagian
outputnya. Sensor suhu IC LM 35 membutuhkan sumber tegangan DC 5 Volt dan
konsumsi arus DC sebesar 60 µ A dalam beroperasi. Bentuk fisik sensor suhu LM
35 merupakan chip IC dengan kemasan yang bervariasi, pada umumnya kemasan
sensor suhu LM 35 adalah kemasan TO-92, seperti pada gambar 2.4.
Dari gambar 2.4 dapat diketahui bahwa sensor suhu IC LM 35 pada
dasarnya memiliki 3 pin yang berfungsi sebagai sumber supply tegangan DC 5
Volt, sebagai pin output hasil penginderaan dalam bentuk perubahan tegangan DC
pada Vout, dan pin untuk Ground.
Karakteristik sensor suhu adalah :
1. Memiliki sensitivitas suhu, dengan factor skala linier antara
tegangan dan suhu 10 mVolt/oC, sehingga mudah dikalibrasi
langsung dalam celcius.
2. Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5oC pada suhu 25
o
C.
3. Memiliki jangkauan maksimal operasi suhu antara -55oC sampai
+150oC.
4. Bekerja pada tegangan 4 sampai 30 Volt.
5. Memiliki arus rendah yaitu kurang dari 60 µA.
6. Memiliki pemanasan sendiri yang rendah yaitu kurang dari 0,1 oC
pada udara diam.
7. Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban
1 mA.
8. Memiliki ketidaklinieran hanya sekitar ± ¼ ºC
2.3 Modul RF 433 Mhz RF Link Kit
Modul ini terdiri dari pemancar dan penerima, sering difungsikan sebagai
remote control, remote sensor, pengumpulan data secara wireless, dan sistem
keamanan rumah. Koneksi wareless dengan frekuensi 433 Mhz.
Spesifikasi ;
a. Frekuensi 433 Mhz
c. Receiver data output : High – 1/2 Vcc, Low – 0.7v
d. Transmitor input voltage : 3 – 12
e. Transmitting range : 40 m indoor , dan 100m outdoor.
Gambar 2.5 Konfigurasi Pin-Pin Pada Rf 433 Mhz Rf Link Kit Dengan Mikrokontroler.
2.4 Mikrokontroler ATMega8
AVR ATmega8 adalah mikrokontroler CMOS 8-bit berarsitektur AVR
RISC yang memiliki 8K byte in-System Programmable Flash. Mikrokontroler
dengan konsumsi daya rendah ini mampu mengeksekusi instruksi dengan
kecepatan maksimum 16MIPS pada frekuensi 16MHz. Jika dibandingkan dengan
ATmega8L perbedaannya hanya terletak pada besarnya tegangan yang diperlukan
untuk bekerja. Untuk ATmega8 tipe L, mikrokontroler ini dapat bekerja dengan
tegangan antara 2,7 - 5,5 V sedangkan untuk ATmega8 hanya dapat bekerja pada
Gambar 2.6 Bentuk Fisik Mikrokontroler ATMega8
2.4.1. Konfigurasi Pin ATMega8
Tabel 2.1 Spesifikasi ATMega8
Spesifikasi ATMega8
Jumlah pin I/O
Total 28 pin terdiri atas :
PB (PB0 - PB7)
Interupsi Eksternal 2 buah (INT0, INT1)
On Chip Analog Comparator
ATMega8 memiliki 28 Pin, yang masing-masing pin nya memiliki fungsi
yang berbeda-beda baik sebagai port maupun fungsi yang lainnya. Berikut akan
dijelaskan fungsi dari masing-masing kaki ATMega8.
1. VCC merupakan supply tegangan digital.
2. GND merupakan ground untuk semua komponen yang membutuhkan
grounding.
3. Port B (PB7...PB0)
Didalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2. Jumlah Port
B adalah 8 buah pin, mulai dari pin B.0 sampai dengan B.7. Tiap pin dapat
digunakan sebagai input maupun output. Port B merupakan sebuah 8-bit
bidirectional I/O dengan internal pull-up resistor. Sebagai input, pin-pin
yang terdapat pada port B yang secara eksternal diturunkan, maka akan
mengeluarkan arus jika pull-up resistor diaktifkan. Khusus PB6 dapat
digunakan sebagai input Kristal (inverting oscillator amplifier) dan input
ke rangkaian clock internal, bergantung pada pengaturan Fuse bit yang
digunakan untuk memilih sumber clock. Sedangkan untuk PB7 dapat
digunakan sebagai output Kristal (output oscillator amplifier) bergantung
pada pengaturan Fuse bit yang digunakan untuk memilih sumber clock.
Jika sumber clock yang dipilih dari oscillator internal, PB7 dan PB6 dapat
digunakan sebagai I/O atau jika menggunakan Asyncronous
Timer/Counter2 maka PB6 dan PB7 (TOSC2 dan TOSC1) digunakan
4. Port C (PC5…PC0)
Port C merupakan sebuah 7-bit bi-directional I/O port yang di dalam
masing masing pin terdapat pull-up resistor. Jumlah pin nya hanya 7 buah
mulai dari pin C.0 sampai dengan pin C.6. Sebagai keluaran/output port C
memiliki karakteristik yang sama dalam hal menyerap arus (sink) ataupun
mengeluarkan arus (source).
5. RESET/PC6
Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai pin
I/O. Pin ini memiliki karakteristik yang berbeda dengan pin-pin yang
terdapat pada port C lainnya. Namun jika RSTDISBL Fuse tidak
diprogram, maka pin ini akan berfungsi sebagai input reset. Dan jika level
tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek
dari pulsa minimum, maka akan menghasilkan suatu kondisi reset
meskipun clock-nya tidak bekerja.
6. Port D (PD7…PD0)
Port D merupakan 8-bit bi-directional I/O dengan internal pull-up resistor.
Fungsi dari port ini sama dengan port-port yang lain. Hanya saja pada port
ini tidak terdapat kegunaan-kegunaan yang lain. Pada port ini hanya
berfungsi sebagai masukan dan keluaran saja atau biasa disebut dengan
I/O.
7. AVCC
Pin ini berfungsi sebagai supply tegangan untuk ADC. Untuk pin ini harus
analog saja. Bahkan jika ADC pada AVR tidak digunakan tetap saja
disarankan untuk menghubungkannya secara terpisah dengan VCC. Jika
ADC digunakan, maka AVCC harus dihubungkan ke VCC melalui low
pass filter.
8. AREF merupakan pin referensi jika menggunakan ADC.
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 paralel
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.
Dikenal dua cara komunikasi data secara serial, yaitu komunikasi data
serial sinkron dan komunikasi data serial asinkron. Pada komunikasi data serial
sinkron, clock dikirimkan bersama-sama dengan data serial tetapi clock tersebut
dibangkitkan sendiri-sendiri baik pada sisi pengirim maupun pada sisi penerima.
Sedangkan komunikasi data serial asinkron. Tidak diperlukan clock karena data
dikirimkan dengan kecepatan tertentu. Baik pada pegirim maupun penerima.
Kecepatan pengiriman (baudrate) dapat dipilih bebas dalam rentang
tertentu. Baudrate yang umum dipakai adalah 300, 600, 1200, 2400, 9600, dsb
(bit/detik). Dalam komunikasi data serial, baudrate dari kedua alat yang
ditentukan panjang data (6, 7, atau 8 bit), paritas (genap, ganjil atau tanpa paritas),
dan jumlah bit “Stop” (1, 1½ atau 2 bit).
2.5.1 Karakteristik Sinyal Port Serial
Standar sinyal komunikasi serial yang banyak digunakan adalah Standar
RS232 yang dikembangkan oleh Electronic Industri Association and The
telecommunication Industry 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 serial RS232 memiliki ketentuan level tegangan sebagai
berikut:
a. Logika ‘1’ disebut “Mark” terletak antara -3 Volt sampai -25 Volt
b. Logika ‘0’ disebut “Space” terletak antara +3 Volt sampai +25 Volt.
c. Daerah tegangan antara -3 Volt sampai +3 Volt adalah invalid level, yaitu
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 dibawah adalah contoh level tegangan RS232 pada pengiriman
Gambar 2.8 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.
(a) (b)
Gambar 2.9 a. Port DB9 jantan dan b. 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
Gambar 2.10 Susunan Pin Konektor DB9
Tabel 2.2 Fungsi Susunan Pin Konektor DB9 Pin Nama Signal Fungsi
1 DCD Data Carrier Detect, sinyal yang menyatakan bahwa
modem telah menerima sinyal carrier valid dari
modem lain.
2 RXD Sinyal data dari modem ke PC (Penerimaan).
3 TXD Sinyal data dari PC ke modem (Pengiriman).
4 DTR Data Terminal Ready, sinyal kendali dari PC ke
modem, untuk mengaktifkan modem.
5 GND Sinyal Ground
6 DSR Data Set Ready, sinyal kendali dari modem ke PC
yang menyatakan bahwa modem siap mengirim atau
menerima data.
7 RTS Request To Send, sinyal kendali dari PC yang
menandakan bahwa PC siap menerima data
8 CTS Clear To Send, sinyal kendali dari modem yang
9 RI Ring Indicator, sinyal kendali ke PC, tanda bahwa
saluran telepon berdering.
2.5.3 Penghubung Mikrokontroler Dengan Port Serial PC
Komputer memiliki protokol komunikasi RS232, sedangkan mikrokontroler
memiliki level tegangan TTL, sehingga untuk menghubungkan keduanya agar
dapat berkomunikasi, dibutuhkanlah sebuah konverter. Kebutuhan sebuah
konverter yang dapat berfungsi dua arah sekaligus, yaitu RS232 ke TTL dan TTL
ke RS232, dapat menggunakan sebuah IC MAX232.
Gambar 2.11 IC MAX232
2.6 Visual Basic 6.0
Visual basic adalah bahasa pemrograman yang digunakan untuk
membuat aplikasi yang berbasis grafis dan visual basic sangat disukai karena
fasilitas pemrograman yang disediakan sangat banyak serta sangat terbuka dalam
penambahan komponen.
Berikut ini adalah tampilan utama pada saat aplikasi visual basic
Gambar 2.12 Tampilan Utama Visual Basic
a. Form
Form atau jendela form merupakan daerah kerja utama dari pembuatan
program atau atau tempat perancangan aplikas. Pada daerah form inilah
diletakkan atau digambarkan objek interaktif seperti misalnya tombol-tombol,
gambar, teks, garis, tabel, combo, checkbox dan tools lainnya. Sehingga objek
yang berada pada form tersebut akan ditampilkan pada layar windows jika
program dijalankan. Form tersebut akan menjadi latar belakang atau tempat
dari objek dari program yang dijalankan.
b. Property Window
Jendela ini adalah jendela yang memiliki semua informasi tentang suatu objek
yang terdapat pada visual basic. Properti ini merupakan suatu sifat dari objek.
Sebagai contoh sebuah objek dapat memiliki property warna, ukuran, posisi,
lebar, jenis, tipe dan sifat yang lainnya dan setiap objek tersebut memiliki
property yang saling berbeda-beda.
c. Tollbox
Toolbox adalah fasilitas yang berisi objek atau kontrol untuk merancang pada
jendela form. Secara default pada saat mengaktifkan visual basic jendela
d. Toolbar
Toolbar adalah salah satu bagian dari setiap jendela aplikasi yang dijalankan
dengan sistem operasi windows. Dapat dikatakan selalu memiliki baris tool
atau toolbar yang berisi tombol-tombol (icon) perintah.
e. Project Explorer
Jendela ini adalah merupakan kumpulan dari sejumlah aplikasi yang sering
disebut dengan project. Sementara project itu sendiri memiliki banyak file
seperti form, modul, class dan yang lainnya.
f. Jendela Code
Salah satu jendela yang terpenting dalam visual basic adalah jendela code.
Dimana jendela ini berfungsi untuk penulisan dari instruksi-instruksi program.