BAB II TEORI DASAR 2.1 Board Mikrokontroler Arduino Arduino

advertisement
BAB II
TEORI DASAR
2.1
Board Mikrokontroler Arduino
Arduino adalah board mikrokontroler bebasiskan mikrokontroler 8 bit atmel AVR yang
bersifat open-source. Board arduino dirancang untuk memudahkan pemakainya untuk
mengggunakan board tersebut dalam berbagai keperluan
pembuatan alat elektronik. Board
tersebut disertai dengan software IDE (Integrated Development Environtment) sendiri yang juga
bersifat open source. Sehingga rancangan hardware dan softwarenya dapat dipelajari atau
dimodifikasi tanpa melanggar lisensi selama tidak menggunakan trade mark arduino.
Dalam board Arduino sudah dilengkapi dengan bootloader yang akan menangani proses
upload dari komputer, dengan demikian tidak diperlukan lagi chip programmer kecuali untuk
menanamkan bootloader pada chip yang masih blank. Arduino menggunakan usb to serial
sebagai interfacenya dengan komputer sehingga arduino dapat mudah dihubungkan dengan
berbagai komputer dan notebook yang beredar saat ini yang sudah tidak lagi menyediakan port
serial dan port parallel sebagai interface pada komputer..
Pendiri dan awal pengembang arduino adalah Massimo Banzi dan Davis Cuartiellesi. Proyek
ini dimulai pada tahun 2005 di Ivrea, Italia. Arduino lahir dari lingkungan mahasiswa dan dosen
yang
merasakan
sulitnya
mempelajari
mikrokontroler.
Kemudian
dari
hal
tersebut
dikembangkanlah sebuah sistem minimum dengan mikrokontroler Atmel AVR yang lengkap
dengan bootloader dan software yang dibuat sedemikain rupa agar mudah digunakan dengan
library yang lengkap maka lahirlah sebuah inovasi board mikrokontroler yang bersifat open
source. Kepopuleran arduino melebihi kepopuleran basic stamp yang terlebih dahulu ada
sebelum arduino.
Gambar 2.1 : Bentuk Modul Arduino Duemilanove
2.2
Mikrokontroller AVR
AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur RISC
(Reduced Instruction Set Computer) yang ditingkatkan. 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. Mempunyai ADC dan PWM internal. AVR juga mempunyai InSystem Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang
dalam sistem menggunakan hubungan serial SPI. AVR terdiri dari beberapa series yaitu AT90xx,
ATtinnyxx, ATmegaxx, AVR32xx selain AVR32xx yang membedakan tiap series hanyalah
kapasitas memori dan fiturnya saja.
Gambar 2.2 Blok Diagram Arsitektur AVR
2.3.
Arduino Ethernet Shield
Arduino Ethernet Shield adalah board menghubungkan board Arduino dengan Internet.
Arduino Ethernet Shield ini dibuat berdasarkan ethernet chip Wiznet W5100. Chip Wiznet
W5100 menyediakan jaringan (protokol internet) dengan kemampuan TCP (Transmission
Control Protocol) dan UDP (User Datagram Protocol). Mendukung sampai dengan 4 koneksi
secara bersamaan. Board ethernet dilengkapi dengan slot memory micro-sd menyimpan file
untuk digunakan di dalam jaringan.
Gambar 2.3 : Bentuk Modul Arduino Ethernet Shield
Modul Ethernet yang menggunakan chip WIZnet W5100 Ethernet Chip yang
mendukung hingga empat koneksi soket secara simultan. Protokol komunikasi dengan SPI
(Serial Periphreal Interface ).
2.4. Sensor Suhu LM 35 DZ
Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah
besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai
dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National
Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika
dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang
rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian
kendali khusus serta tidak memerlukan penyetelan lanjutan.
Meskipun tegangan sensor ini dapat mencapai 30 volt akan tetapi yang diberikan
kesensor adalah sebesar 5 volt, sehingga dapat digunakan dengan catu daya tunggal dengan
ketentuan bahwa LM35 hanya membutuhkan arus sebesar 60 µA hal ini berarti LM35
mempunyai kemampuan menghasilkan panas (self-heating) dari sensor yang dapat menyebabkan
kesalahan pembacaan yang rendah yaitu kurang dari 0,5 ºC pada suhu 25 ºC .
Gambar dibawah menunjukan bentuk dari LM35 tampak depan dan tampak bawah. 3 pin
LM35 menujukan fungsi masing-masing pin diantaranya, pin 1 berfungsi sebagai sumber
tegangan kerja dari LM35, pin 2 atau tengah digunakan sebagai tegangan keluaran atau
Vout dengan jangkauan kerja dari 0 Volt sampai dengan 1,5 Volt dengan tegangan operasi sensor
LM35 yang dapat digunakan antar 4 Volt sampai 30 Volt. Keluaran sensor ini akan naik sebesar
10 mV setiap derajad celcius sehingga diperoleh persamaan sebagai berikut :
VLM35 = Suhu* 10 mV
Secara prinsip sensor akan melakukan penginderaan pada saat perubahan suhu setiap
suhu 1 ºC akan menunjukan tegangan sebesar 10 mV. Pada penempatannya LM35 dapat
ditempelkan dengan perekat atau dapat pula disemen pada permukaan akan tetapi suhunya akan
sedikit berkurang sekitar 0,01 ºC karena terserap pada suhu permukaan tersebut. Dengan cara
seperti ini diharapkan selisih antara suhu udara dan suhu permukaan dapat dideteksi oleh sensor
LM35 sama dengan suhu disekitarnya, jika suhu udara disekitarnya jauh lebih tinggi atau jauh
lebih rendah dari suhu permukaan, maka LM35 berada pada suhu permukaan dan suhu udara
disekitarnya .
Jarak yang jauh diperlukan penghubung yang tidak terpengaruh oleh interferensi dari
luar, dengan demikian digunakan kabel selubung yang ditanahkan sehingga dapat bertindak
sebagai suatu antenna penerima dan simpangan didalamnya, juga dapat bertindak sebagai perata
arus
yang
mengkoreksi
pada
kasus
yang
sedemikian,
dengan
mengunakan
metode bypasskapasitor dari Vin untuk ditanahkan. Berikut ini adalah karakteristik dari sensor
LM35.
1. Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu10
mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
2. Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC seperti terlihat
pada gambar 2.2.
3. Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
4. Bekerja pada tegangan 4 sampai 30 volt.
5. Memiliki arus rendah yaitu kurang dari 60 µA.
6. Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada
udara diam.
7. Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
8. Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.
Gambar 2.4 : Bentuk LM 35 DZ Dan Penjelasan Output
Gambar 2.5 : Dimensi LM 35 DZ
Tabel 2.1 : Karakteristik elektrikal LM 35 DZ
2.5.
Local Area Network (LAN)
2.5.1. Jaringan LAN
LAN (Local Area Network) adalah suatu kumpulan komputer, dimana terdapat
beberapa unit komputer (client) dan 1 unit komputer untuk bank data (server). Antara
masing-masing client maupun antara client dan server dapat saling bertukar file maupun
saling menggunakan printer yang terhubung pada unit-unit komputer yang terhubung
pada jaringan LAN.
Berdasarkan kabel yang digunakan, ada dua cara membuat jaringan LAN, yaitu
dengan kabel BNC dan kabel UTP.
2.5.2.
Keuntungan Jaringan LAN.
1. Pertukaran file dapat dilakukan dengan mudah (File Sharing).
2. Pemakaian printer dapat dilakukan oleh semua client (Printer Sharing).
3. File-file data dapat disimpan pada server, sehingga data dapat diakses dari
semua client menurut otorisasi sekuritas dari semua karyawan, yang dapat
dibuat berdasarkan struktur organisasi perusahaan sehingga keamanan data
terjamin.
4. File data yang keluar/masuk dari/ke server dapat di kontrol.
5. Proses backup data menjadi lebih mudah dan cepat.
6. Resiko kehilangan data oleh virus komputer menjadi sangat kecil sekali.
7. Komunikasi antar karyawan dapat dilakukan dengan menggunakan E-Mail &
Chat.
8. Bila salah satu client/server terhubung dengan modem, maka semua atau
sebagian komputer pada jaringan LAN dapat mengakses ke jaringan Internet
atau mengirimkan fax melalui 1 modem.
Gambar 2.6 : Jaringan Local Area Network
2.6.
LED (Light Emitting Diode)
LED atau biasa disebut juga dioda cahaya adalah suatu semikonduktor yang dapat
memancarkan cahaya apabila ada arus listrik yang melewatinya. Karena LED tidak dapat
menerima arus yang besar, maka pada pemakaiannya umumnya digabungkan secara serial
dengan resistor. Fungsi resistor adalah membatasi arus yang mengalir melewati LED.
Cahaya yang dihasilkan LED tergantung pada bahan semikonduktor yang digunakan.
Cahaya yang dihasilkan LED bisa berupa cahaya tampak. LED adalah jenis yang memancarkan
cahaya. Cahaya LED dapat dilihat oleh manusia.
LED memiliki dua kaki yaitu katoda dan anoda. Kaki anoda pada LED memiliki ukuran
yang lebih panjang jika dibandingkan dengan kaki katodanya. Kaki anoda dan anoda pada LED
dapat dilihat pada gambar 2.7. LED akan berfungsi dengan baik jika kaki-kaki LED dipasang
dengan benar. Kaki anoda dipasang pada bagian positif (+) dan kaki katoda dipasang pada
bagian negative (-). Bentuk, kaki-kaki, symbol LED dan bentuk, simbol RED dapat dilihat pada
gambar 2.8.
Gambar 2.7 Kaki Anoda dan Katoda pada LED
Gambar 2.8 Bentuk dan Simbol LED
2.7. Bahasa C
Bahasa C merupakan bahasa tingkat tinggi yang ditemukan oleh Dennis Ritchie dari Bell
Telephone Laboratories Inc. (sekarang adalah AT&T Bell Laboratories) pada tahun 1972.
Awalnya bahasa C merupakan perkembangan dari bahasa B yang dikembangkan oleh Ken
Thompson pada tahun 1970 dan merupakan pengembangan dari bahasa BPCL yang ditemukan
oleh Martin Richard pada tahun 1967. Bahasa C pertama kali digunakan di dalam Computer
Digital Equipment Corporation PDP-11 menggunakan sistem operasi UNIX. Hingga saat ini
penggunaan bahasa C telah merata digunakan di seluruh dunia. C adalah bahasa yang standar,
artinya suatu program yang ditulis dengan bahasa C tertentu akan dapat dikonversi dengan
bahasa C yang lain dengan sedikit modifikasi. Standar bahasa C yang asli adalah standar dari
UNIX. Patokan dari standar UNIX ini diambil dari buku yang ditulis oleh Brian Kerningan dan
Dennis Ritchie berjudul “The C Programming Language”, diterbitkan oleh Prentice-Hall tahun
1978 Deskripsi C dari Kerninghan dan Ritchie ini kemudian kemudian dikenal secara umum
sebagai “K dan R C”.
2.7.1. Tipe Data
Umumnya data yang digunakan didalam bahasa pemograman komputer dibedakan
menjadi data nilai numerik dan nilai karakter. Tujuan data menjadi efisien dan efektif digunakan
bahasa-bahasa pemograman komputer yang membedakan data kedalam beberapa tipe. Dalam
bahasa C tersedia lima tipe data dasar, yaitu tipe data interger (nilai numeric bulat yang
dideklarasikan dengan int),
floatingpoint (nilai numerik pecahan ketetapan tunggal yang
dideklarasikan dengan float), double-precision (nilai numerik pecahan ketetapan ganda yang
dideklarasikan dengan double).
Tabel 2.2 Tipe-Tipe Data Dasar
Tipe
Ukuran (Bit)
Range
Bit
1
0,1
Char
8
-128 to 127
Unsigned Char
8
0 to 255
Signed Char
8
-128 to 127
Int
16
-32768 to 32767
Short int
16
-32768 to 32767
Unsigned int
16
0 to 65535
Signed int
16
-32768 to 32767
Long int
32
-2147483648 to 2147483647
Unsigned long int
32
0 to 4294967295
Signed long int
32
-2147483648 to 2147483647
Float
32
±1.175e-38 to ±3.402e38
double
32
±1.175e-38 to ±3.402e38
Karakter (dideklarasikan dengan char), dan kosong (dideklarasikan dengan void).
Int,float, double dan char dapat dikombinasikan dengan pengubah (modifier) signed, unsigned,
long dan short. Hasil dari kombinasi tipe data ini dapat dilihat pada tabel.
2.7.2. Operator
Dalam suatu intruksi mengandung operator dan operand. Operator merupakan sebuah
simbol yang menyatakan operasi mana yang harus dilakukan oleh operand tersebut. Sedangkan
operand adalah variable atau konstanta yang merupakan bagian pernyataan. Ada tiga operand
(a,b dan c) dan dua operator (= dan +). Operator dalam c dibagi menjadi 3 kelompok. Yaitu:
1. Unary
Operator yang beroperasi pada satu operand, missal:-n.
2. Binary
Operator yang beroperasi padaduaoperand, missal: a-n,
3. Ternary
Operator yang memerlukan tiga atau lebih operand, misal: a=(b*c)+
Tabel 2.3 : Operator Kondisi
Operator Kondisi
Keterangan
<
Lebih Kecil
<=
Lebih kecil sama dengan
<
Lebih Besar
>=
Lebih Besar sama dengan
==
Sama dengan
!=
Tidak samadengan
Tabel 2.4 : Operator Aritmatika
Operator Aritmatika
Keterangan
+
Penjumlahan
-
Pengurangan
*
Perkalian
/
Pembagian
%
Sisa bagi(modulus)
Tabel 2.5 : Operator Logika
Operator Logika
Keterangan
!
Boolean NOT
&&
Boolean AND
||
Boolean OR
Tabel 2.6 : Operator Bitwise
Operator Bitwise
Keterangan
~
Komplemen Bitwise
&
Bitwise AND
|
Bitwise OR
^
Bitwise Exclusive OR
>>
Right Shift
<<
Left Shift
Tabel 2.7 : Operator Assignment
Operator Asignment
Keterangan
=
Untuk memasukkan nilai
+=
Untuk menambah nilai dari keadaan semula
-=
Untuk mengurangi nilai dari keadaan semula
*=
Untuk mengalikan nilai dari keadaan semula
/=
Untuk melakukan pembagian terhadap bilangan semula
%=
Untuk memsukkan sisa bagi dari pembagian bilangan semula
<<=
Untuk memasukkan Shift left
>>=
Untuk memasukkan Shift right
&=
Untuk memasukkan bitwise AND
^=
Untuk memasukkan bitwise XOR
\=
Untuk memasukkan bitwise OR
2.7.3. Pernyataan Bahasa C
Dalam system Arduino, ada berbagai macam jenis pernyataan yang digunakan
dalam pemprogramannya. Berikut contoh dan penjelasanannya:
2.7.3.1. Percabangan
Perintah if dan if…else….dilakukan untuk melakukan operasi percabangan
bersyarat. Pernyataan if mempunyai bentuk umum :
if (kondisi) {
//pernyataan
};
Contoh:
if (a<0x08){
PORTC=0x50;
};
Dalam contoh ini PORTC akan dikirim data 0x50 jika nilai a lebih kecil 0x08.
Bentuk ini menyatakan , Jika kondisi yang diseleksi adalah benar (bernilai logika = 1),
maka pernyataan yang mengikutinya akan diproses.
Sebaliknya, jika kondisi yang
diseleksi adalah tidak benar (bernilai logika = 0), maka pernyataan yang mengikutinya
tidak akan diproses. Mengenai kodisi harus ditulis diantara tanda kurung, sedangkan
pernyataan dapat berupa sebuah pernyataan tunggal, pernyataan majemuk atau
pernyataan kosong. Sedangkan Pernyataan if-else memiliki bentuk :
if (kondisi) {
//pernyataan a
}
else {
//pernyataan b
};
Artinya adalah pernyataan a akan dijalankan jika kondisi terpenuhi dan
pernyataan b akan dijalankan jika kondisi tidak terpenuhi. dijalankan. Masing-masing
pernyataan-a dan pernyataan-b dapat berupa sebuah pernyataan tunggal, pernyataan
majemuk ataupun pernyataan kosong.
Perintah percabangan if….else..dapat digantikan dengan perintah switch. Dalam
pernyataan switch, sebuah variabel secara berurutan diuji oleh beberapa konstanta
bilangan bulat atau konstanta karakter. Sintaks perintah switch dapat ditulis sebagai
berikut:
Switch(variabel)
{
case konstanta_1: statement; break;
case konstanta_2: statement; break;
case konstanta_3: statement; break;
default:
statement;
}
2.7.3.2. Looping (Pengulangan)
Looping adalah perulangan satu atau beberapa perintah sampai mencapai keadaan
tertentu. Ada tiga perintah looping, yaitu: for …., dan do..while…. sintaks loop for dapat
dituliskan sebagai berikut:
for (untuk pengulangan yang melakukan proses increment)
for(nama_variabel=nilai_awal;syarat_loop;nama_variabel++)
};
statement_yang_diulang; } // untuk pengulangan yang melakukan proses
decrement syarat_loop adalah pernyataan yang menyatakan syarat berhentinya
pengulangan; biasanya berkaitan dengan variabel kontrol, nama_variabel++ dan
nama_variabel--, menyatakan proses increment dan proses decrement pada variabel
kontrol. Sedangkan perintah while dapat melakukan looping apabila persyaratannya
benar. Sintaks perintah while dapat dituliskan sebagai berikut:
nama_variabel=nilai_awal;
while(syarat_loop)
{
Statement_yang_akan_diulang:
Nama_variabel++;
}
Perintah while terlebih dahulu melakukan pengujian persyaratan sebelum
melakukan looping. Perulangan yang belum diketahui berapa kali akan diulangi maka
dapat menggunakan while atau do while.Pada pernyatan while, pemeriksaan terhadap
loop dilakukan di bagian awal (sebelum tubuh loop). Pernyataan while akan diulangi
terus menerus selama kondisi bernilai benar, jika kondisinya salah maka perulangan
dianggap selesai.
nama_variabel=nilai_awal;
while(syarat_loop)
{
Statement_yang_akan_diulang:
Nama_variabel++;
}
While(syarat_loop)
Download