BAB II LANDASAN TEORI

advertisement
BAB II
LANDASAN TEORI
2.1
Arduino
Arduino adalah kit elektronik atau papan rangkaian elektronik open
source yang di dalamnya terdapat komponen utama yaitu sebuah chip
mikrokontroler dengan jenis AVR dari perusahaan Atmel. Mikrokontroler itu
sendiri adalah chip atau IC (integrated circuit) yang bisa diprogram menggunakan
komputer. Tujuan menanamkan program pada mikrokontroler adalah agar
rangkaian elektronik dapat membaca input, memproses input tersebut dan
kemudian menghasilkan output sesuai yang diinginkan. Jadi mikrokontroler
bertugas sebagai ‘otak’ yang mengendalikan input, proses dan output sebuah
rangkaian elektronik.
Arduino merupakan inovasi di bidang elektronika yang telah membuat
perubahan besar dalam dunia mikrokontroler sehingga seorang yang awam atau
amatiran bisa membuat proyek-proyek elektronika atau robotika dengan relative
mudah dan cepat. Arduino lahir dari lingkungan mahasiswa dan dosen yang
merasakan
sulitnya
mempelajari
mikrokontroler.
Kemudian
mereka
mengembangkan sebuah sistem minimum berbasis AVR yang dilengkapi dengan
bootloader dan software yang user friendly. Hasilnya adalah sebuah board
mikrokontroler yang bersifat open source yang bisa dipelajari atau dikembangkan
oleh mahasiswa, professional atau penggemar mikrokontroler di seluruh dunia.
Konon Arduino sudah lebih populer dibandingkan Basic Stamp yang lahir lebih
awal yang harganya relative mahal dan close source. Penjualan board Arduino
bisa menghasilkan milyaran Rupiah pada penjual kit online seperti Sparkfun.
Mikrokontroler ada pada perangkat elektronik di sekeliling kita. Misalnya
handphone, MP3 player, DVD, televisi, AC, dll. Mikrokontroler juga dipakai
untuk keperluan mengendalikan robot. Baik robot mainan, maupun robot industri.
Karena komponen utama Arduino adalah mikrokontroler, maka Arduino pun
5
dapat diprogram menggunakan komputer sesuai kebutuhan kita. Adapun data
teknis board Arduino UNO adalah sebagai berikut :
• Mikrokontroler : ATMEGA328
• Tegangan Operasi : 5V
• Tegangan Input (recommended) : 7 - 12 V
• Tegangan Input (limit) : 6-20 V
• Pin digital I/O : 14 (6 diantaranya pin PWM)
• Pin Analog input : 6
• Arus DC per pin I/O : 40 mA
• Arus DC untuk pin 3.3 V : 150 mA
• Flash Memory : 32 KB dengan 0.5KB digunakan untuk bootloader
• SRAM : 2 KB
• EEPROM : 1 KB
• Kecepatan Pewaktuan : 16 Mhz
Gambar 2.1 Bentuk fisik Arduino Uno
Kegunaan Arduino tergantung kepada kita yang membuat program. Arduino bisa
digunakan untuk mengontrol LED, bisa juga digunakan untuk mengontrol
helikopter. Contoh yang sudah pernah dibuat adalah MP3 player, pengontrol
motor, mesin CNC, monitor kelembaban tanah, pengukur jarak, penggerak servo,
balon udara, pengontrol suhu, monitor energi, stasiun cuaca, pembaca RFID, drum
elektronik, GPS logger, monitoring bensin dan masih banyak lagi. Chip pada
6
Arduino sudah dilengkapi dengan bootloader yang akan menangani proses upload
dari komputer. Dengan adanya bootloader ini kita tidak memerlukan chip
programmer lagi, kecuali untuk menanamkan bootloader pada chip yang masih
blank.
Arduino menggunakan chip AVR ATmega 168/328 yang memiliki
fasilitas PWM, komunikasi serial, ADC, timer, interupt, SPI dan I2C. Sehingga
Arduino bisa digabungkan bersama modul atau alat lain dengan protokol yang
berbeda-beda. Ukuran board Arduino cukup kecil, mudah di bawah kemana-mana
bersama laptop atau dimasukan ke dalam saku.Walaupun bahasa pemrograman
Arduino adalah bahasa C/C++, tetapi dengan penambahan library dan fungsifungsi standar membuat pemrograman Arduino lebih mudah dipelajari dan lebih
manusiawi. Contoh, untuk mengirimkan nilai HIGH pada pin 10 pada Arduino,
cukup
menggunakan
fungsi
digitalWrite(10,
HIGH);
Sedangkan
kalau
menggunakan bahasa C aslinya adalah PORTB |=(1<<2);
Tersedia library yang sangat banyak untuk menghubungkan Arduino
dengan macam-macam sensor, aktuator maupun modul komunikasi. Misalnya
library untuk mouse, keyboard, servo, GPS, dsb. Berhubung Arduino adalah open
source, maka library-library ini juga open source dan dapat di download gratis di
website Arduino. Dengan bahasa yang lebih mudah dan adanya library dasar yang
lengkap, maka mengembangkan aplikasi elektronik relatif lebih mudah. Contoh,
kalau kita ingin membuat sensor suhu. Cukup membeli sebuah IC sensor suhu
(misalnya LM35) dan menyambungkan ke Arduino. Kalau suhu tersebut ingin
ditampilkan pada LCD, tinggal membeli sebuah LCD dan menambahkan library
LCD pada program yang sama, dan seterusnya.
Arduino tidak membuat bahasa pemrograman khusus, melainkan
menggunakan Bahasa C yang sudah ada, lebih tepatnya adalah Bahasa C yang
menggunakan compiler AVR-GCC (AVR GNU C-Compiler). Bahasa C adalah
bahasa yang sangat lazim dipakai sejak awal-awal komputer diciptakan dan sangat
berperan dalam perkembangan software. Bahasa C telah membuat bermacammacam sistem operasi dan compiler untuk banyak bahasa pemrograman, misalnya
7
system operasi Unix, Linux, dsb. Bahasa C juga biasanya diajarkan di akademi
dan perguruan tinggi selain bahasa pemrograman Basic atau Pascal. Bahasa C
adalah bahasa pemrograman yang sangat ampuh yang kekuatan nya mendekati
bahasa assembler. Bahasa C menghasilkan file kode objek yang sangat kecil dan
dieksekusi dengan sangat cepat. Karena itu Bahasa C sering digunakan pada
sistem operasi dan pemograman mikrokontroler. Bahasa C adalah multi-platform
Bahasa C bisa diterapkan pada lingkungan Windows, Unix, Linux atau sistem
operasi lain tanpa mengalami perubahan source code. ( Kalaupun ada perubahan,
biasanya sangat minim ). Karena Arduino menggunakan Bahasa C yang multiplatform, maka software Arduino pun bias dijalankan pada semua sistem operasi
yang umum, misalnya: Windows, Linux dan MacOS. Bahasa C mudah dipelajari
Maksud kata ‘mudah’ disini adalah relatif. Tergantung kemampuan setiap user.
Kalau anda sudah mengerti bahasa C, anda bisa melakukan pengembangan
dengan board lain atau mikrokontroler lain dengan lebih mudah. Di Internet
banyak Library Bahasa C untuk
Arduino yang bisa di download dengan gratis. Setiap library Arduino
biasanya disertai dengan contoh pemakaian nya. Keberadaan library-library ini
bukan hanya membantu kita membuat proyek mikrokontroler, tetapi bisa
dijadikan sarana untuk mendalami pemrograman Bahasa C pada mikrokontroler.
Gambar 2.2 Skematik Arduino
8
2.1.1
Soket USB
Soket USB adalah soket untuk kabel USB yang disambungkan ke
komputer atau laptop. Berfungsi untuk mengirimkan program ke Arduino
dan juga sebagai port komunikasi serial.
2.1.2
Input / Output Digital
Input/Output Digital atau digital pin adalah pin-pin untuk
menghubungkan Arduino dengan komponen atau rangkaian digital.
Misalnya kalau ingin membuat LED berkedip, LED tersebut bisa dipasang
pada salah satu pin I/O digital dan ground. Komponen lain yang
menghasilkan
output
digital
atau
menerima
input
digital
bisa
disambungkan ke pin-pin ini.
2.1.3
Input Analog
Input Analog atau analog pin adalah pin-pin yang berfungsi untuk
menerima sinyal dari komponen atau rangkaian analog. Misalnya dari
potensiometer, sensor suhu, sensor cahaya, dsb.
2.1.4
Pin Catu Daya
Pin-pin catu daya adalah pin yang memberikan tegangan untuk
komponen atau rangkaian yang dihubungkan dengan Arduino. Pada
bagian catu daya ini terdapat juga pin Vin dan Reset. Vin digunakan untuk
memberikan tegangan langsung kepada Arduino tanpa melalui tegangan
USB atau adaptor. Reset adalah pin untuk memberikan sinyal reset melaui
tombol atau rangkaian eksternal.
2.1.5
Soket Baterai / Adaptor
Soket baterai atau adaptor digunakan untuk menyuplai Arduino
dengan tegangan dari baterai/adaptor 9V pada saat Arduino sedang tidak
disambungkan ke komputer. Kalau Arduino sedang disambungkan ke
komputer melalui USB, Arduino mendapatkan suplai tegangan dari USB,
jadi tidak perlu memasang baterai/adaptor saat memprogram Arduino.
9
2.2
LCD Keypad Sheild
LCD Keypad shield merupakan shield board yang kompatibel untuk
Arduino mikrokontroler. Board yang menyediakan antarmuka yang user-friendly
untuk penggunaan LCD 16x2, keypad dan arduino mikrokontroler. LCD Keypad
Shield mendukung pengaturan kontras dan warna latar. Tulisan pada LCD
berwarna putih, dengan background biru. Board ini terdiri dari:
1. 16x2 karakter putih LCD backlight biru.
2. Tombol Push butttonter diri dari 6 tombol - pilih, atas, kanan, bawah dan kiri
serta reset.
3. 7 Pin digital untuk koneksi ke keypad (D0, D1, D2, D3, D11, D12, dan D13).
4. 5 Pin analog Arduino mikrokontroler ( A1 sampai A5).
5. Pin digital : 4, 5, 6, 7, 8, 9 dan 10 digunakan sebagai interface ke LCD 16x2
Tabel 2.1 Pin Alokasi LCD Keypad sheild ke LCD
Gambar 2.3 Board LCD Keypad sheild
10
2.3
KEYPAD 4 x 3
Matrik Keypad adalah suatu tombol atau push button yang terdiri atas
baris dan kolom yang memuat nilai angka dan huruf atau simbol. Nilai tersebut
mengidentifikasi outputan yang tersusun atas bit-bit data.
Matrik Keypad 4X3 merupakan susunan 12 tombol membentuk keypad
sebagai sarana masukkan ke mikrokontroler. Meskipun jumlah tombol ada 12 tapi
untuk mengakses ke mikrokontroler hanya memerlukan 7 jalur port paralel.
sedangkan Keypad 4X3 tersusun atas 3 baris dan 4 kolom.
Gambar 2.4 Bentuk dan Koneksi Keypad
Bentuk susunan keypad secara umum terdapat pada gambar 2.5 dimana
pada gambar tersebut masing-masing tombol menghubungkan sebuah jalur output
atau baris (R1 sampai R4) ke sebuah jalur input atau kolom (C1 sampai C3).
Metode Scanning Keypad
Keluaran port keypad baris dan kolomya dihubungkan dengan port
paralel dari mikrokontroler. Kolom dalam keadaan low yang berfungsi sebagai
output port dan baris dihubungkan sebagai input port. Jika pushbutton tidak di
tekan maka baris akan membaca low. Ketika baris membaca high berarti
pushbutton dalam keadaan ditekan. Setiap baris dan kolom dapat ditukarkan
sebagai input atau output dari port.
11
2.4
RELAY
Relay merupakan piranti yang menggunakan magnet listrik untuk
mengoperasikan seperangkat kontak. Susunan relay paling sederhana terdiri atas
kumparan kawat penghantar yang digunakan pada former memutari teras magnet.
Bila kumparan relay dialiri arus, medan magnet yang dibangkitkan
menarik armatur berporos, memaksanya bergerak ke arah atas. Gerakan armatur
ini dipakai melalui pengungkit untuk menutup dan membuka kontak – kontak.
Kontak ini digerakkan oleh magnet yang dihasilkan oleh aliran arus listrik pada
kumparan. Susunan sederhana relay ditunjukkan sebagai berikut :
isolator
kontak-kontak
teras
..
bagian kutub
kumparan
Gambar 2.5 Susunan relay
Gambar 2.1 terdiri dari kumparan kawat penghantar yang digulingkan
pada former memutari teras magnet. Jika kumparan dialiri arus maka medan
magnet yang terjadi akan menarik armatur berporos dan memaksanya bergerak
cepat ke arah atas. Gerakan armatur ini dipakai untuk membuka dan menutup
kontak-kontak.
Susunan kontak-kontak relay ada 3 jenis, yaitu :
1. Normally Open (NO), apabila kontak-kontak tertutup saat relay dicatu.
2. Normally Closed (NC), apabila kontak-kontak terbuka saat relay dicatu.
Tukar Sambung (Change Over/CO), mempunyai kontak tengah yang normal
tertutup tetapi melepaskan diri dari posisi ini dan membuat kontak dengan yang
lain bila relay dicatu.
12
2.5
Power Supply
Power supply digunakan sebagai sumber catu daya guna memberikan
catuan tegangan DC pada tiap blok rangkaian. Pada umumnya power supply
digunakan untuk menghasilkan tegangan DC yang stabil baik 5 Volt atau 24 Volt.
Untuk menstabilkan hasil output digunakan regulator yang sesuai,misal untuk
output 5 Volt digunakan regulator tipe 7805 dan 7824 untuk output 24 Volt.
Selain itu, power supply merupakan rangkaian untuk mengubah sinyal AC mnjadi
sinyal DC. Output AC dari sumber PLN tegangan 220 Volt 60 Hz atau 110 Volt
60 Hz masuk rangkain power supply, tegangan dituruknan menjadi 1,5 Volt
sampai 24 Volt DC.
2.6
Motor Induksi
Motor listrik merupakan perangkat elektromagnetis yang mengubah
energi listrik menjadi energi mekanik. Energi mekanik ini digunakan untuk,
misalnya memutar impeller pompa, fan atau blower, menggerakan kompresor,
mengangkat bahan,dll. Motor listrik digunakan juga di rumah ( contoh mixer, bor
listrik, fan angin) dan di industri.
Mekanisme kerja untuk seluruh jenis motor secara umum :
Arus listrik dalam medan magnet akan memberikan gaya.
Jika kawat yang membawa arus dibengkokkan menjadi sebuah lingkaran /
loop, maka kedua sisi loop, yaitu pada sudut kanan medan magnet, akan
mendapatkan gaya pada arah yang berlawanan.
Pasangan gaya menghasilkan tenaga putar / torque untuk memutar kumparan.
Motor-motor memiliki beberapa loop pada dinamonya untuk memberikan
tenaga putaran yang lebih seragam dan medan magnetnya dihasilkan oleh
susunan elektromagnetik yang disebut kumparan medan.
Motor Induksi merupakan jenis motor listrik AC. Motor induksi
merupakan alat listrik yang mengubah energi listrik menjadi energi mekanik.
Listrik yang diubah adalah listrik 1 atau 3 phasa. Motor induksi sering juga
disebut motor tidak serempak atau motor asinkron. Prinsip kerja motor induksi
dapat dilihat pada gambar 2.6
13
Gambar 2.6 Prinsip Kerja Motor Induksi
Ketika tegangan phasa U masuk ke belitan stator menjadikan kutub S (
south = selatan ), garis-garis gaya magnet mengalir melalui stator, sedangkan dua
kutub lainnya adalah N ( north = utara ) untuk phasa V dan phasa W. Kompas
akan saling tarik - menarik dengan kutub S.
Berikutnya kutub S pindah ke phasa V, kompas berputar 120°,
dilanjutkan kutub S pindah ke phasa W, sehingga pada belitan stator timbul
medan magnet putar. Buktinya kompas akan memutar lagi menjadi 240°.
Kejadian berlangsung silih berganti membentuk medan magnet putar sehingga
kompas berputar dalam satu putaran penuh, proses ini berlangsung terus menerus.
Dalam motor induksi kompas digantikan oleh rotor sangkar yang akan berputar
pada porosnya. Karena ada perbedaan putaran antara medan putar stator dengan
putaran rotor, maka disebut motor induksi tidak serempak atau motor asinkron.
Konstruksi motor induksi secara detail terdiri atas dua bagian, yaitu:
bagian stator dan bagian rotor. Stator adalah bagian motor yang diam terdiri:
badan motor, inti stator, belitan stator, bearing, dan terminal box. Bagian rotor
adalah bagian motor yang berputar, terdiri atas rotor sangkar, dan poros rotor.
Konstruksi motor induksi tidak ada bagian rotor yang bersentuhan dengan bagian
stator, karena dalam motor induksi tidak ada komutator dan sikat arang.
14
2.7
Aplikasi Program Arduino IDE ( Integrated Development Enviroment )
Ketika membuka program Arduino IDE ( Integrated Development
Enviroment ), akan terlihat serupa dengan tampilan gambar 2.5 dibawah ini. Jika
kita menggunakan Windows atau Linux, akan terlihat perbedaan, tetapi pada
dasarnya IDE ( Integrated Development Enviroment ) akan sama tidak perduli
Operasi Sistemnya apa yang digunakan.
Gambar 2.7 Tampilan program IDE
Toolbar pada IDE terdiri dari tujuh tombol, diantaranya :
1. Verify / compile
Digunakan untuk memeriksa atau verifikasi apakah kode sudah benar
sebelum di kirim ke papan Arduino.
2. Stop
Berfungsi untuk memberhentikan Serial Monitor dari pengoprasian.
3. Open
Menampilkan list lembar kerja yang telah di simpan.
15
4. New
Berfungsi untuk membuat tampilan lembar kerja atau sketch baru untuk
memasukan kode.
5. Save
Menyimpan lembar kerja atau sketch.
6. Upload
Mengirim lembar kerja kedalam papan Arduino.
7. Serial Monitor
Menampilkan hasil data-data yang telah dikirim dari Arduino.
Gambar 2.8 Tampilan ToolBar program IDE
Untuk memulai Serial Monitor, dapat dilakukan dengan menekan tombol
Serial Monitor dan untuk menghentikan tekan tombol Stop. Pada Linux, Arduino
akan me-reset sendiri ketika meng-klik tombol Serial Monitor. Untuk
mengoprasikan atau menggabungkan Arduino pada PC ( Personal Computer ),
kita dapat menggunakan program lainnya seperti Processing, Flash, MaxMSP,
Visual Basic, dan lain – lain.
2.7.1. Menu
Pada
window
program
Integrated
Development
Enviroment
Pada Integrated Development Enviroment program terdapat
beberapa
menu
yang dapat diakses untuk beberapa fungsi tertentu,
diantaranya adalah :
1. Menu Help
Pada menu ini dapat membantu kita menemukan informasi lebih
lagi tentang IDE ( Integrated Development Enviroment ). Terdiri dari :
* Getting Started
* Find in reference
16
* Enviroment
* About Arduino
* Troubleshooting
* Visit Arduino.cc
* Reference
* Frequently Asked Question
2. Menu Tools
Pada menu ini terdapat peralatan untuk mengisi lembar kerja dari
mulai mengedit kode - kode agar terlihat lebih rapih, memilih tipe
papan Arduino, memilih serial port dan lain-lain, diantaranya :
* Auto format
* Burn Bootloader
* Archive Sketch
* Serial Port
* Fix Encoding dan Reload
* Board
* Serial Monitor
3. Menu Edit
Pada menu ini kita dapat melakukan edit kode pada lembar kerja, menu
Edit ini berisi diantaranya :
* Undo addition
* Find nex
* Cut
* Find
* Copy
* Decrease Indent
* Copy from forum
* Increase Indent
* Copy as HTML
* Comment / uncomment
4. Menu File
Pada menu ini kita dapat mengakses atau membuat lembar kerja baru,
menyimpan atau mengirim program ke papan Aduino. Menu File ini
berisi antara lain :
* New
* Quit
* Open
* Preferences
* Sketch book
* Print
* Example
* Page setup
* Close
* Upload to I/O Board
* Save
* Save as
17
5. Menu Sketch
Pada menu ini kita dapat menambah file kerja, mengeksekusi program
yang kita buat, mengimport Library di dalam menu ini antara lain :
* Verify / Compile
* Import Library
* Add File
* Show Sketch Folder
* Stop
2.7.2. Referensi
Bahasa
Program
Integrated
Development
Enviroment
Bahasa program pada Arduino dibedakan menjadi beberapa bagian,
antara lain :
1. Structure
setup
loop
2. Control Structures
if
if...else
for
switch case
while
do... while
break
continue
return
goto
3. Variable Scope & Qualifiers
variable scope
static
volatile
const
18
4. Further Syntax
; ( semicolon )
{} ( curly braces )
// ( single line comment )
/* */ ( multi-line comment )
# define
# include
5. Arithmetic Operators
= (assignment operator)
+ (addition)
-(subtraction)
* (multiplication)
/ (division)
% (modulo)
6. Co mparison Operators
== ( equal to )
!= ( not equal to )
< ( less than )
> ( greater than )
<= ( less than or equal to )
>= ( greater than or equal to )
7. Bitwise Operators
& (bitwise and)
| (bitwise or)
^ (bitwise xor)
~ (bitwise not)
<< (bitshift left)
>> (bitshift right)
19
8. Boolean Operators
&& (and)
|| (o r)
! (not)
9. Co mpound Operators
++ (increment)
-- (decrement)
+= (compound addition)
-= (compound subtractio n)
*= (compound multiplication)
/= (compound division)
&= (compound bitwise and)
|= (compound bitwise or)
10. Data Types
void
boolean
char
unsigned char
byte
int
unsigned int
word
long
unsigned long
float
double
string - char array
String - object
Array
20
11. Pointer Access Operators
* dereference operator
& reference operator
12. Constants
high | low
input | output
true | false
integer constants
floating point constants
13. Conversion
char
byte
int
word
long
float
14. Utilities
sizeof
15. Co mmunication
Serial
16. Digital I/O
pinMode
digitalWrite
digitalRead
17. Random Numbers
randomSeed
random
21
18. Analog I/O
analogReference
analogRead
analogWrite
PWM
19. Advanced I/O
tone
noTone
shiftOut
pulseIn
20. Math
min
max
abs
constrain
map
pow
sqrt
21. Bits and Bytes
lowByte
highByte
bitR ead
bitWrite
bitSet
bitC lear
bit
22. External Interrupts
attachInterrupt
detachInterrupt
22
23. Time
millis
micros
delay
delayMicroseconds
24. Interrupts
interrupts
noInterrupts
23
Download