6
BAB II
LANDASAN TEORI
2.1 Arduino Uno
Arduino Uno adalah sebuah board mikrokontroller yang berbasis ATmega238. Arduino memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai PWM (Pukse Wide Modulation), 6 analog input cristal osilator 16 MHz, koneksi USB, jack power, kepala ICSP dan tombol reset. Arduino mampu mensupport mikrokontroller; dapat dikoneksikan dengan computer dengan menggunakan kabel USB.
7
Gambar 2.2 Board Arduino Uno ATmega328 R3 back
Gambar 2.3 Rangkaian Arduino Uno.
Berikut ini beberapa konfigurasi dari Arduino Uno ATmega328 : Mikrokontroller ATmega328
8
Beroperasi pada tegangan 5 Volt
Tegangan input (rekomendasi) 7-12 Volt Batas tegangan input 6-20 Volt
Pin digital input/output 14 ( 6 pin output mendukung PWM)
Pin analog input 6
Arus pin per input/output 40 mA Arus pin untuk 3.3 V adalah 50 mA
Flash memory 32 KB (ATmega328) yang mana 2 KB digunakan untuk booloader
SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Kecepatan clock atau detak 16 MHz.
• Power
Arduino Uno dapat diberikan power melalui koneksi USB dari computer atau power supply. Powernya diset secara otomatis. Power supply dapat menggunakan adaptor DC atau baterai. Adaptor dapat dikoneksi dengan mencolok melalui jack adaptor pada koneksi port input supply. Board arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 – 20 volt. Jika supply kurang dari 7 volt terkadang pin 5volt akan menyuplai
9
kurang dari 5 volt dan board menjadi tidak stabil. Jika mengguanakan lebih dari 12 volt, tegangan di regulator bisa menjadi sangat panas, sehingga dapat menyebabkan kerusakan pada board. Rekomendasi tegangan ada pada 7 volt sampai 12 volt.
Penjelasan pin power sebagai berikut : Vin
Tegangan input ke board arduino ketika menggunakan tegangan dari luar ( seperti yang disebutkan pada 5 volt dari koneksi USB atau dari tegangan yang di regulasikan).
Pengguna dapat memberikan tegangan melalui pin input ini, atau jika tegangan suplai menggunakan power jack, aksesnyaa menggunakan pin input ini.
5 Volt
Regulasi power supply digunakan untuk power mikrokontroller dan komponen lainnya pada board.
5 volt dapat melalui Vin menggunakan regulator pada board, atau supply pada USB atau supply regulasi 5V lainnya.
10
3.3 Volt
Suplai 3.3 volt didapat oleh FTDI chip yang ada di board.
Arus maksimumnya adalah 50 mA. Pin Ground
Pin Ground berfungsi sebagai jalur ground pada arduino.
• Memory
ATmega328 32 KB flash memori untuk menyimpan kode, juga 2 KB yang digunakan untuk bootloader. ATmega328 mempunyai 2 KB untuk SRAM dan 1 KB untuk EEPROM.
• Input dan output
Setiap 14 pin digital pada arduino dapat digunakan sebagi input ataupun output, mengguanakan pinMode ( ), digitalWrite ( ), dan digitalRead( ). Input/ output digunakan pada tegangan 5 volt. Setiap dapat menghasilkan atau menerima maksimum 40 mA dan memiliki pull up resistor ( disconnected oleh default) 20 – 50 KOhm. Beberapa pin memiliki fungsi sebagai berikut :
Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirim (TX) TTL data
11
serial. Pin ini terhubung dengan pin yang koresponding dari USB FTDI ke TTL chip serial.
Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasi untuk trigger sebuah interap pada low value, rising atau falling edge, atau perubahan nilai.
PWM : 3, 5, 6 , 9, 10 dan 11. Mendukung 8-bit output pada PWM dengan fungsi analogWrite( ).
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mensuport komunikasi SPI, yang mana masih mendukung hardware, yang tidak termasuk pada bahasa arduino.
LED : 13. Ini dibuat untuk koneksi LED ke digital pin 13. Ketika pin bernilai HIGH, maka LED akan hidup, sebaliknya ketika pin bernilai LOW, maka LED akan mati.
12 2.2 Pemrograman Arduino
Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah sedikit penjelasan yang ditujukan kepada seseorang yang hanya mempunyai sedikit pengalaman pemrograman dan membutuhkan penjelasan singkat mengenai karakter bahasa C dan software Arduino. Untuk penjelasan yang lebih mendalam, web http://Arduino.cc adalah sumber yang lengkap.
2.2.1 Struktur
Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada.
• void setup( ) { }
o Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.
• void loop( ) { }
o 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 Syntax
Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan. • //(komentar satu baris)
• Terkadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang diketik dibelakangnya akan diabaikan oleh program.
13
o Jika mempunyai 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.
• { }(kurung kurawal)
o Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).
• ;(titk koma)
o Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan).
2.2.3 Variabel
Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dan karakter dengan cara yang cerdas.
• int (integer)
o Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.
• long (long)
o 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)
o Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM.
14 • float (float)
o 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)
o Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65). Hanya memakai 1 byte (8 bit) dari RAM.
2.2.4 Operator Matematika
Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana).
• = Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20).
• % Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).
• + Penjumlahan • - Pengurangan • * Perkalian • / Pembagian
2.2.5 Operator Pembanding
Digunakan untuk membandingkan nilai logika.
• == Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar))
15
• != 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))
2.2.6 Struktur Pengaturan
Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan.
1. if..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.
2. for, dengan format seperti berikut ini:
16
Digunakan bila 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–.
3. While, dengan format seperti berikut ini: While(kondisi){
//pernyataan }
while akan melakukan perulangan secara kontinyu dan tidak terbatas sampai ekspresi tersebut menemukan kembali parenthesisnya, () menjadi false. Biasanya digunakan untuk mengetes sebuah sensor karena perulangan ini tidak akan berakhir sampai adanya kondisi eksternal yang menutupnya.
2.3 Ethernet Shield
Arduino Ethernet Shield adalah alat yang dapat menghubungkan arduino ke internet secara cepat. Dengan memasang modul arduino ini pada papan, kemudian konek dengan jaringan melalui kabel RJ45 dan mengikuti instruksi sederhana, maka anda akan bisa mengendalikan dunia anda semua dengan internet. Seperti arduino apabila menggunakan rangkaian arduino ini hardware, software tersedia bebas. Dapat diambil kapan pun dan dimanapun.
17
Gambar 2.4 Arduino Ethernet Shield
Arduino Ethernet Shield adalah papan yang menghubungkan ke internet. Hal ini didasarkan pada chip W5100 Wiznet Ethernet(datasheet). W5100 Wiznet menyediakan jaringan internet (IP) baik TCP dan UDP. Dan didukung oleh 4 soket koneksi yang simultan. Penggunaan Ethernet Shield itu sendiri mengacu pada library Ethernet shield untuk penulisannya. Disana kita dapat mendesign perintah atau interuksi kemudian dituangkan ke dalam arduino Ethernet shield tersebut.
Pemasangan Ethernet shield itu sendiri dapat kita pasang secara bertumpuk, sebab disini ethernet shield mempunyai kawat yang cukup panjang untuk dihubungkan dengan papan arduino. Dengan demikian pin yang dipasang akan lebih utuh.
Ethernet Shield mempunyai koneksi port RJ-45 yang standar, dengan trafo garis yang terintegrasi dan power over Ethernet yang aktif.
18
Gambar 2.5 Board Ethernet Shield
19
Gambar 2.7 Rangkaian Ethernet Shield dan SD card
Di dalam Shield terdapat juga berbagai lampu-lampu indicator yang berfungsi sebagai berikut :
20
PWR : menunjukkan bahwa board dan shield tercatu tegangan.
LINK : menunnjukkan bahwa adanya sebuah link jaringan dan berkedip ketika shield menerima ataupun mengirim data.
FULLD : menunjukkan bahwa koneksi bersifat dua arah yaitu FULL-DUPLEX.
100M : menunjukkan bahwa antar muka (interface) dalam koneksi jaringan adalah 100 Mb/s sedang digunakan. (sebaliknya apabila lampu indicator mati berarti antar muka yang digunakan adalah 10 Mb/s.
RX : berkedip ketika shield sedang menerima data. TX : berkedip ketika shield sedang mengirim data
COLL : berkedip ketika tabrakan dalam pengiriman paket data dalam jaringan (network collisions) terjadi.
2.4 SD card
SD card adalah alat penyimpan data atau lebih familiar disebut alat penyimpan data (memory). Seperti sebagian besar dari kita sudah diketahui bahwa, kecepatan pembacaan SD Card sangat penting peranannya. Setidaknya berpengaruh terhadap beberapa aktifitas yang berhubungan dengan akses ke SD card seperti mengambil file-file yang telah ada.
Kartu SD card adalah hasil dari spesifikasi standard yang ditetapkan oleh assosiasi SD. Saat ini ada 3 faktor yang berbeda untuk SD card :
SD card ukuran standard
Kartu ini paling umum di pakai di camera digital dengan ukuran 24 mm x 32 mm x2.1 mm. Kartu ini paling banyak yang digunakan di camera digital dari semua ukuran.
21
Mini SD
Kartu mini SD ini berukuran 20mm x21.5 mm x 1.4mm. Awalnya kartu mini SD ini sangat umum dalam ponsel. Tapi sekarang seperti yang kita lihat mini SD tidak hanya dipakai di ponsel saja melainkan sudah dipakai untuk camera digital dan alat kompak yang lainnya.
Micro SD
Kartu ini berukuran 11mm x 15mm, kira-kira kartu ini seukuran kuku anak kecil. Kartu micro SD ini sekarang sudah banyak digunakan di kamera digital dan ponsel.
Gambar 2.8 Micro SD dan Adapter
2.5 HTML file server
HTML adalah Hypertext Mark up Language merupakan metode untuk mengaplikasikan konsep hypertext dalam suatu naskah atau dokumen. HTML sendiri bukan tergolong pada suatu bahasa pemrograman karena sifatnya hanya member tanda atau (marking up) pada suatu naskah teks dan bukan sebagai program.
HTML merupakan suatu bahasa mark up yang digunakan untuk membuat sebuah halaman web dalam internet. menampilkan berbagai informasi di dalam
22
sebuah penjelajah web Internet dan formating hypertext sederhana yang ditulis kedalam berkas format ASCII agar dapat menghasilkan tampilan wujud yang terintegerasi. Dengan kata lain, berkas yang dibuat dalam perangkat lunak pengolah kata dan disimpan kedalam format ASCII normal sehingga menjadi home page dengan perintah-perintah HTML.
File server berperan dalam menangani berkas (file) yang dapat diakses oleh client. Sedangkan web server berfungsi untuk menangani halaman-halaman web yang dapat diakses oleh browser.
Pada arduino Ethernet shield, HTML adalah sarana untuk menampilkan teks di halaman web server. Dengan HTML kita dapat mengakses internet dengan menampilkan teks di web server.
Sebuah file server merupakan jantungnya kenbanyakan jaringan, merupakan computer yang sangat cepat. Mempunyai memori yang besar, hardisk yang memiliki kapasitas besar, besar kartu jaringan yang cepat. System operasi jaringan tersimpan disini, juga termasuk didalamnya beberapa aplikasi dan data yang dibutuhkan untuk jaringan. Sebuah file server bertugas mengontrol komunikasi dan informasi diantara node/ komponen dalam suatu jaringan. Sebagai contoh mengelola pengiriman file database atau pengolah kata dari workstasion atau 1 node, ke node yang lain atau menerima email pada saat yang bersamaan dengan tugas yang lain. Terlihat bahwa tugas file server sangat kompleks, dia juga harus menyimpan informasi dan membaginya secara tepat.
23 2.6 Kabel USB
Kabel USB disini adalah alat pendukung yang digunakan untuk komunikasi antara rangkaian arduino dengan PC. Dengan kabel USB ini kita dapat mentransfer data yang telah di program, kemudian mendownloadnya ke arduino.
Gambar 2.9 Kabel USB
2.7 Kabel Ethernet
Untuk menyambungkan antara si arduino Ethernet shield dengan internet setelah di download programnya maka kita menggunakan kabel Ethernet. Kabel Ethernet terdiri dari 4 pasang kawat masing-masing mempunyai warna tertentu (solid), dengan pasangan berwarna putih garis-garis warna tertentu (solid), di gabung menjadi 1. Untuk perfomansi Ethernet yang baik, maka jangan membuka penggabungan kabel Ethernet tersebut. Apabila membuka kita ukur kira-kira ¼ inchi saja.
24
Gambar 2.10 Kabel Ethernet
Terdapat 2 standart untuk kabel Ethernet diantaranya yaitu 568A dan T-568D.
Kabel Ethernet / LAN mempunyai 8 buah kawat (4 pair) untuk kebutuhan koneksi. Yang menggunakan kabel silang Ethernet membutuhkan 2 pasang kawat, 1 pasang berfungsi sebagai “ transmit “ dan 1 pasang lagi sebagai “receive”.