4 BAB II LANDASAN TEORI 2.1. Mikrokontroler Mikrokontroler

advertisement
BAB II
LANDASAN TEORI
2.1.
Mikrokontroler
Mikrokontroler sering disebut sebagai mikrokomputer atau embedded system.
Mikrokontroler dipandang sebagai suatu sistem yang terdiri atas input,program dan output.
Mikrokontroler dapat diatur oleh sebuah program. Proses untuk memasukkan program ke
dalam mikrokotroler disebut dengan download dan alat yang digunakan disebut dengan
downloader. Seperti sistem komputer nilai tambah sistem mikrokontroler dapat
dilipatgandakan melalui program.
Proses pengerjaan bergantung pada jenis instruksi, bisa membaca, mengubah nilainilai pada register, RAM, isi Port, atau melakukan pembacaan dan dilanjutkan dengan
pengubahan data. Program Counter telah berubah nilainya (baik karena penambahan otomatis
pada langkah 1, atau karena pengubahan-pengubahan pada langkah 2). Selanjutnya yang
dilakukan oleh mikrokontroler adalah mengulang kembali siklus ini pada langkah 1.
Demikian seterusnya hingga power dimatikan. Prinsip kerja mikrokontroler adalah
berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil
data pada ROM dengan alamat sebagaimana yang tertera pada register Program Counter.
Selanjutnya isi dari register Program Counter ditambah dengan satu (Increment) secara
otomatis. Data yang diambil pada ROM merupakan urutan instruksi program yang telah
dibuat dan diisikan sebelumnya oleh pengguna. Instruksi yang diambil tersebut diolah dan
dijalankan oleh mikrokontroler.
Mikrokontroler merupakan suatu IC yang di dalamnya berisi CPU, ROM, RAM, dan
I/O. Dengan adanya CPU tersebut maka mikrokontroler dapat melakukan proses berfikir
berdasarkan program yang telah diberikan kepadanya. Mikrokontroler banyak terdapat pada
peralatan
elektronik
yang serba otomatis, mesin
fax,
dan
peralatan
elektronik
lainnya.Mikrokontroler menerapkan arsitektur Harvard, dalam arsitektur ini penjemputan
instruksi dapat dilaksanakan secara bersamaan dengan pemindahan data. Tetapi dalam
kebanyakan mesin dengan arsitektur Harvard juga memori tersebut dihubungkan ke bus
bersama sehingga paralelismenya sangat
berkurang. Secara umum, mikrokontroler
mengandung tujuh komponen : Prosesor (CPU), ROM, RAM, bandar (port) I/O, Rangkaian
Interupsi, Timer, dan Bus yang dihubungkan.
a.
Prosesor : Prosesor (CPU) melaksanakan penjemputan intruksi dari memori
mendekodekan dan menjalankannya dan mengarahkan perpindahan data antar register
atau antara register dan memori. CPU merupakan bagian
4
utama
dalam
suatu
Universitas Sumatera Utara
mikrokontroler. CPU pada mikrokontroler ada yang berukuran 8 bit ada pula yang
berukuran 16 bit. CPU ini akan membaca program yang tersimpan di dalam ROM dan
melaksanakannya.
b.
ROM
: digunakan untuk menyimpan data yang bersifat permanen. Dalam
mikrokontroler program disimpan dalam ROM, atau EPROM atau Flash EPROM. Ada
mikrokontroler yang dapat ditambah ROM eksternal di luar serpih mikrokontroler.
Disamping ROM untuk program juga digunakan EEPROM untuk menyimpan data. ROM
merupakan suatu memori (alat untuk mengingat) yang sifatnya hanya dibaca saja.
Dengan demikian ROM tidak dapat ditulisi. Dalam dunia mikrokontroler ROM
digunakan untuk menyimpan program bagi mikrokontroler tersebut. Program tersimpan
dalm format biner („0‟ atau „1‟). Susunan bilangan biner tersebut bila telah terbaca oleh
mikrokontroler akan memiliki arti tersendiri.
c.
RAM : RAM digunakan untuk menyimpan data yang bersifat sementara. Dalam
mikrokontroler, RAM yang tersedia sangat sedikit yang sebagiannya digunakan lagi
sebagai register prosesor, dikatakan register dipetakan sebagai memori. Berbeda dengan
ROM, RAM adalah jenis memori selain dapat dibaca juga dapat ditulis berulang kali.
Tentunya dalam pemakaian mikrokontroler ada semacam data yang bisa berubah pada
saat mikrokontroler
tersebut
bekerja. Perubahan data tersebut tentunya juga akan
tersimpan ke dalam memori. Isi pada RAM akan hilang jika catu daya listrik hilang.
d. Timer : Timer (pewaktu) adalah counter (pencacah) yang digunakan untuk
membangkitkan pulsa atau deretan pulsa pada saat-saat tertentu atau dengan
frekuensi tertentu. Pulsa ini digunakan untuk sebagai inetrupsi internal untuk
memulai atau mengakhiri kegiatan tertentu. Dalam kebanyakan mikrokontroler,
pencacah ini adalah pencacah naik, berbeda dengan pencacah turun yang diterapkan
dalam sistem mikroprosesor.
e. PORT I/O : Terdiri atas Port Paralel dan Port Seri yang mempunyai kemampuan
tristate. Pada sebagian mikrokontroler disediakan bandar masukan/keluaran analog.
Fungsi bandar ini pada umumnya dipilih (dikonfigurasi) sebagai masukan/keluaran
paralel/seri analog. Arah aliran data pada Port masukan/keluaran pada umumnya
dipilih melalaui register arah (Data Direction Register, disingkat DDR). Port ini juga
dipetakan sebagai memori. Untuk berkomunikasi dengan dunia luar, maka
mikrokontroler menggunakan terminal I/O (port
I/O), yang digunakan untuk
masukan atau keluaran.
f. Interupsi : interupsi dapat dibedakan atas interupsi perangkat lunak yang
dibangkitkan oleh interupsi yang ditanamkan dalam program dan interupsi perangkat
5
Universitas Sumatera Utara
keras yang dibangkitkan oleh sinyal perangkat keras yang baik yang berasal dari
sumber internal seperti timer atau sumber eksternal dari port seri atau paralel.
g. Bus : bus adalah saluran yang melakukan (membawa) sinyal-sinyal perangkat keras.
Sebagaimana dalam mikroprosesor, bus dibedakan atas bus data, alamat dan kontrol.
Bus data melakukan data antara register dan memori atau I/O, bus ini bersifat dua
arah.
2.2.
Hardware Arduino
Papan Arduino merupakan papan mikrokontroler yang berukuran kecil atau dapat
diartikan juga dengan suatu rangkaian berukuran kecil yang didalamnya terdapat komputer
berbentuk suatu chip yang kecil. Arduino didefinisikan sebagai sebuah platform elektronik
yang open source, berbasis pada software dan hardware yang fleksibel dan mudah digunakan,
yang ditujukan untuk seniman, desainer, hobbies dan setiap orang yang tertarik dalam
membuat objek atau lingkungan yang interaktif. Arduino pada awalnya dikembangkan di
Ivrea, Italia.
Bahasa pemrograman arduino adalah bahasa pemrograman yang umum digunakan
untuk membuat perangkat lunak yang ditanamkan pada arduino board. Pada Gambar dibawah
dapat dilihat sebuah papan Arduino dengan beberapa bagian komponen didalamnya.
Gambar 2.2. Hardware Arduino
Pada hardware arduino terdiri dari 20 pin yang meliputi:
a. 14 pin IO Digital (pin 0–13)
Sejumlah pin digital dengan nomor 0–13 yang dapat dijadikan input atau output yang
diatur dengan cara membuat program IDE.
b. 6 pin Input Analog (pin 0–5)
Sejumlah pin analog bernomor 0–5 yang dapat digunakan untuk membaca nilai input yang
memiliki nilai analog dan mengubahnya ke dalam angka antara 0 dan 1023.
6
Universitas Sumatera Utara
c. 6 pin Output Analog (pin 3, 5, 6, 9, 10 dan 11)
Sejumlah pin yang sebenarnya merupakan pin digital tetapi sejumlah pin tersebut dapat
diprogram kembali menjadi pin output analog dengan cara membuat programnya pada
IDE.
Papan Arduino Uno dapat mengambil daya dari USB port pada komputer dengan
menggunakan USB charger atau dapat pula mengambil daya dengan menggunakan suatu AC
adapter dengan tegangan 9 volt. Jika tidak terdapat power supply yang melalui AC adapter,
maka papan Arduino akan mengambil daya dari USB port. Tetapi apabila diberikan daya
melalui AC adapter secara bersamaan dengan USB port maka papan Arduino akan
mengambil daya melalui AC adapter secara otomatis.
2.3.
Software Arduino
Software arduino yang digunakan adalah driver dan IDE, walaupun masih ada
beberapa software lain yang sangat berguna selama pengembangan arduino. IDE atau
Integrated Development Environment suatu program khusus untuk suatu komputer agar dapat
membuat suatu rancangan atau sketsa program untuk papan Arduino. IDE arduino merupakan
software yang sangat canggih ditulis dengan menggunakan java. IDE arduino terdiri dari:
1.
Editor Program
Sebuah window yang memungkinkan pengguna menulis dan mengedit program dalam
bahasa processing
2.
Compiler
Sebuah modul yang mengubah kode program menjadi kode biner bagaimanapun sebuah
mikrokontroler tidak akan bisa memahami bahasa processing.
3.
Uploader
Sebuah modul yang memuat kode biner dari komputer ke dalam memory di dalam papan
Arduino
Dalam bahasa pemrograman arduino ada tiga bagian utama yaitu :
a.
Struktur Program Arduino
1) Kerangka Program
Kerangka program arduino sangat sederhana, yaitu terdiri atas dua blok. Blok
pertama adalah void setup() dan blok kedua adalah void loop.
Blok Void setup () : Berisi kode program yang hanya dijalankan sekali sesaat setelah
arduino dihidupkan atau di-reset. Merupakan bagian persiapan atau instalasi
program.
7
Universitas Sumatera Utara
Blok void loop() : Berisi kode program yang akan dijalankan terus menerus.
Merupakan tempat untuk program utama.
2)
Sintaks Program
Baik blok void setup loop () maupun blok function harus diberi tanda kurung
kurawal buka “{“ sebagai tanda awal program di blok itu dan kurung kurawal tutup
“}” sebagai tanda akhir program.
b.
Variabel : Sebuah program secara garis besar dapat didefinisikan sebagai instruksi
untuk memindahkan angka dengan cara yang cerdas dengan menggunakan sebuah
varibel.
c.
Fungsi :Pada bagian ini meliputi fungsi input output digital, input output analog,
advanced I/O, fungsi waktu, fungsi matematika serta fungsi komunikasi.
Pada proses Uploader dimana pada proses ini mengubah bahasa pemrograman yang nantinya
dicompile oleh avr-gcc (avr-gcc compiler) yang hasilnya akan disimpan kedalam papan
arduino. Avr-gcc compiler merupakan suatu bagian penting untuk software bersifat open
source. Dengan adanya avr-gcc compiler, maka akan membuat bahasa pemrogaman dapat
dimengerti oleh mikrokontroler. Proses terakhir ini sangat penting, karena dengan adanya
proses ini maka akan membuat proses pemrogaman mikrokontroler menjadi sangat mudah.
Berikut ini merupakan gambaran siklus yang terjadi dalam melakukan pemrogaman Arduino:
1.
Koneksikan papan Arduino dengan komputer melalui USB port.
2.
Tuliskan sketsa rancangan suatu program yang akan dimasukkan ke dalam papan
Arduino.
3.
Upload sketsa program ke dalam papan Arduino melalui kabel USB dan kemudian
tunggu beberapa saat untuk melakukan restart pada papan Arduino.
4.
Papan Arduino akan mengeksekusi rancangan sketsa program yang telah dibuat dan diupload ke papan Arduino.
2.4.
Sumber Daya dan Pin Tegangan Arduino
Arduino uno dapat diberi daya melalui koneksi USB (Universal Serial Bus) atau
melalui power supply eksternal. Jika arduino uno dihubungkan ke kedua sumber daya tersebut
secara bersamaan maka arduino uno akan memilih salah satu sumber daya secara otomatis
untuk digunakan. Power supplay external (yang bukan melalui USB) dapat berasal dari
adaptor AC ke DC atau baterai. Adaptor dapat dihubungkan ke soket power pada arduino uno.
Jika menggunakan baterai, ujung kabel yang dibubungkan ke baterai dimasukkan kedalam pin
GND dan Vin yang berada pada konektor POWER.
8
Universitas Sumatera Utara
Arduino uno dapat beroperasi pada tegangan 6 sampai 20 volt. Jika arduino uno diberi
tegangan di bawah 7 volt, maka pin 5V akan menyediakan tegangan di bawah 5 volt dan
arduino uno munkin bekerja tidak stabil. Jika diberikan tegangan melebihi 12 volt, penstabil
tegangan kemungkinan akan menjadi terlalu panas dan merusak arduino uno. Tegangan
rekomendasi yang diberikan ke arduino uno berkisar antara 7 sampai 12 volt.
2.5.
Bahasa Pemograman C
Bahasa C dikembangkan pada Lab Bell pada tahun 1978, oleh Dennis Ritchi dan
Brian W. Kernighan. Pada tahun 1983 dibuat standar C yaitu stnadar ANSI ( American
National Standards Institute ), yang digunakan sebagai referensi dari berbagai versi C yang
beredar dewasa ini termasuk Turbo C.
Dalam beberapa literature, bahasa C digolongkan bahasa level menenganh karena
bahasa C mengkombinasikan elemen bahasa tinggi dan elemen bahasa rendah. Kemudahan
dalam level rendah merupakan tujuan diwujudkanya bahasa C. pada tahun 1985 lahirlah
pengembangan ANSI C yang dikenal dengan C++
(diciptakan oleh Bjarne Struostrup dari AT % TLab). Bahasa C++ adalah pengembangan dari
bahasa C. bahasa C++ mendukung konsep pemrograman berorientasu objek dan
pemrograman berbasis windows.
Sampai sekarang bahasa C++ terus brkembang dan hasil perkembangannya muncul
bahasa baru pada tahun 1995 (merupakan keluarga C dan C++ yang dinamakan java). Istilah
prosedur dan fungsi dianggap sama dan disebut dengan fungsi saja. Hal ini karena di C++
sebuah prosedur pada dasanya adalah sebuah fungsi yang tidak memiliki tipe data kembalian
(void). Hingga kini bahasa ni masih popular dan penggunaannya tersebar di berbagai platform
dari windows samapi linux dan dari PC hingga main frame.
Ada pun kekurangan dan Kelebihan Bahasa C sebagai berikut :

Kelebihan Bahasa C:
· Bahasa C tersedia hampir di semua jenis computer.
· Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer.
· Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata kunci.
· Proses executable program bahasa C lebih cepat
· Dukungan pustaka yang banyak.
· C adalah bahasa yang terstruktur
· Bahasa C termasuk bahasa tingkat menengah
Penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman yang
berorientasi pada mesin yang merupakan ciri bahasa tingkat rendah. Melainkan berorientasi
9
Universitas Sumatera Utara
pada obyek tetapi dapat dinterprestasikan oleh mesin dengan cepat. Secepat bahasa mesin
inilah salah satu kelebihan c yaitu memiliki kemudahan dalam menyusun programnya
semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat
rendah.

Kekurangan Bahasa C:
· Banyaknya
operator
serta
fleksibilitas
penulisan
program
kadang-kadang
membingungkan pemakai.
· Bagi pemula pada umumnya akan kesulitan menggunakan pointer.

Struktur Bahasa C
a. Program bahasa C tersusun atas sejumlah blok fungsi.
b. Setiap fungsi terdiri dari satu atau beberapa pernyataan untuk melakukan suatu proses
tertentu.
c. Tidak ada perbedaan antara prosedur dan fungsi.
d. Sstiap program bahasa C mempunyai suatu fungsi dengan nama “main” (Program
Utama).
e. Fungsi bisa diletakkan diatas atau dibawah fungsin “main”.
f. Setiap statemen diakhiri dengan semicolon (titik koma).
2.6.
Pompa Air
Pompa merupakan alat mekanis yang dipergunakan untuk memindahkan air dari suatu
tempat ke tempat lain dengan elevasi yang lebih tinggi.Pompa biasanya didesain dengan dua
(2) pengertian yang berbeda.Dengan hidraulik dan persyaratan dari cairan sebagai
pertimbangan. Untuk klasifikasi ini pompa dapat disebut sebagai centrifugal, rotary,
dan reciprocating.
Gambar 2.6. Pompa Air
10
Universitas Sumatera Utara
Berdasarkan tipe atau pemakaian tertentu dari pompa, misalnya deep well pump, pompa
air kotor, pompa bahan kimia, dan lain-lain.
Pada saat penentuan suatu jenis pompa yang akan dipakai, maka ada beberapa pertimbangan
yang perlu diperhatikan. Diantaranya adalah: Head, Kapasitas, Sifat dari fluida yang akan
dipindahkan, Perpipaan dan Penggerak .
2.7.
Android
Pengertian Android adalah sistem operasi berbasis Linux yang dipergunakan sebagai
pengelola sumber daya perangkat keras, baik untuk ponsel, smartphone dan juga PC tablet.
Secara umum Android adalah platform yang terbuka (Open Source) bagi para pengembang
untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh berbagai piranti bergerak.
Dalam penyirman otomatis ini android yang berfungsi sebagai pengatur waktu melalui sinyal
bloetooth.Waktu dapat diatur sebagaimana yang diinginkan oleh pengguna.
Gambar 2.7. Android
11
Universitas Sumatera Utara
Download