Anda di halaman 1dari 18

BAB II

DASAR TEORI

2.1 Real Time Clock DS1307


Real-time clock disingkat RTC adalah jam di komputer yang
umumnya berupa sirkuit terpadu yang berfungsi sebagai pemelihara waktu.
RTC umumnya memiliki catu daya terpisah dari catu daya komputer
(umumnya berupa baterai litium) sehingga dapat tetap berfungsi ketika catu
daya komputer terputus. Kebanyakan RTC menggunakan oscilator kristal.
RTC tipe DS1307 merupakan jenis pewaktu yang menggunakan
komunikasi serial untuk operasi tulis baca, dengan spesifikasi berikut ini:
Real-time clock (RTC) meyimpan data-data detik, menit, jam, tanggal,
bulan, hari dalam seminggu, dan tahun valid hingga 2100;
56-byte, battery-backed, RAM nonvolatile (NV) RAM untuk
penyimpanan;
Antarmuka serial Two-wire (I2C)
Sinyal luaran gelombang-kotak terprogram (Programmable
squarewave);
Deteksi otomatis kegagalan-daya (power-fail) dan rangkaian switch;
Konsumsi daya kurang dari 500nA menggunakn mode baterei cadangan
dengan operasional osilator;
Tersedia fitur industri dengan ketahanan suhu: -40C hingga +85C
Tersedia dalam kemasan 8-pin DIP atau SOI

Gambar 2.1 Konfigurasi Pin DS1307

http://digilib.mercubuana.ac.id/
6

Tabel 2.1 Fungsi Pin DS1307


No Nama Pin Fungsi

1 X1 Oscillator Crystal

2 X2 32,768KHz

3 VBAT Battery Input (+3V)

4 GND Groundrh

5 SDA Serial Data

6 SCL Serial Clock Input

7 SQW/OUT Square Wave/Output Driver

8 VCC Supply Power

2.2 Liquid Crystal Display


LCD adalah modul penampil yang banyak digunakan karena
tampilannya menarik. LCD yang paling banyak digunakan saat ini adalah
LCD M1632 merupakan modul LCD dengan tampilan 2 x 16 (2 baris x 16
kolom) dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan
mikrokontroller yang didesain khusus untuk mengendalikan LCD. Chip
HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD memiliki
CGROM (Character Generator Read Only Memory), CGRAM (Character
Generator Random Acces Memory), DDRAM (Display Data Random Acces
Memory). Modul LCD M1632 adalah salah satu perangkat peraga yang
banyak digunakan.

http://digilib.mercubuana.ac.id/
7

Penggunaan perangkat LCD sebagai peraga pada alat ini karena LCD
banyak memiliki kelebihan :
Pemakaian arusnya kecil
Dapat menampilkan semua simbol ASCII maupun simbol yang
dibuat sendiri
Pengendaliannya sangat mudah karena sudah dilengkapi dengan unit
pengendali di dalam
Mudah dirangkaikan ke sistem mikrokomputer

Berikut tabel pin untuk LCD M1632. Perbedaan dengan LCD standar
adalah pada kaki 1 Vcc, dan kaki 2 ground, ini kebalikan dengan LCD
standar. Anda dapat menghubungkan pin data ke Port A.
Driver LCD seperti HD44780 memiliki dua register yang aksesnya
diatur menggunakan pin RS. Pada saat Rs berlogika 0, register yang diakses
ialah perintah, sedangkan pada saat Rs berlogika 1, register yang diakses
ialah register data.

15 16
V+BL V-BL
4
RS
6
E LCD 2 x 16 karakter
5
R/ W
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 VSS VLC VDD
14 13 12 11 10 9 8 7 1 3 2

Gambar 0.2 Modul Karakteristik LCD 2x16

Karakteristik yang ada pada LCD antara lain :


a. Mempunyai 16 karakter dengan 2 baris tampilan yang terbentuk dari
matrik titik (dot matrix);
b. Duty ratio : 1/16;

http://digilib.mercubuana.ac.id/
8

c. ROM pembangkit karakter untuk 192 jenis karakter dengan bentuk


karakter huruf : 5 x 7 matrik titik;
d. Mempunyai 8 tipe RAM pembangkit karakter;
e. RAM data tampilan dan RAM pembangkit karakter dapat dibaca dari
unit mikrokontroller;
f. Dilengkapi dengan beberapa perintah yaitu penghapusan tampilan ,
posisi awal kursor, tampilan karakter kedip (display clear), posisi awal
kursor (cursor home), tampilan karakter kedip (display character
blink), dan penggeseran tampilan (display shift);
g. Rangkaian pembangkit detak (clock) internal;
h. Catu daya tunggal + 5V;
i. Rangkaian otomatis reset saat daya dihidupkan;
j. Pemrosesan dengan CMOS;
k. Jangkauan suhu 0 C sampai 50 C.

2.3 Arduino board ATmega 328


Dalam beberapa tahun terakhir, mikrokontroler telah menjadi lebih
murah dan lebih mudah digunakan,hal ini memungkinkan terciptanya alat
yang lebih baik. Arduino adalah sebuah trobosan baru dalam dunia
elektronika, khususnya mikrokontroller. kemajuan yang dibuat dengan
Arduino membawa alat ini satu langkah lebih dekat bagi pemula,
memungkinkan orang untuk memulai sebuah perancangan sistem control
dengan lebih mudah menggunakan Arduino.
Arduino adalah sebuah kit elektronik yang dirancang khusus untuk
memudahkan setiap orang dalam belajar atau mengembangkan perangkat
elektronik yang dapat berinteraksi dengan bermacam- macam sensor dan
pengendali. Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula
yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah
dipelajari. Bahasa yang dipakai dalam Arduino adalah bahasa C yang
disederhanakan dengan bantuan library- library Arduino.

http://digilib.mercubuana.ac.id/
9

Gambar 2.3 Arduino Uno

http://digilib.mercubuana.ac.id/
10

Gambar diatas merupakan salah satu gambar dari versi Arduino, yaitu
Arduino Uno. Arduino Uno adalah board berbasis mikrokontroler
ATmega328. ia memiliki 14 digital input / output pin (dimana 6 dapat
digunakan sebagai output PWM), 6 input analog, 16 MHz osilator kristal,
koneksi USB, jack listrik, ICSP header, dan tombol reset. Ini berisi semua
yang diperlukan untuk mendukung mikrokontroler, hanya terhubung ke
komputer dengan kabel USB atau listrik dengan adaptor AC-DC atau baterai
untuk memulai. Duemilanove dibangun tahun 2009 di Italia dan diberi nama
setelah tahun peluncurannya.

2.3.1 Arduino Uno


Arduino Duemilanove memiliki sejumlah fasilitas untuk
berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler
lainnya. Pada ATmega328 menyediakan (5V) komunikasi serial, yang
tersedia pada pin digital 0 (RX) dan 1 (TX). Sebuah ATMega8U2
pada saluran komunikasi serial board ini melalui USB dan driver
(disertakan dengan perangkat lunak Arduino) menyediakan port com
virtual untuk perangkat lunak pada komputer.
Perangkat lunak Arduino termasuk monitor serial yang
memungkinkan data tekstual sederhana yang harus dikirim ke dan dari
board Arduino. RX dan TX LED pada board arduino akan berkedip
ketika data sedang dikirim melalui chip FTDI dan koneksi USB ke
komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1).
Sebuah perpustakaan Software Serial memungkinkan untuk
komunikasi serial pada setiap pin digital Duemilanove itu.
ATmega328 juga mendukung I2C (TWI) dan SPI komunikasi.

http://digilib.mercubuana.ac.id/
11

2.3.2 Pemograman
Arduino uno dapat diprogram dengan perangkat lunak Arduino
(download). Pilih "Arduino Uno" dari Tools kemudian pilih menu
board sesuai dengan mikrokontroler pada board sesuai tipe arduino
yang dipakai. Arduiono uno dilengkapi dengan bootloader yang
memungkinkan Anda untuk meng- upload kode baru tanpa
menggunakan programmer hardware eksternal. Ini berkomunikasi
menggunakan protokol STK500 asli.

2.3.3 Perangkat Lunak ( Software Reset )


Arduino dirancang dengan cara yang memungkinkan untuk
diatur ulang oleh perangkat lunak yang berjalan pada komputer yang
terhubung. Salah satu perangkat keras flow kontrol (DTR) dari
ATMega8U2 terhubung ke line reset dari ATmega328 melalui
kapasitor 100 nanofarad.
Perangkat lunak Arduino memungkinkan kita untuk meng-
upload kode dengan hanya menekan tombol upload pada menu promt
pada programmer Arduino. Ini berarti bahwa bootloader dapat
memiliki waktu lebih pendek, seperti penurunan DTR dapat
terkoordinasi dengan baik dengan dimulainya upload.
Pengaturan ini memiliki implikasi lain. Ketika Duemilanove
terhubung ke salah satu komputer yang menjalankan Mac OS X atau
Linux, setiap kali me-reset sambungan dibuat untuk perangkat lunak
ini (melalui USB). Untuk ini setengah detik atau lebih, bootloader
berjalan pada Duemilanove tersebut. Sementara itu diprogra m untuk
mengabaikan data, itu akan mencegah beberapa byte pertama dari data
yang dikirim ke board arduino.

http://digilib.mercubuana.ac.id/
12

2.4 Bahasa C
Bahasa C merupakan pengembangan dari bahasa BCPL yang
dikembangkan oleh Martin Richards pada tahun 1967.Selanjutnya bahasa ini
memberikan ide kepada Ken Thompson yang kemudian mengembangkan
bahasa yang disebut bahasa B pada tahun 1970. Perkembangan selanjutnya
dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar tahun 1970-an di
Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell
Laboratories).Bahasa C pertama kali digunakan dikomputer Digital
Equipment Corporation PDP-11 yang menggunakan system operasi UNIX.

Beberapa alasan mengapa bahasa C banyak digunakan, diantaranya


adalah sebagai berikut :
Bahasa C tersedia hampir di semua jenis komputer.
Kode bahasa C sifatnya portabel.
Bahasa C hanya menyediakan sedikit kata kata kunci.
Proses executable program bahasa C lebih cepat.
Dukungan Pustaka yang banyak.
C adalah bahasa yang terstruktur.
Selain bahasa tingkat tinggi, C juga dianggap bahasa tingkat
menengah.
Dalam pemrograman harus tahu bentuk dan karakter perintah dalam
bahasa program. Berikut perintah yang digunakan berdasarakan kategori :
Syntax
Berikut adalah elemen bahasa C yang dibutuhkan untuk format
penulisan
// (komentar satu baris)
Komentar ini biasanya digunakan sebagai catatan dari program
yang dituliskan, supaya mudah dipahami. Komentar ini dituliskan
setelah program yang dibuat. Tulisan yang dibuat setelah tanda
komentar akan diabaikan oleh program.

http://digilib.mercubuana.ac.id/
13

/*.*/ (komentar banyak baris)


Komentar ini digunakan apabila ada banyak catatan dan dituliskan
dalam beberapa baris sebagai komentar. Dan semua yang ditulis
akan diabaikan oleh program atau tidak akan dieksekusi oleh
program.
{.} (kurung kurawal)
Digunakan untuk mendefinisikan kapan blok program akan mulai
dan berakhir. Tanda kurung kurawal digunakan pada fungsi dan
perulangan.
; (titik koma)
Setiap baris kode yang dituliskan harus diakhiri dengan titik koma.
Apabila ada titik koma yang hilang maka program tidak akan bisa
dijalankan.
Variable
Sebuah program secara garis besar dapat didefinisikan sebagai
instruksi untuk memindahkan angka dengan cara yang cerdas.
Variable ini yang digunakan untuk memindahkan. Berikut variable
yang digunakan :
int (integer)
Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak
mempunyai angka decimal dan menyimpan angka dari -32,768
32,768.

long (long)
Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte
(32bit) dari memori (RAM) dan mempunyai rentang -
2,147,483,648 2,147,483,647

http://digilib.mercubuana.ac.id/
14

bit
Variable yang sangat sederhana yang digunakan untuk menyimpan
nilai 0 dan 1. Hal ini sangat berguna karena hanya menggunakan 1
bit.
float (float)
Digunakan untuk angka decimal decimal (floating point).
Memakai 4 byte (32 bit) dari RAM dan Mempunyai rentang nilai -
3.4028235E+38 3.4028235E+38.
char (character)
Menyimpan 1 karakter menggunakan kode ASCII (misalnya
A=65). Hanya memiliki 1 byte (8 bit) dari RAM.

Ope rator matematika


Operator yang digunakan untuk memanipulasi angka, bekerja
seperti matematika yang sederhana. Berikut Operator matematika yang
digunakan :
=
Membuat sesuatu menjadi sama dengan nilai yang lain, sebagai
contoh : x=10*2, x sekarang sama dengan 20.
%
Menghasilkan sisa dari hasil pembagian suatu angka dengan angka
lain, misal 12 % 10, ini akan menghasilkan angka 2.
+
Penjumlahan.
-
Pengurangan.
*
Perkalian.
/
Pembagian.

http://digilib.mercubuana.ac.id/
15

Ope rator Pembanding


Digunakan untuk membandingkan nilai logika. Berikut
operator pembanding yang digunakan :
==
Sama dengan, misal 12 = = 10 adalah False (salah) atau 12 = = 12
adalah True (benar)..
!=
Tidak sama dengan, misal 12 != 10 adalah False (salah) atau 12 !=
12 adalah True (benar).
<
Lebih kecil dari, misal 12 < 10 adalah False (salah) atau 12 < 12
adalah False (salah) atau 12 < 14 adalah True (benar)
>
Lebih besar dari, misal 12 > 14 adalah False (salah) atau 12 > 12
adalah False (salah) atau 12 > 10 adalah True (benar).

Struktur pengaturan
Program sangat tergantung pada pengaturan apa yang
dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan :
if. Else., dengan format seperti berikut ini :
if(kondisi){}
else {}
Dengan struktur seperti diatas program akan menjalankan kode
yang ada didalam kurung kurawal, jika kondisinya terpenuhi atau
benar maka program yang dikurung kurawal di jalankan dan jika
tidak maka yang else yang akan dijalankan.

http://digilib.mercubuana.ac.id/
16

for dengan format berikut ini :


for (int i=0; i < #pengulangan; i++ ){ }
perintah ini akan digunakan bila ingin melakukan pengulangan
kode didalam kurung kurawal beberapa kali, ganti #pengulangan
dengan jumlah pengulangan yang diinginkan. Melakukan
penghitungan ke atas dengan i++ atau ke bawah dengan i--.

while dengan format berikut ini :


int nama_variable =0;
while (syarat_loop)
{
Statement_yang_akan_diulang;
Nama_variable++;
}
Perintah while dapat melakukan looping apabila persyaratanya
benar. dan akan keluar looping apabila persyaratanya sudah tidak
terpenuhi.

2.5 Motor Servo


Motor servo adalah sebuah motor dengan sistem closed feedback di
mana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol
yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor,
serangkaian gear, potensiometer dan rangkaian kontrol. Potensiometer
berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut
dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui
kaki sinyal dari kabel motor.

Tampak pada gambar dengan pulsa 1.5 mS pada periode selebar 2 mS


maka sudut dari sumbu motor akan berada pada posisi tengah. Semakin lebar
pulsa OFF maka akan semakin besar gerakan sumbu ke arah jarum jam dan

http://digilib.mercubuana.ac.id/
17

semakin kecil pulsa OFF maka akan semakin besar gerakan sumbu ke arah
yang berlawanan dengan jarum jam.

Motor servo biasanya hanya bergerak mencapai sudut tertentu saja dan
tidak kontinyu seperti motor DC maupun motor stepper. Walau demikian,
untuk beberapa keperluan tertentu, motor servo dapat dimodifikasi agar
bergerak kontinyu. Pada robot, motor ini sering digunakan untuk bagian kaki,
lengan atau bagianbagian lain yang mempunyai gerakan terbatas dan
membutuhkan torsi cukup besar.

Motor servo adalah motor yang mampu bekerja dua arah (CW dan
CCW) dimana arah dan sudut pergerakan rotornya dapat dikendalikan hanya
dengan memberikan pengaturan duty cycle sinyal PWM pada bagian pin
kontrolnya. Motor Servo tampak pada gambar 1.

Gambar 2.4 Motor Servo

http://digilib.mercubuana.ac.id/
18

Motor Servo merupakan sebuah motor DC yang memiliki rangkaian


control elektronik dan internal gear untuk mengendalikan pergerakan dan
sudut angularnya. Sistem Mekanik Motor Servo tampak pada gambar 2.

Gambar 2.5 Sistem Mekanik Motor Servo

Motor servo adalah motor yang berputar lambat, dimana biasanya


ditunjukkan oleh rate putarannya yang lambat, namun demikian memiliki torsi
yang kuat karena internal gearnya.
Lebih dalam dapat digambarkan bahwa sebuah motor servo memiliki :
3 jalur kabel : power, ground, dan control
Sinyal control mengendalikan posisi
Operasional dari servo motor dikendalikan oleh sebuah pulsa selebar
20 ms, dimana lebar pulsa antara 0.5 ms dan 2 ms menyatakan akhir
dari range sudut maksimum.
Konstruksi didalamnya meliputi internal gear, potensiometer, dan
feedback control.

http://digilib.mercubuana.ac.id/
19

2.5.1. Jenis jenis motor Se rvo


Motor Servo Standar 180
Motor servo jenis ini hanya mampu bergerak dua arah (CW dan
CCW) dengan defleksi masing- masing sudut mencapai 90
sehingga total defleksi sudut dari kanan tengah kiri adalah
180.
Motor Servo Continuous
Motor servo jenis ini mampu bergerak dua arah (CW dan CCW)
tanpa batasan defleksi sudut putar (dapat berputar secara
kontinyu).

2.5.2. Pensinyalan motor servo


Mode pensinyalan motor servo tampak pada gambar 2.6.

Gambar 2.6 Pensinyalan Motor Servo

Contoh dimana bila diberikan pulsa dengan besar 1.5ms


mencapai gerakan 90 derajat, maka bila kita berikan data kurang dari
1.5 ms maka posisi mendekati 0 derajat dan bila kita berikan data lebih
dari 1.5 ms maka posisi mendekati 180 derajat. Contoh Posisi dan
Waktu Pemberian Pulsa tampak pada gambar 4.

http://digilib.mercubuana.ac.id/
20

Gambar 2.7 Contoh Posisi dan Waktu Pe mberian Pulsa

Motor Servo akan bekerja secara baik jika pada bagian pin kontrolnya
diberikan sinyal PWM dengan frekuensi 50Hz.
Dimana pada saat sinyal dengan frekuensi 50Hz tersebut dicapai pada
kondisi Ton duty cycle 1.5ms, maka rotor dari motor akan berhenti
tepat di tengah-tengah (sudut 0 / netral).
Pada saat Ton duty cycle dari sinyal yang diberikan kurang dari 1.5ms,
maka rotor akan berputar ke arah kiri dengan membentuk sudut yang
besarnya linier terhadap besarnya Ton duty cycle, dan akan bertahan
diposisi tersebut.
Dan sebaliknya, jika Ton duty cycle dari sinyal yang diberikan lebih
dari 1.5ms, maka rotor akan berputar ke arah kanan dengan membentuk
sudut yang linier pula terhadap besarnya Ton duty cycle, dan bertahan
diposisi tersebut.

http://digilib.mercubuana.ac.id/
21

Bentuk-Bentuk Motor Servo tampak pada gambar 5.

Gambar 2.8 Bentuk-Bentuk Motor Servo

Dimensi Motor Servo tampak pada gambar 6.

Gambar 2.9 Dimensi Motor Se rvo

Gambar 2.10 Pin-Pin dan Pengkabelan Pada Motor Servo

http://digilib.mercubuana.ac.id/
22

2.5.3. Driver motor DC Servo


Bentuk motor servo dapat dilihat pada gambar 5. Terdapat tiga
utas kabel dengan warnamerah, hitam, dan kuning. Kabel merah dan
hitam harus dihubungkan dengan sumber tegangan4-6 volt dc agar
motor servo dapat bekerja normal. Sedangkan kabel berwarna kuning
adalahkabel data yang dipakai untuk mengatur arah gerak dan posisi
servo. Pergerakan motor servo terhadap perubahan lebar pulsa tampak
pada gambar 8.

Gambar 2.11 Pergerakan motor servo terhadap perubahan lebar pulsa

http://digilib.mercubuana.ac.id/