4 BAB II KAJIAN PUSTAKA 2.1 Tinjauan Mutakhir Penelitian ini di

advertisement
4
BAB II
KAJIAN PUSTAKA
2.1 Tinjauan Mutakhir
Penelitian ini di peruntukan untuk tugas akhir dengan judul “Rancang
Bangun Sistem Monitoring Output dan Pencatatan Data pada Panel Surya
Berbasis Mikrokontroler Arduino”.Penelitian ini mengacu pada beberapa
sumber dan tinjauan yang sudah ada dimana masing-masing penulis
menggunakan metode dan simulasi yang berbeda sesuai dengan permasalahan
yang akan dibahas. Dari perbandingan tersebut akan terlihat perbedaan peneltian
dengan yang dilakukan penulis. Berikut merupakan uraian singkat referensi
tersebut :
1. Penelitian ini berjudul ”Rancang Bangun Sistem Monitoring Daya Listrik
pada Fotovoltaik Secara Realtime Berbasis Mikrokontroler Atmega 16”
oleh Alfiansyah, E. ; Jurusan Teknik Elektro, Fakultas Teknik, Universitas
Indonesia ; Depok 2009. Pada penelitian ini membahas tentang merancang dan
membangun
sebuah
sistem
monitoring
pada
fotovoltaik
dengan
memannfaatkan mikrokotroler dan komputer, dimana mikrokontroler berfungsi
sebagai kontrol aksi monitoring fotovoltaik sekaligus menghubungkannya
dengan komputer. Komputer berfungsisebagai tempat memproses data-data
yang dikirimkan oleh mikrokontroler dan menampilkannya pada monitor. Pada
peelitian ini didapatkan hasil sebagai berikut : 1) Sistem monitoring secara
realtime pada fotovoltaik dalam bentuk hardware dan software bertujuan untuk
memberikan kemudahan pengumpulan dan pengolahan data energi listrik yang
dihasilkan dari rangkaian modul fotovoltaik secara digital dengan memiliki
keakurasian yang tinggi dalam ketelitian pengukuran mengenai informasi
berupa tegangan dan arus dari fotovoltaik itu sendiri, sehingga daya output
yang dihasilkan bisa langsung diketahui untuk penerapan aplikasi selanjutnya.
2) Dari pengujian rangkaian op-amp dapat diketahui bahwa nilai pengukuran
selalu__lebih_besar_dari__teori_tetapi_tidak mengurangi ketelitian dalam
4
5
pengukuran tegangan dari fotovoltaik. Rangkaian Op-Amp ini berfungsi
sebagai sensor tegangan yang dihasilkan dari fotovoltaik dengan memiliki
keakurasian sebesar 97,34 %. 3) Pada DCS-01 sebagai sensor arus memiliki
keakurasian yang lebih baik. Dimana sensor ini dapat mendeteksi arus sampai
20 Ampere. Tegangan terbesar yang dihasilkan dari sensor arus tersebut
didapatkan saat tegangan yang dihasilkan dari modul fotovoltaik bernilai
maksimum. Tegangan maksimum yang dihasilkan oleh sensor arus DCS-01
sebagai salah satu rangkaian monitoring untuk mendeteksi arus dari rangkaian
modul photovoltaik dengan beban 220 Ω ini sebesar 2,58 Volt, sehingga dari
grafik keluaran terhadap arus yang disensor menghasilkan arus sebesar 0,8
Ampere.
2. Penelitian ini berjudul ”Perancangan Sistem Data Logger Temperatur
Baterai Berbasis Arduino Duemilanove” oleh Hartono, R. ; Jurusan Teknik
Elektro, Fakultas Teknik, Universitas Jember ; Jember 2013. Pada penelitian
ini menghasilkan data logger yang berguna menyimpan data suhu dan dapat
difungsikan untuk menyimpan data suhu baterai mobil listrik Sinosi, Kapasitas
SD Card / memori dalam data logger ini dapat menyimpan data selama 738
hari yang menyimpan data perdetik melalui pembacaan data suhu 4 buah
sensor LM 35, Mikrokontroler digunakan untuk pengendalian sistem kerja dari
rangkaian data logger ini adalah Modul Arduino Duemilanove
3. Penelitian ini berjudul ”Rancang Bangun Sistem Moitoring Tegangan, Arus
da Temperatur pada Sistem Pencatu Daya Listrik di Teknik Elektro
Berbasis Mikrokontroler Atmega 128” oleh Suryawan, D.W ; Jurusan
Teknik Elektro, Fakultas Teknik, Universitas Diponogoro ; Semarang. Pada
penelitian ini menghasilkan sebuah alat monitoring peralatan pencatu daya
listrik. Parameter yang dimonitoring antara lain tegangan dan arus pada tiap
fasa di sisi beban, temperatur generator, temperatur motor genset, temperatur
cubical, temperatur ruangan LVMDP, temperatur sirip trafo. Alat ukur pencatu
daya listrik ini menggunakan transformator step down sebagai sensor tegangan
dengan kemampuan pengukuran tehadap tegangan antara 0 V – 240 V. CT
ratio 100/5 A sebagai sensor arus dengan kemampuan pengukuran tehadap arus
6
antara 0 A – 87 A. Sensor temperatur yang digunakan adalah DS18B20 dengan
kemampuan pengukuran temperatur antara -50°C sampai dengan 120°C.
Sistem monitoring juga dilengkapi dengan tanda peringatan yang berupa
sebuah alarm.
2.2 Tinjauan Pustaka
2.2.1 Sensor arus
Sensor arus salah satu alat yang berfungsi untuk mengukur kuat arus
listrik. Sensor arus ACS712 menggunakan metode Hall Effect Sensor. Hall Effect
Sensor merupakan sensor yang digunakan untuk mendeteksi medan magnet.
Gambar 2.1 Sensor Arus
Sumber : http://www.aliexpress.com
Hall Effect Sensor akan menghasilkan sebuah tegangan yang proporsional
dengan kekuatan medan magnet yang diterima oleh sensor tersebut. Pendeteksian
perubahan kekuatan medan magnet cukup mudah dan tidak memerlukan apapun
selain sebuah inductor yang berfungsi sebagai sensornya. Kelemahan dari detektor
dengan menggunakan induktor adalah kekuatan medan magnet yang statis
(kekuatan medan magnetnya tidak berubah) tidak dapat dideteksi. Oleh sebab itu
diperlukan cara yang lain untuk mendeteksinya yaitu dengan sensor yang
dinamakan dengan ‘hall effect’ sensor. Sensor ini terdiri dari sebuah lapisan
silikon yang berfungsi untuk mengalirkan arus listrik. Dengan metode ini arus
yang dilewatkan akan terbaca pada fungsi besaran tegangan berbentuk gelombang
sinusoidal.
7
2.2.2 Sensor tegangan
Sensor tegangan salah satu jenis sensor yang berfungsi untuk mengukur
tegangan listrik. Sensor ini didasarkan pada prinsip tekanan resistensi dan dapat
membuat tegangan input dari terminal mengurangi 5 kali dari tegangan asli.
Berikut ini adalah gambar dari sesor tegangan.
Gambar 2.2 Sensor Tegangan
Sumber : http://www.aliexpress.com
Berikut ini adalah konfigurasi pemasangan dari sensor tegangan yang akan
di hubungkan pada Arduino.
Gambar 2.3 Konfigurasi Sensor Tegangan ke Arduino
Sumber : http://www.emartee.com
2.2.3 Arduino
Arduino adalah kit elektronik atau papan rangkaian elektronik open
source
yang didalamnya terdapat komponen utama yaitu sebuah chip
mikrokontroler dengan jenis AVR dari perusahaan Atmel.
8
Arduino bersifat open source, tidak hanya softwarenya arduino yang
bersifat opensource melainkan hardware arduino pun bersifat open source.
Diagram rangkaian elektronik arduino digratiskan kepada semua orang. Semua
orang bisa bebas mengunduh gambar rangkaian arduino, membeli komponenkomponennya, membuat PCB-nya dan merangkainya sendiri tanpa harus
membayar kepada para pembuat Arduino. Arduino tidak hanya sekedar sebuah
alat pengembangan, tetapi arduino merupakan kombinasi dari hardware, bahasa
pemrograman dan Integrated Development Environment (IDE) yang canggih. IDE
adalah sebuah software yang sangat berperan untuk menulis program, mengcompile menjadi kode biner dan meng-upload ke dalam memori mikrokontroler.
Menurut Ardi
Winoto (2008)
mikrokontroler adalah sebuah
sistem
microprocessor dimana didalamnya sudah terdapat CPU, ROM, RAM, I/0, clock
dan peralatan internal lainnya yang sudah terhubung dan terorganisasi dengan
baik oleh pabrik pembuatannya dan dikemas dalam satu chip yang siap pakai,
sehingga dapat langsung memprogram isi ROM sesuai dengan aturan penggunaan
oleh pabrik pembuatannya.
Mikrokontroler ada pada perangkat elektronik sehari-hari. Misalnya
handphone, MP3 player, DVD, televisi, AC, dll. Mikrokontroler juga dipakai
untuk keperluan mengendalikan robot, baik robot mainan, maupun robot industri.
Komponen utama arduino adalah mikrokontroler, maka arduino juga dapat
diprogram menggunakan komputer sesuai kebutuhan.
2.2.3.1 Bahasa pemrograman arduino
Bahasa pemrograman Arduino menggunakan bahasa C yang sudah
dipermudah menggunakan fungsi-fungsi yang sederhana sehingga pemula pun
bisa
mempelajarinya
dengan
cukup
mudah.
Software
arduino
IDE
(Integrated Development Enviroment) dibutuhkan untuk membuat program
arduino dan mengupload ke dalam board arduino.
9
A. Struktur pemrograman
Struktur dasar dari bahasa pemrograman arduino terdiri dari dua bagian
yaitu setup() dan loop(). Setup() berfungsi untuk inisialisasi program yang hanya
dijalankan sekali di awal program, sedangkan loop() berfungsi untuk menjalankan
bagian program yang akan di jalankan berulang-ulang untuk selamanya.
void setup( )
{
// Statement;
}
void loop( )
{
// Statement;
}
Fungsi setup() hanya dipanggil satu kali diawal program dijalankan.
Fungsi setup() biasaya digunakan untuk inisialisasi, menentukan mode pada pin,
memulai komunikasi serial dan fungsi-fungsi lainnya. Fungsi setup() harus di
terdapat pada program walaupun tidak ada statement yang di jalankan.
void setup()
{
pinMode (5, INPUT); // Berfungsi mengatur pin 5
// pada arduino sebagai input
}
Setelah fungsi setup() di jalankan maka secara langsung akan di lanjutkan
ke fungsi loop(). Fungsi loop() di jalankan berurutan dari statement awal sampai
akhir dan kemudian akan terus-menerus diulang.
void loop()
{
digitalWrite(3, HIGH);// menyalakan pin 3arduino
delay(2000); // pause selama 2 detik
.digitalWrit(3, LOW); //mematikan pin 3 arduino
delay(500); // pause selama 1/2 detik
}
10
Kurung kurawal (Curly brace, {}) berfungsi untuk mendefinisikan awal
dan akhir dari sebuah blok fungsi. Ketika suatu blok fungsi tidak berisi kurung
kurawal maka akan terjadi laporan error ketika di compile.
Semicolon (;) berfungsi untuk memberikan batas antara statement program
dan statement program lainnya.
B. Function
Function (fungsi) adalah blok pemrograman yang mempunyai nama dan
mempunyai statement yang akan di jalankan ketika fungsi di panggil. Void setup()
dan void loop() juga merupakan fungsi pada pemrograman arduino. Adapun
fungsi lain dapat dibuat sesuai dengan keperluan. Adapun cara pendeklarasian
fungsi adalah sebagai berikut :
type functionName(parameters)
{
//statement;
}
Contoh:
int jumlah()
{
int a; // membuat variabel ‘a’ bertipe integer
a = analogRead(1); // baca nilai pada pin 1
return a; // return nilai a
}
Pada contoh di atas merupakan fungsi yang memiliki nilai balik int
(integer). Jika suatu fungsi tidak membutuhkan adanya nilai balik maka type
function harus void.
C. Comment
Pada pemrograman arduino ada dua jenis comment yaitu blok comment
dan line comment. Semua statement yang terdapat pada blok comments tidak akan
di jalankan dan tidak di compile pada board arduino sehingga tidak
mempengaruhi besar program yang di masukkan ke dalan board arduino.
11
Line comment mempunyai fungsi yang sama seperti blok comment hanya
pada line comment semua statement yang berada setelah garis miring (/) tidak
akan dijalankan dan di compile pada board arduino.
/*
block comment
*/
// line comment
D. Variabel
Variabel berfungsi sebgai penyimpan nilai yang digunakan pada program.
Variabel dapat dirubah nilainya sesuai dengan statement yang dijalankan.
Variabel dapat dideklarasikan dengan menentukan tipe variabel dan nilai awal
variabel.
Type variableName = 0;
Variabel yang dideklarasikan pada awal program sebelum void setup()
disebut dengan variabel global. Variabel global dapat digunakan pada semua blok
fungsi dan statement dalam program. Sedangkan variabel lokal dapat
dideklarasikan secara lokal di dalam sebuah fungsi ataupun di dalam suatu blok
pengulangan. Variabel lokal hanya dapat digunakan pada blok yang bersangkutan.
E. Tipe Data
Tabel 2.1 Tipe data bahasa pemrograman arduino.
No.
1
Tipe
Data
Byte
Penulisan
byte
Keterangan
Range
Tipe data yang dapat menyimpan 0-255
8-bit nilai angka bilangan asli
tanapa koma.
2
Integer
int
Tipe data yang dapat menyimpan -32.768
16-bit nilai bilangan bulat tanpa 32.767
koma.
s/d
12
2
Long
long
Tipe data yang lebih besar dari -2.147.483.648
integer, dapat menyimpan 32-bit s/d
nilai bilangan bulat tanpa koma.
3
Float
float
2.147.483.647
Tipe data yang dapat menyimpan 32-bit
nilai
angka
bilangan 3.4028235E+38
desimal.
s/d
3.4028235E+38
4
Word
word
Tipe data yang dapat menyimpan 0 s/d 65535
16-bit nilai bilangan bulat tanpa
koma.
5
Short
short
Tipe data yang dapat menyimpan -32.768
s/d
16-bit nilai bilangan sama seperti 32.767
tipe data int.
6
Double
double
Tipe data yang dapat menyimpan 32-bit
nilai
angka
bilangan 3.4028235E+38
decimal sama seperti tipe data s/d
float.
7
Array
3.4028235E+38
tipeData
Tipe
data
array
merupakan
x[]
kumpulan nilai yang dapat di
akses dengan indeks number dan
perlu dideklarasikan tipe datanya
terlebih dahulu. Nilai array dapat
di
panggil
dengan
cara
menuliskan nama array dan index
numbernya. Indeks pada array
dimulai dari 0.
8
Boolean boolean
Tipe data yang hanya mempunyai
dua nilai, yaitu true atau false
(benar atau salah).
13
9
Void
void
Tipe data yang hanya digunakan
pada deklarasi fungsi.
10
Char
char
Tipe data yang dapat menyimpan
nilai karakter.
11
String
String
Tipe data yang berfungsi untuk
memanipulasi data teks.
F. Operator Aritmatika
Operator aritmatika pada bahasa pemrograman arduino terdiri dari
penjumlahan (+), pengurangan(-), pengkalian(*), dan pembagian(/). Pemilihan
tipe data harus diperhatikan dalam pemilihan operator aritmatika agar tidak terjadi
overflow range data.
Pada bahasa pemrograman arduino terdapat kombinasi operator aritmatika
yang biasanya digunakan pada pengulangan. Berikut operator kombinasi pada
bahasa pemrograman arduino :
1. x++; memiliki fungsi menaikan nilai x sebesar 1.
2. x--; memiliki fungsi mengurangi nilai x sebesar 1.
3. x += y; memiliki fungsi sama seperti x = x + y.
4. x -= y; memiliki fungsi sama seperti x = x – y.
5. x *= y; memiliki fungsi sama seperti x = x * y.
6. x /= y; memiliki fungsi sama seperti x = x / y.
Pada bahasa pemrograman arduino terdapat operator perbandingan seperti
pada bahasa pemrograman yang lain. Operator perbandingan pada bahasa
pemrograman arduino membandingkan dua variabel dan apabila terpenuhi akan
bernilai 1 atau true. Operator perbandingan ini banyak digunakan dalam operator
bersyarat. Berikut operator perbandingan pada bahasa pemrograman arduino :
1. x == y; membandingkan nilai x sama dengan y.
2. x != y; membandingkan nilai x tidak sama dengan y.
3. x < y; membandingkan nilai x lebih kecil dari y.
4. x > y; membandingkan nilai x lebih besar dari y.
5. x <= y; membandingkan nilai x lebih kecil dari sama dengan y.
14
6. x >= y; membandingkan nilai x lebih besar dari sama dengan y.
Pada bahasa pemrograman arduino terdapat 3 operator logika yaitu : AND,
OR, dan NOT. Operator logika digunakan untuk membandingkan 2 ekspresi dan
mengembalikan nilai balik baik benar ataupun salah. Operator logika biasanya
digunakan pada if statement.
1. Logika AND
Logika AND bernilai benar jika kedua operator perbandingan terpenuhi.
Contoh :
If ( x > 0 && x < 3)
2. Logika OR
Logika OR bernilai benar jika salah satu operator perbandingan terpenuhi.
Contoh :
If (x < 5 || x = 0)
3. Logika NOT
Logika NOT bernilai benar jika ekspresi operator salah.
Contoh :
If (x != 0)
G. Konstanta
Arduino mempunyai beberapa variabel konstanta. Konstanta di kelasifikasi
berdasarkan group.
1. TRUE / FALSE
Merupakan konstanta boolean yang mendefinisikan logika TRUE/FALSE.
False mendifinisikan 0 dan True mendifinisikan 1.
Contoh :
15
If (
{
x == TRUE );
//statement
}
2. HIGH / LOW
Konstanta HIGH/LOW biasanya digunakan pada saat membaca dan
menulis ke pin digital. HIGH di definisikan sebagai 1 sedangkan LOW sebagai 0.
digitalWrite( 3, HIGH );
3. INPUT / OUTPUT
Konstanta INPUT/OUTPUT biasanya digunakan pada fungsi pinMode()
untuk mendifinisikam mode pin digital sebagai input ataupun sebagai output.
pinMode( 3, INPUT );
H. Flow Control
1. If
Operator if akan menjalankan statement yang ada di dalamnya jika kondisi
pada operator if sudah terpenuhi dan jika kondisi if tidak terpenuhi maka
statement yang berada di dalam if akan diabaikan.
Contoh :
If ( variabel == value )
{
//statement
}
2. If... else
Operator if .. else akan menjalankan statement yang ada di dalamnya
apabila kondisi pada operator if sudah terpenuhi dan jika kondisi if tidak terpenuhi
maka akan menjalankan statement yang berada di dalam operator else.
Contoh :
16
If ( variabel == value )
{
// statement
}
Else
{
// statement
}
3. For
Operator for berfungsi untuk melakukan pengulangan statement yang
berada di dalam kurung kurawal, sampai kondisi pengulangan terpenuhi.
Contoh :
For ( initialization; condition; expression )
{
// statement;
}
4. While
Operator berfungsi mengulang statement yang berada di dalam kurung
kurawal terus-menerus apabila kondisi terpenuhi. Operator while akan berhenti
dijalankan apabila kondisi pengulangan bernilai salah.
While ( variabel == value )
{
// statement;
}
5. Do... while
Operator do…while mempunyai fungsi yang sama dengan operator while,
tetapi pada operator do…while pengecekan dilakukan diakhir, jadi pengulangan
akan tetap dijalankan walaupun kondisi awalnya tidak terpenuhi.
Do
{
// statement;
}
While ( variabel == value );
17
I. Digital dan Analog I/O
1. Digital I/O
Input / output digital pada board arduino mempunyai jumlah berbedabeda tergantung jenis board arduino yang digunakan. Pada board arduino mega
2560 terdapat 54 pin digital, pengalamatnya mulai 0 - 53, ada saat tertentu I/O 0
dan 1 tidak bisa di gunakan karena di pakai untuk komunikasi serial.
Pada fungsi void setup() digunakan mengkonfigurasi pin sebagai input
atau output. Pin digital arduino di konfigurasi awal diatur sebagai input sehingga
untuk merubahnya harus menggunakan operator pinMode(pin, mode).
pinMode (pin, OUTPUT);
// mengset pin sebagai output
digitalWrite(pin, HIGH); // pin ditulis HIGH
digitalRead(pin); //membaca nilai dari pin
2. Analog I/O
Input / ouput analog pada board arduino mempunyai jumlah berbeda-beda
tergantung jenis board arduino yang digunakan. Pada board arduino mega 2560
terdapat 16 pin analog, pengalamatnya mulai 0 – 15.
Membaca nilai pin analog yang memiliki resolusi 10-bit. Fungsi ini hanya
dapat bekerja pada analog pin (0-15). Hasil dari pembacaan berupa nilai integer
dengan range 0 sampai 1023.
analogRead(pin);
// membaca nilai analog pin
analogWrite(pin, value); // menulis ke pin analog
J. Time
1. Delay(ms)
Delay berfungsi menghentikan program dalam waktu tertentu dengan
satuan millisecond.
delay(2000);
// menunggu selama dua detik
18
2. Millis()
Millis berfungsi mengembalikan nilai dalam millisecond dihitung sejak
arduino board menyala. Penapungnya harus long integer.
x = millis(); // set ‘x’ equal to millis()
K. Math
1. Min(x,y)
Min(x,y) berfungsi mengembalikan nilai yang paling kecil dengan
membandingkan kedua variabel.
2. Max(x,y)
Max(x,y) merupakan kebalikan dari min, berfungsi mengembalikan nilai
yang paling kecil dengan membandingkan kedua variabel.
L. Serial
1. Serial.begin(rate)
Statement yang berfungsi untuk mengaktifkan komunikasi serial dan
mengset baudrate.
Contoh :
/
void setup()
{
Serial.begin(9600);//mengaktifkan
serial
port
//mengatur baudrate 9600 bps
}
2. Serial.prinln(x)
Berfungsi mengirimkan x ke serial port.
Contoh :
Serial.println(25); // mengirimkan 25
dan
19
2.2.3.2 Arduino uno
Arduino Uno adalah board berbasis mikrokontroler pada ATmega328.
Board ini memiliki 14 digital input / output pin (dimana 6 pin dapat digunakan
sebagai output PWM), 6 input analog, 16 MHz osilator kristal, koneksi USB, jack
listrik tombol reset. Pin-pin ini berisi semua yang diperlukan untuk mendukung
mikrokontroler, hanya terhubung ke komputer dengan kabel USB atau sumber
tegangan bisa didapat dari adaptor AC-DC atau baterai untuk menggunakannya.
Gambar 2.4 Arduino Uno
Sumber : http://www.arduino.cc/
Arduino Uno adalah perangkat mikrokontroller yang terbaru dalam
serangkaian papan Arduino USB, dan model referensi untuk platform Arduino,
untuk perbandingan dengan versi sebelumnya dapat dilihat pada tabel 2.3 sebagai
berikut :
Tabel 2.2 Spesifikasi dari Arduino Uno ATmega 328
Mikrokontroler
ATmega328
Tegangan Operasi
5V
Input Tegangan (disarankan)
7-12V
Input Tegangan (batas)
6-20V
Digital I / O Pins
Pins Masukan Analog
14 (dimana 6 memberikan output
PWM)
6
20
DC Current per I / O Pin
40 mA
DC saat ini untuk 3.3V Pin
50 mA
Flash Memory
32 KB (ATmega328) yang 0,5 KB
digunakan oleh bootloader
SRAM
2 KB (ATmega328)
EEPROM
1 KB (ATmega328)
Kecepatan Jam
16 MHz
A. Catu daya arduino uno
Arduino uno dapat diaktifkan melalui koneksi USB atau dengan catu daya
eksternal. Sumber listrik dipilih secara otomatis. Eksternal (non-USB) daya dapat
datang baik dari AC-DC adaptor atau baterai. Adaptor ini dapat dihubungkan
dengan cara menghubungkannya plug pusat-positif 2.1mm ke dalam board
colokan listrik. Lead dari baterai dapat dimasukkan ke dalam header pin Gnd dan
Vin dari konektor Power.
Board dapat beroperasi pada pasokan daya dari 6 - 20 volt. Jika diberikan
dengan kurang dari 7V pin 5V akan menyuplai kurang dari 5 volt dan board
mungkin tidak stabil. Jika menggunakan lebih dari 12V, regulator tegangan bisa
panas dan merusak board. Rentang yang dianjurkan adalah 7 - 12 volt.
2.2.4 Data logger shield
Data Logger Shield merupakan shield yang digunakan untuk melakukan
penyimpanan data (data logging) pada SD Card, dimana shield ini kompetibel
dengan arduino uno, Duemilanove, Diecimila, Leonardo, Mega R3/Mega ADK.
Shield ini dilengkapi dengan RTC (Real Time Clock) yang digunakan untuk
mengetahui waktu penyimpanan data yang dilakukan, meskipun arduino yang
digunakan sudah tidak teraliri power RTC akan tetap berjalan karena terdapat
baterai pada modul ini, sehingga proses penyimpanan selanjutnya tetap akan
memberikan waktu yang sesuai. Data logger shield ini dibuat menyerupai
breadboard sehingga dapat memudahkan dalam meletakkan sensor, resistor,
21
transistor, IC, atau komponen lain di saat sedang membuat sebuah perangkat
embedded.
2.2.4.1 SD card slot
SD Card Slot digunakan utuk menyisipkan SD Card. Hal ini
memungkinkan sistem untuk melakukan penyimpanan atau data logging untuk
penyimpanan data sistem, sehingga data-data yang dihasilkan dari sistem yang
dibuat dapat secara otomatis tersimpan dalam SD Card. Berikut ini adalah gambar
dari skematik SD Card Slot.
2.2.4.2 RTC (real time clock)
Pada data logger shield ini dilengkapi dengan RTC (Real Time Clock),
dimana Real Time Clock merupakan suatu chip (IC) yang memiliki fungsi sebagai
penyimpan waktu dan tanggal. RTC yang digunakan pada data logger shield ini
adalah DS 1307. Dimana DS 1307 merupakan RTC menggunakan jalur data
parallel yang dapat menyimpan data-data detik, menit, jam, tanggal, bulan, hari
dalam seminggu, dan tahun valid hingga 2100. Secara otomatis bulan dan tanggal
akan disesuaikan untuk bulan yang kurang dari 31 hari termasuk untuk tahun yang
akan datang. Operasi jam baik 24 jam atau 12 jam dengan format indikator
AM/PM.
2.2.5 LCD
LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik
yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak
menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya
terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal
Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf,
angka ataupun grafik.
LCD adalah lapisan dari campuran organik antara lapisan kaca bening
dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment
dan lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan
medan listrik (tegangan), molekul organik yang panjang dan silindris
22
menyesuaikan diri dengan elektroda dari segmen. Lapisan sandwich memiliki
polarizer cahaya vertikal depan dan polarizer cahaya horisontal belakang yang
diikuti dengan lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati
molekul-molekul yang telah menyesuaikan diri dan segmen yang diaktifkan
terlihat menjadi gelap dan_membentuk_karakter_data_yang_ingin_ditampilkan.
Huruf atau angka yang dihasilkan pada LCD merupakan kode ASCII, kode
ASCII yang ditampilkan merupakan proses dari bagian mikrokontroler yang
mengolah titik-titik LCD menjadi angka ataupun huruf.
Adapun fitur yang dimiliki LCD ini adalah :
a. Terdiri dari 2 baris dan masing-masing 16 karakter.
b. Mempunyai karakter generator terprogram.
c. Terdapat kode ASCII 192 karakter.
d. Dilengkapi dengan back light.
e. Dapat dialamati dengan mode 4-bit dan 8-bit.
Gambar 2.5 LCD 16 x 2 Karakter
Sumber : http://www.emartee.com
Adapun deskripsi pin pada LCD adalah sebagai berikut :
Pin 1
= Ground.
Pin 2
= Vcc.
Pin 3
= Pengatur kontras.
Pin 4
= Register Select (RS).
Pin 5
= Read/Write (R/W) LCD Registers.
Pin 6
= Enable (EN)
Pin 7 s/d 14 = Data Input / Output Pins
23
Pin 15
= Vcc
Pin 16
= Ground
2.2.5.1 Cara kerja LCD
Interface
LCD
merupakan
sebuah
bus
paralel
yang
berfungsi
mempermudah dan mempercepat proses pembacaan dan penulisan data dari LCD.
Kode ASCII yang ditampilkan pada LCD sepanjang 8 bit.
Pengiriman data ke LCD dapat dilakukan dengan 2 cara yaitu secara 4 bit
dan secara 8 bit. Jika menggunakan jalur 4 bit maka yang digunakan adalah DB4
sampai DB7 dan data akan dikirim dua kali yaitu 4 bit MSB kemudian 4 bit LSB
dengan pulsa EN setiap pengirimannya, sedangkan jalur 8 bit menggunakan DB0
sampai DB7. Mode 8 bit sangat baik digunakan ketika kecepatan merupakan
keutamaan dalam sebuah aplikasi tetapi jika menggunakan mode 8 bit dibutuhkan
11 pin I/O yaitu 3 pin untuk kontrol, 8 pin data. Berbeda dengan mode 4 bit hanya
membutuhkan 7 pin yaitu 3 pin kontrol dan 4 pin data.
Jalur
kontrol
EN
digunakan
untuk
menginformasikan
bahwa
mikrokontroler mengirimkan data ke LCD. Agar dapat mengirimkan data ke
LCD, jalur kontrol EN harus di atur dalam kondisi high “1”, mengatur jalur
kontrol RS, R/W dan mengirimkan data ke jalur data bus.
Jalur control RS digunakan untuk memilih data yang akan dikirimkan ke
LCD. Pada saat jalur kontrol RS dalam kondisi low “0”, maka data yang
dikirimkan ke LCD dianggap sebagai intruksi khusus seperti : membersihkan
layar, set kursor, dan lain-lain. Ketika RS dalam konsisi high “1” maka data yang
dikirimkan adalah data ASCII yang akan ditampilkan di layar. Jalur kontrol R/W
harus berada dalam kondisi low “0” pada saat informasi akan dituliskan ke LCD,
karena jika R/W berada dalam kodiri high “1” maka program akan melakukan
query data dari LCD yaitu mengambil status LCD.
Download