Upload
dodik-yuniar
View
14
Download
1
Embed Size (px)
DESCRIPTION
gh
Citation preview
BAB II
LANDASAN TEORI
2.1 Boost Converter
Boost Converter adalah sebuah teknik Power supply switching Step-Up
yang merupakan konverter daya dari DC ke DC dengan tegangan output lebih
besar dari tegangan input. Ini merupakan teknik switched-mode power supply
(SMPS) yang mengandung setidaknya dua semikonduktor switching (dioda dan
transistor) dan setidaknya satu elemen penyimpanan energy seperti kapasitor,
induktor, atau kombinasinya. Filter biasanya terbuat dari kapasitor (namun
kadang-kadang berada dalam kombinasi dengan inductor juga) biasanya
ditambahkan untuk output konverter sehingga dapat mengurangi riak tegangan
output.
Gambar 2.1 Skematik dasar Boost Converter
2.1.1 Teknologi
Prinsip utama untuk menaikan tegangan adalah kemampuan induktor
untuk menyimpan energi. Dalam boost konverter , tegangan output selalu lebih
tinggi dari tegangan input . Prinsip dasar dari sebuah Boost converter terdiri dari 2
kondisi yang berbeda :
Gambar 2.2 Cara Kerja Boost Converter
5
6
Bila saklar ditutup , arus mengalir melalui induktor searah jarum jam dan
induktor menyimpan energi . Polaritas dari sisi kiri induktor adalah positif.
Ketika sakelar di On, saklar S (lihat gambar diatas) ditutup, maka akan
mengakibatkan terjadinya peningkatan arus induktor.
Ketika saklar dibuka , arus akan berkurang sebagai impedansi lebih
tinggi . Oleh karena itu , perubahan atau pengurangan saat ini akan ditahan
oleh induktor. Dengan demikian polaritas akan terbalik ( berarti sisi kiri
induktor akan negatif sekarang ) . Akibatnya dua sumber akan dalam seri
menyebabkan tegangan yang lebih tinggi untuk mengisi kapasitor melalui
dioda D. maka ketika sakelar Off-negara, saklar terbuka dan satu-satunya
jalan yang ditawarkan untuk arus induktor adalah melalui flyback dioda D,
kapasitor C dan beban R. Ini hasil dalam mentransfer energi yang
terakumulasi selama On-negara menjadi kapasitor. Arus input sama
dengan arus induktor seperti dapat dilihat pada gambar 2.
Gambar 2.3 Keadaan dasar 2 sistem Boost Converter
Jika saklar buka-tutup dengan cukup cepat, maka induktor tidak akan
sepenuhnya kosong ketika masa pengisian dan pengurangan energi. Maka dengan
hal ini beban akan melihat tegangan akan selalu lebih besar daripada sumber
tegangan input ketika sakelar dibuka. Dan ketika sakelar dibuka kapasitor secara
pararel dengan beban, maka kapasitor akan menyuplai energi ke beban dengan
kombinasi energi dari input sehingga energi total menjadi berlipat-lipat energy
semula. Ketika sakelar ditutup maka akan terjadi korsleting sehingga sisi kanan
akan kekurangan energy, namun pada waktu ini energi akan di supply oleh
kapasitor. Maka pada waktu tersebut kapasitor itu mampu memberikan tegangan
7
dan energi ke beban. Selama waktu ini, dioda akan mencegah energi dari
kapasitor untuk keluar melalui saklar . Saklar tentu saja harus dibuka dengan
sangat cepat untuk mencegah energi kapasitor keluar terlalu banyak .
2.1.2 Operasi kerja
Ada 2 buah operasi kerja dengan pada sistem Boost Konverter ini yaitu :
Continuous mode
Ketika boost konverter beroperasi secara kontinyu, arus melalui induktor
(IL) tidak pernah jatuh ke nol. Gambar dibawah menunjukkan bentuk gelombang
baik arus maupun tegangan dalam operasi konverter mode ini. Tegangan output
dapat dihitung sebagai berikut, dalam kasus sebuah konverter yang ideal (yaitu
menggunakan komponen ideal) yang beroperasi dalam kondisi stabil. Selama
saklar S ditutup, yang membuat tegangan input (Vi) muncul di induktor, yang
menyebabkan perubahan arus (IL) mengalir melalui induktor selama periode
waktu (t) dengan rumusuntuk mencari siklus waktu kerja :
…………………………………………………….…Persamaan 2.1
Persamaan di atas menunjukkan bahwa tegangan keluaran selalu lebih
tinggi dari tegangan input (sebagai siklus pergi dari 0 ke 1), dan hal tersebut
meningkatkan dengan D, secara teoritis hingga tidak terbatas hingga D mendekati
1. Inilah sebabnya mengapa konverter ini kadang-kadang disebut sebagai
konverter langkah-naik.
Gambar 2.4 Bentuk gelombang arus & tegangan mode Continued
8
Discontinuous mode
Jika riak amplitudo saat ini terlalu tinggi, induktor dapat benar-benar habis
sebelum akhir siklus pergantian seluruhnya. Hal ini biasanya terjadi di bawah
beban ringan. Dalam hal ini, arus melalui induktor jatuh menuju nol selama
bagian dari periode (lihat bentuk gelombang pada gambar dibawah). Meskipun
sedikit, perbedaan memiliki efek yang kuat pada persamaan tegangan output. Hal
ini dapat dihitung sebagai berikut:
……………………………………………….…Persamaan 2.2
Dibandingkan dengan persamaan untuk tegangan output dengan mode
continued, persamaan ini jauh lebih rumit. Selanjutnya, dalam mode discontinued,
penguatan tegangan keluaran tidak hanya tergantung pada siklus, tetapi juga pada
nilai induktor, tegangan input, frekuensi switching, dan arus keluaran.
Gambar 2.5 Bentuk gelombang arus & tegangan mode discontinued
2.2 Baterai Lithium Ion
Baterai lithium-ion (kadang-kadang Li-ion baterai atau LIB) adalah
anggota dari keluarga dari jenis baterai isi ulang. Pada baterai ini ion-ion lithium
akan bergerak dari anoda ke katoda selama waktu discharge dan akan kembali ke
tempatnya semula ketika waktu pengisian/charging. Li-ion baterai menggunakan
senyawa lithium sebagai bahan elektroda.
Baterai lithium-ion umumnya digunakan pada perangkat elektronik yang
bersifat mobile. Baterai ini adalah salah satu jenis yang paling populer dari baterai
isi ulang untuk perangkat elektronik portable. Baterai ini memiliki kepadatan
9
energi yang terbaik, tidak memiliki efek memori , dan sangat lambat dalam
masalah pengosongan energi ketika baterai ini tidak digunakan.
Gambar 2.6 Baterai Lithium Ion bentuk kotak
2.2.1 Teknologi Baterai
Ada 3 buah komponen utama dari baterai lithium-ion yaitu
Anoda , biasanya terminal anoda berasal dari sel lithium-ion konvensional
terbuat dari karbon, namun baru-baru ini untuk terminal anoda dibuat dari
material komersial yang paling populer yaitu grafit.
Katoda, biasanya terdiri dari material oksida logam seperti Oksida
berlapis ( seperti lithium kobalt oksida ) , sebuah polyanion ( seperti
lithium besi fosfat ) atau spinel ( seperti lithium oksida mangan ).
Elektrolit, biasanya terdiri dari material lithium garam dalam pelarut
organik . peran elektroda elektrokimia adalah untuk membalikkan antara
anoda dan katoda, tergantung pada arah arus listriknya. Elektrolit
biasanya campuran karbonat organik seperti etilen karbonat atau karbonat
dietil mengandung kompleks ion lithium.
Baterai lithium ion yang lebih mahal daripada baterai NiCd tetapi
beroperasi pada rentang temperatur yang lebih luas dengan kepadatan energi yang
lebih tinggi. Mereka membutuhkan sirkuit pelindung tambahan untuk mencegah
sel-sel baterai melewati puncak tegangan yang diperbolehkan, Biasanya sel
lithium-ion yang ada disertai dengan sensor suhu, converter / regulator tegangan.
Komponen ini memantau keadaan muatan dan arus masuk dan keluar dari setiap
sel , kapasitas masing-masing sel individu ( dimana perubahan drastis dapat
menyebabkan pembalikkan polaritas yang berbahaya ), dan setiap sel suhunya
harus terjaga sehingga meminimalkan risiko sirkuit pendek.
10
Gambar 2.7 Baterai Lithium-Ion bentuk tabung
2.2.2 Charge dan Discharge
Baterai Li-Ion merupakan jenis baterai yang dapat di isi ulang, Namun
baik pengisian maupun pada saat pengosongan baterai jenis ini harus memiliki
prosedur keamanan sehingga tidak terjadi short circuit ataupun overcharge yang
dapat menyebabkan baterai ini meledak.
2.2.2.1 Charging
Charging adalah sebuah aktifitas yang dilakukan untuk mengisi kembali
energi yang sudah habis terpakai pada sebuah tempat penyimpan energi seperti
baterai dan lainnya. Berikut adalah cara pengisian energi pada baterai Li-Ion :
Metode Charging
Baterai jenis Li-Ion harus diisi dengan hati-hati. Hal yang paling mudah
untuk melakukan pengisian baterai jenis ini adalah dengan melakukan pengisian
dengan arus konstan yang kecil. Namun metode charging jenis ini akan memakan
waktu yang lama sekali sehingga tidak praktis apabila diterapkan ke dalam sebuah
sebuah aplikasi. Sehingga dikembangkan sebuah metode baru yaitu charger akan
berhenti ketika battery akan mengalami kerusakan. Kebanyakan pabrik
memberikan jaminan overcharging adalah aman apabila arus pengisiannya kecil
dibawah 0.1C (nilai C adalah nilai kapasitansi baterai berdasarkan arus persatuan
waktu biasanya jam ).
Charger akan melakukan monitoring terhadap baterai dan ketika baterai
penuh maka tegangan akan drop sedikit, charger akan mendeteksi akan hal ini dan
11
kemudian akan menghentikan proses charging.Proses adalah untuk mengisi pada
arus konstan sampai setiap sel mencapai tegangan 4,1 Volt. Charger kemudian
akan beralih ke modus tegangan konstan sehingga arus pengisian secara bertahap
akan berkurang pada saat charger mencapai tegangan sel pada 4,2 Volt.
Kebanyakan produsen mengklaim tegangan maksimum dan minimum sel baterai
adalah sebesar 4,23 Volt dan 2,75 Volt ( pada penelitian ini batas tegangan
dibawah adalah 3 Volt sebagai proteksi tambahan untuk mencegah adanya
kerusakan pada rangkaian pelindung baterai dari Short-circuit ). Apabila sel
dipaksakan melewati batas-batas ini maka dapat mengurangi kapasitas sel dan
kemampuan untuk memberikan nilai arus penuh.
Suhu versus Charging
Ketika pengisian energi terjadi pada saat baterai belum penuh maka yang
terjadi adalah seluruh arus akan diubah menjadi materi kimia, namun ketika
baterai sudah hampir penuh maka yang terjadi adalah kebanyakan energi akan
diubah menjadi panas. Hal ini akan mengakibatkan naiknya suhu temperature
pada baterai. Pada beberapa pabrik baterai mereka dilengkapi dengan jaket suhu
yang akan menjaga suhu stabil dan beberapa paberik yang lain membuat
pengaturan besarnya arus pada saat pengisian yang juga dapat menjaga suhu tetap
stabil. Beberapa standar baterai yang digunakan memiliki kemampuan untuk
hidup lebih panjang dengan suhu kamar yang dingin. Pada 25 °C (77 °F) baterai
mampu beroperasi sampai dengan 10 tahun, pada suhu 33 °C (91 °F) baterai
mampu beroperasi sampai dengan 5 tahun, dan 42 °C (108 °F) baterai mampu
beroperasi sampai dengan 2,5 tahun.
2.2.2.2 Discharging
Discharging adalah suatu keadaan ketika energi pada baterai secara
perlahan-lahan habis keluar dari baterai.
Self discharging
12
Tingkat self-discharge bervariasi dengan suhu, di mana suhu penyimpanan
yang lebih rendah menyebabkan tingkat pengosongan debit lebih lambat dan
sehingga akan menyebabkan daya tahan baterai yang lebih lama. Tingkat self-
discharge adalah 5 - 20% pada hari pertama dan akan stabil sekitar 0,5-4% per
hari pada suhu kamar Tetapi pada 45 ° C adalah sekitar 3 kali lebih tinggi. Ini
bukan masalah dalam jangka pendek tetapi membuat mereka tidak cocok untuk
banyak kegunaan.
Over discharging
Apabila discharge terjadi pada sebuah cell sampai semua energinya habis,
akan menyebabkan adanya pembalikan polaritas pada beberapa sel-selnya.
Biasanya hal ini terjadi pada 4 buah baterai AA yang dipasang seri (contohnya
adalah pada kamera). Ketika salah satu baterai habis energinya, dan ketika hal ini
terjadi baterai yang masih terisi energi akan mendorong sel yang energinya habis
secara terbalik sehingga akan menyebabkan kerusakan permanen pada sel
tersebut. Hal ini terjadi ketika 4 buah baterai tersebut memiliki kapasitas yang
berbeda-beda. Namun pada kondisi pararel baterai tidak akan memiliki masalah
Pada pertengahan 2013, tingkat pengosongan baterai dapat mencapai 70C
secara terus-menerus (70C adalah 70 kali arus yang dikeluarkan dari kapasitas
arus yang tertera pada baterai) akan tetapi hal ini merupakan pengecualian dari
aturan umum. karena umumnya bahwa tingkat pengosongan setiap sel baterai 1C
masih berdiri sebagai standar yang direkomendasikan antara para pengguna. Hal
ini juga penting untuk dicatat bahwa pengisian ataupun pengosongan baterai
dengan arus 1C akan dapat memperpanjang umur setiap baterai Li-Ion.
2.3 Microcontroller Arduino Mini Pro
Pengendali mikro (Inggris: microcontroller) adalah sistem mikroprosesor
lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari
mikroprosesor serba guna yang digunakan dalam sebuah PC, karena sebuah
mikrokontroler umumnya telah berisi komponen pendukung sistem minimal
mikroprosesor, yakni memori dan antarmuka I/O.
13
Gambar 2.8 Microcontroller Arduino Mini Pro
Sistem komputer dewasa ini paling banyak justru terdapat di dalam
peralatan lain, seperti telepon, jam, perangkat rumah tangga, kendaraan, dan
bangunan. Sistem embedded biasanya mengandung syarat minimal sebuah sistem
mikroprosesor yaitu memori untuk data dan program, serta sistem antarmuka
input/output yang sederhana. Antarmuka semacam keyboard, monitor, disket, atau
printer yang umumnya ada pada sebuah komputer pribadi justru tidak ada pada
sistem mikrokontroler. Sistem mikrokontroler lebih banyak melakukan pekerjaan-
pekerjaan sederhana yang penting seperti mengendalikan motor, saklar, resistor
variabel, atau perangkat elektronis lain. Seringkali satu-satunya bentuk antarmuka
yang ada pada sebuah sistem mikrokontroler hanyalah sebuah LED, bahkan ini
pun bisa dihilangkan jika tuntutan konsumsi daya listrik mengharuskan demikian.
Perkembangan teknologi mikrokontroler sekarang ini sudah sampai pada
mikrokontroler dengan platform open source Arduino. Arduino adalah open-
source elektronik prototype platform berbasis pada perangkat keras dan perangkat
lunak yang fleksibel dan mudah digunakan. Hal Ini dimaksudkan bagi para
desainer, penggemar, dan siapapun yang tertarik dalam menciptakan objek atau
lingkungan yang interaktif.
Arduino bisa merasakan lingkungan dengan menerima masukan dari
berbagai sensornya dan dapat melakukan pengendalian sekitarnya dengan
menggunakan lampu, motor, aktuator dan lain-lainnya. Mikrokontroler di modul
ini diprogram menggunakan bahasa pemrograman Arduino (berdasarkan Wiring)
14
dan pengembangan lingkungan Arduino (berdasarkan Processing). Proyek
Arduino dapat berdiri sendiri atau mereka dapat berkomunikasi dengan perangkat
lunak yang berjalan pada komputer (misalnya Flash, Pengolahan,MaxMSP).
Modul Arduino ini dapat dibangun sendiri atau dibeli jadi. Perangkat
lunaknya dapat didownload secara gratis. Desain referensi perangkat keras (File
CAD) yang tersedia di bawah lisensi open-source, dan bebas untuk
menyesuaikannya dengan kebutuhan. Ada banyak jenis modul Arduino, yang
mana setiap modul berbeda antara satu dengan yang lainnya. Hal yang
membedakan setiap modul arduino adalah chipsetnya, ukuran onboard memori,
on-board peripheral dan fungsinya. Dari segi arsitektur dan instruksi yang
digunakan mereka bisa dikatakan hampir sama.
2.3.1 Sketch
Sketch adalah lembar kerja pada system arduino yang digunakan untuk
menulis program, mengedit, menggabungkan dan kemudian mengunggah ke
dalam microcontroller Arduino tersebut. Sketch Arduino terdiri dari bagian-
bagian seperti comments, Setup (), dan Loop (). Dibawah ini akan dijelaskan
secara lebih detail mengenai bagian-bagian tersebut.
2.3.1.1 Comments
Biasanya komentar digunakan untuk memudahkan bagi orang-orang
membaca kode yang telah ditulis oleh engineer, untuk menjelaskan tujuan dari
dibuatnya program ini, cara kerjanya, atau mengapa program tersebut ditulis.
/*
* Blink
*
* The basic Arduino example. Turns on an LED on for one second,
* then off for one second, and so on... We use pin 13 because,
* depending on your Arduino board, it has either a built-in LED
* or a built-in resistor so that you need only an LED.
*
15
* http://www.arduino.cc/en/Tutorial/Blink
*/
Adalah sesuatu yang baik untuk memberikan komentar atas sketch, salah
satunya adalah untuk membantu ketika adanya kode yang ingin diperbaiki serta
hal ini dapat membantu orang lain untuk belajar dari atau memodifikasi kode yang
sudah berjalan. Ada juga comments dengan bentuk lain, yaitu single-line.
Comments ini dimulai dengan “ // “ dan lanjut hingga ke akhir baris. Sebagai
contohnya adalah :
int ledPin = 13; // LED connected to digital pin 13
Kalimat yang berisi pesan ini "LED connected to digital pin 13" adalah sebuah
comments yang digunakan untuk menjelaskan mengenai variable 13
2.3.1.2 Fungsi Setup ()
Ada beberapa fungsi khusus yang merupakan bagian dari sketch yaitu “
Setup () “. Fungsi Setup () dipanggil sekali, yaitu ketika sketch dimulai. Fungsi ini
merupakan tempat yang baik untuk melakukan pengaturan-pengaturan seperti :
Pengaturan mode output pada pin digital
Inisialisasi library microcontroller arduino
Inisialisasi Variabel, dan lain-lain
fungsi setup hanya akan berjalan sekali, setelah setiap PowerUp atau setelah
tombol reset pada rangkaian modul Arduino ditekan. Berikut adalah contoh dari
fungsi setup () :
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
16
2.3.1.3 Fungsi Loop ()
Fungsi Loop () adalah fungsi utama dalam sketch arduino ini. Fungsi ini
dipanggil berulang kali oleh modul microcontroller untuk menjalankan program
yang telah tersimpan di dalamnya. Berikut adalah contoh penggunaan dari fungsi
Loop () :
void loop()
{
if (digitalRead(buttonPin) == HIGH)
serialWrite('H');
else
serialWrite('L');
delay(1000);
}
fungsi loop () sesuai dengan namanya, melakukan perulangan setiap listing
program yang dituliskan, yang pada saat tertentu variable dari program anda telah
berubah sehingga system merespon dan menghasilkan output baru yang berbeda
dengan hasil output pertama.
2.3.2 Fitur-fitur Microcontroller Arduino Mini Pro
Berikut ini adalah fitur-fitur dari perangkat keras microcontroller Arduino.
Perangkat keras ini dapat diprogram dengan mudah pada sketch. Ada beberapa
fitur-fitur perangkat keras yang dapat ditemukan pada modul microcontroller
Arduino, berikut adalah penjelasan dari fitur-fitur tersebut :
2.3.2.1 Pin I/O Digital
I/O Port pada modul microcontroller Arduino dikenal dengan Pin Digital.
Pin ini dapat dikonfigurasi baik sebagai input ataupun dapat digunakan sebagai
output.
17
Karakteristik pin digital ketika menjadi input
Arduino dengan chipsnya Atmega, secara default pengaturan port digital
adalah pengaturan untuk port masukan, sehingga mereka tidak perlu secara
eksplisit dinyatakan sebagai input dengan pinMode (). Pin dikonfigurasi sebagai
input sehingga pin tersebut berada dalam keadaan impedansi tinggi. Salah satu
penjelasannya adalah pin input akan mengambil daya yang sangat kecil sekali
pada rangkaian ketika dalam kondisi pengambilan sampel, dapat dikatakan bahwa
ada resistor seri 100 Megaohm di depan pin tersebut. Hal ini berarti bahwa hanya
sangat sedikit arus yang digunakan untuk memindahkan kondisi pin input tersebut
dari keadaan satu ke keadaan yang lain. Sehingga hal ini dapat membuat pin
berguna untuk melakukan tugas-tugas seperti membaca sensor sentuh kapasitif,
membaca sebuah LED sebagai dioda, atau membaca sebuah sensor analog dengan
skema seperti RCTime. Akan tetapi hal ini juga berarti, apabila ada pin input yang
tidak terhubung ke rangkaian, akan menghasilkan beberapa keadaaan seperti akan
berlogika acak, menghasilkan noise, atau akan menjadi kapasitor coupling pada
pin yang berdekatan dengan Pin tersebut.
Adalah hal yang berguna untuk mengarahkan pin masukan ke keadaan
yang dikenal jika tidak ada input. Hal ini dapat dilakukan dengan menambahkan
resistor pullup (ke +5 V), atau resistor pull-down (resistor ke ground) pada input,
dengan resistor 10 Kohm. Ada juga resistor pullup 20 KOhm yang dapat di akses
pada chip Atmega dengan perangkat lunak. Berikut ini adalah cara untuk
mengakses resistor pullup built-in.
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors
Karakteristik pin digital ketika menjadi Output
Apabila Pin digital ini dikonfigurasi sebagai OUTPUT dengan pinMode (),
maka Pin ini akan berada dalam keadaan impedansi rendah. Hal ini berarti bahwa
mereka dapat menyediakan sejumlah besar arus ke rangkaian lainnya. Pin Atmega
dapat menjadi sumber arus positif atau menjadi sumber arus negatif hingga 40 mA
(milliamps) arus ke perangkat lain. Hal ini cukup untuk menghidupkan sebuah
18
LED, menjalankan banyak sensor, namun sayangnya saat ini tidak cukup untuk
menjalankan relay, solenoida, atau motor.
Hubungan pendek pada pin Arduino, atau mencoba untuk menjalankan
rangkaian dengan arus yang besar, dapat merusak atau menghancurkan transistor
output pada pin, atau merusak chip Atmega keseluruhan. Sering kali ini akan
menghasilkan sebuah pin "mati" dalam mikrokontroler akan tetapi chip yang
tersisa masih akan berfungsi secara memadai. Maka untuk alasan ini, adalah
sebuah ide yang baik untuk menghubungkan pin OUTPUT ke perangkat lain
dengan resistor 470 Ohm atau 1 KOhm.
2.3.2.2 Pin I/O Analog
Sebagian besar port Arduino (Atmega) adalah pin analog yang dapat
dikonfigurasi dan digunakan persis dengan cara yang sama seperti pin digital.
Berikut ini adalah karakteristik dari Pin Analog.
A/D Converter
Chips Atmega digunakan pada Arduino memiliki 8 saluran analog to
digital converter (ADC). ADC tersebut memiliki 10 bit resolusi dari 0 ke 1023.
Sedangkan fungsi utama dari pin analog pada Arduino adalah untuk membaca
sensor analog. Pin analog juga memiliki semua fungsi pin General Purposes
Input / Output (GPIO), sama dengan pin digital 0-13.
Pemetaan Pin
Pin analog dapat digunakan sama seperti pin digital, menggunakan
penamaan A0 (untuk input analog 0), A1, dan seterusnya. Sebagai contoh, kode
berikut digunakan untuk mengatur 0 pin analog ke output, dan mengaturnya
berlogika “High” :
pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH);
19
Pull up Resistor
Pin yang analog juga memiliki resistor pullup, yang bekerja sama seperti
resistor pullup pada pin digital. Mereka diaktifkan dengan menggunakan perintah
seperti dibawah ini :
digitalWrite(A0, HIGH); // set pullup on analog pin 0
Namun harus disadari bahwa mengatur Resistor Pull up akan
mempengaruhi nilai yang akan diambil oleh analogRead (). Hal tersebut
dikarenakan perintah analogRead tidak akan bekerja dengan benar jika pin
sebelumnya di gunakan sebagai output, apabila hal ini terjadi maka pin tersebut
harus diatur kembali menjadi input sebelum menggunakan perintah analogRead.
Hal yang sama pula harus diterapkan jika pin telah diatur untuk menjadi logika
“High” sebagai output, resistor pullup harus diatur ketika beralih kembali ke
input.
2.3.2.3 PWM ( Pulse Width Modulator )
Pulse Width Modulation, atau PWM, adalah teknik untuk mendapatkan
hasil yang analog dengan teknik digital. Digital kontrol digunakan untuk membuat
gelombang persegi, dan kemudian sinyal diatur sehingga beralih antara hidup dan
mati secara cepat. Pola on-off ini dapat mensimulasikan tegangan Hidup (5 Volt)
dan off (0 Volt) dengan mengubah sebagian waktu sinyal Hidup dengan waktu
pada sinyal mati. Lamanya "on time" disebut lebar pulsa. Untuk mendapatkan
berbagai nilai analog, pengguna akan mengubah, atau memodulasi, yang lebar
pulsa. Jika pengguna mengulangi pola on-off ini dengan cukup cepat dan
menggunakan LED misalnya sebagai output, maka hasilnya adalah pengendalian
kecerahan LED.
Dalam grafik di bawah, garis-garis hijau merupakan periode waktu yang
teratur. Ini adalah durasi atau periode yang merupakan kebalikan dari frekuensi
PWM. Dengan kata lain, dengan frekuensi PWM Arduino di sekitar 500Hz, garis
hijau hanya akan teratur selama 2 milidetik saja. Fungsi untuk analogWrite ()
memiliki nilai skala dari 0 – 255. Ketika analogWrite memiliki (255) maka siklus
20
akan 100% (selalu high), dan analogWrite (127) adalah siklus kerja 50% (High
pada separuh waktu dan low pada separuh waktu).
Gambar 2.9 PWM Microcontroller Arduino Mini Pro
2.3.2.4 Memory
Ada tiga jenis memori dalam mikrokontroler yang digunakan pada
microcontroller Arduino (ATmega328)
Flash memori adalah tempat dimana listing program (sketch) Arduino
disimpan.
SRAM adalah di mana listing program (sketch) Arduino menciptakan dan
memanipulasi variabel ketika berjalan sketch tersebut dijalankan.
EEPROM adalah ruang memori untuk menyimpan informasi jangka
panjang.
Flash memori dan EEPROM adalah non-volatile (informasi tetap ada setelah
power dimatikan). Sedangkan SRAM adalah volatile dan akan hilang saat tidak
adanya power supply.
Chip ATmega328 memiliki kapasitas memori sebagai berikut :
Flash 32 Kbytes (dimana 2Kbytes digunakan untuk bootloader)
21
SRAM 2 Kbytes
EEPROM 1 Kbytes
2.3.3 Teknik memprogram Microcontroller
Berikut adalah konsep dalam memprogram modul microcontroller arduino uno :
2.3.3.1 Variabel
Variabel adalah tempat untuk menyimpan data. Variabel memiliki nama,
nilai, dan tipe. Sebagai contoh, pernyataan ini (disebut deklarasi):
int pin = 13;
Perintah ini menciptakan variabel yang namanya pin, yang nilainya adalah
13, dan bertipe int. apabila pengguna membutuhkan variable ini, maka akan dapat
menunjuk ke variabel ini dengan memanggil namanya. pada saat itu variable ini
nilainya akan dicari dan digunakan, seperti dalam pernyataan ini:
pinMode(pin, OUTPUT);
Nilai dari pin (13) ini akan diteruskan ke perintah pinMode (). Dalam hal
ini, sebenarnya pengguna tidak perlu menggunakan variabel, pernyataan ini akan
bekerja dengan baik sama seperti :
pinMode(13, OUTPUT);
Keuntungan dari penggunaan variabel dalam hal ini adalah bahwa
pengguna hanya perlu menentukan jumlah pin yang digunakan sekali, akan tetapi
pengguna dapat menggunakannya berkali-kali, sehingga jika pengguna kemudian
memutuskan untuk mengubah penggunaan dari pin 13 menjadi pin 12, pengguna
hanya perlu mengubah sedikit kode. Pengguna juga dapat menggunakan nama
pengenal untuk membuat pentingnya variabel yang jelas (misalnya program
mengendalikan LED RGB memungkinkan penamaan variabel redPin, greenPin,
22
dan bluePin. Sebuah variabel memiliki kelebihan seperti mengubah nilai dari
variabel menggunakan perintah seperti contoh:
pin = 12;
Perintah ini akan mengubah nilai dari variabel menjadi 12. Perhatikan
bahwa pengguna tidak menentukan jenis variable, hal tersebut tidak diubah oleh
perintah tersebut. Artinya, nama variabel secara permanen diasosiasikan dengan
jenis, pengguna hanya melakukan perubahan nilainya. pengguna harus
mendeklarasikan variabel sebelum pengguna memberikan nilai untuk itu. Jika
tidak maka pesan error ini akan muncul "error: pin was not declared in this
scope".
Bila pengguna menetapkan satu variabel yang lain, pengguna membuat
salinan nilai variable tersebut dan menyimpan salinannya pada lokasi di memori
yang terkait dengan variabel lain. Mengubah satu tidak berpengaruh pada yang
lain. Misalnya, setelah:
int pin = 13;
int PIN2 = pin;
pin = 12;
hanya variable pin yang memiliki nilai 12, sedangkan untuk variable PIN2
memiliki nilai 13. Hal ini mengacu pada bagian dari listing program pengguna di
mana variabel tersebut digunakan. Sebagai contoh, jika pengguna ingin dapat
menggunakan variabel mana saja dalam programnya, maka pengguna dapat
menyatakan di bagian atas listing programnya. Ini disebut variabel global, berikut
adalah contohnya:
int pin = 13;
void setup()
{
pinMode(pin, OUTPUT);
23
}
void loop()
{
digitalWrite(pin, HIGH);
}
Seperti yang terlihat, pin yang digunakan di kedua setup () dan loop ()
fungsi. Kedua fungsi mengacu pada variabel yang sama, sehingga perubahan itu
satu akan mempengaruhi nilai yang telah di yang lain, seperti di bawah ini :
int pin = 13;
void setup()
{
pin = 12;
pinMode(pin, OUTPUT);
}
void loop()
{
digitalWrite(pin, HIGH);
}
Di sini, digitalWrite () fungsi yang dipanggil dari loop () akan melewati
nilai 12, karena itu nilai yang ditugaskan ke variabel di setup () fungsi. Jika
pengguna hanya perlu menggunakan variabel dalam sebuah perintah tunggal,
pengguna dapat menyatakan variable tersebut di setup (), sehingga ruang lingkup
variable tersebut akan terbatas pada perintah tersebut. Sebagai contoh :
void setup()
{
int pin = 13;
pinMode(pin, OUTPUT);
digitalWrite(pin, HIGH);
24
}
Dalam perintah ini, pin variabel hanya dapat digunakan dalam setup () fungsi. Jika
pengguna mencoba untuk melakukan sesuatu seperti ini:
void loop()
{
digitalWrite(pin, LOW); // wrong: pin is not in scope here.
}
Pengguna akan mendapatkan pesan yang sama seperti sebelumnya "error:
pin was not declared in this scope". Hal ini berarti meskipun pengguna telah
menyatakan variable pin dalam program, pengguna mencoba untuk menggunakan
suatu variabel di luar jangkauannya. Artinya jika sebuah variabel bersifat global,
nilainya bisa diubah di mana saja di dalam listing program tersebut, sehingga
pengguna perlu memahami keseluruhan program untuk mengetahui apa yang akan
terjadi pada variabel. Misalnya, jika variabel pengguna memiliki nilai yang tidak
diharapkan, akan lebih mudah untuk mencari tahu di mana nilai tersebut berasal
dari jika variabel memiliki ruang lingkup terbatas.
2.3.3.2 Fungsi-Fungsi
Segmentasi program ke fungsi memungkinkan programer untuk membuat
potongan-potongan program yang melakukan tugas yang telah didefinisikan
sebelumnya dan kemudian kembali ke awal program dimana fungsi itu dipanggil.
Menciptakan sebuah fungsi sangat berguna ketika salah satu kebutuhan untuk
melakukan tindakan yang sama beberapa kali dalam sebuah program.
Untuk programer yang terbiasa menggunakan BASIC, fungsi dalam
Arduino memberikan (dan memperluas) kegunaan menggunakan subrutin (gosub
dalam BASIC). Menstandarisasikan program ke fungsi memiliki beberapa
keuntungan yaitu membantu programmer tetap terorganisir yang seringkali hal ini
membantu pada awal konsep program. Fungsi juga mengelompokan satu tindakan
dalam satu tempat sehingga fungsi hanya harus dipikirkan dan debugged sekali.
25
Hal ini juga mengurangi kemungkinan untuk kesalahan dalam modifikasi, jika ada
listing program yang perlu diubah. Fungsi juga membuat sketsa keseluruhan
menjadi lebih kecil dan lebih kompak karena hanya bagian kode tertentu saja yang
digunakan kembali berkali-kali. Fungsi membuat lebih mudah untuk
menggunakan kembali kode dalam program lain dengan membuatnya lebih
modular, dan sebagai efek sampingnya, menggunakan fungsi juga sering
membuat program lebih mudah dibaca.
Ada dua fungsi yang diperlukan dalam sketsa Arduino, setup () dan loop
(). Fungsi lainnya harus dibuat di luar kurung dari dua fungsi. Sebagai contoh,
dibawah ini adalah fungsi sederhana untuk mengalikan dua angka.
void setup(){
Serial.begin(9600);
}
void loop() {
int i = 2;
int j = 3;
int k;
k = myMultiplyFunction(i, j); // k now contains 6
Serial.println(k);
delay(500);
}
int myMultiplyFunction(int x, int y){
int result;
result = x * y;
return result;
}
2.3.3.3 Library-Library
26
Sebuah kelas hanyalah sebuah kumpulan fungsi dan variabel yang semua
berada di satu tempat. Fungsi-fungsi dan variabel dapat bersifat publik, yang
berarti bahwa mereka dapat diakses oleh orang yang menggunakan library
pengguna, atau private yang berarti mereka hanya dapat diakses dari dalam kelas
itu sendiri. Setiap kelas memiliki fungsi khusus yang dikenal sebagai konstruktor,
yang digunakan untuk membuat sebuah instance dari kelas. Konstruktor ini
memiliki nama yang sama dengan kelas, dan tidak ada jenis kembali.
library menyediakan fungsionalitas tambahan untuk digunakan dalam
sketch, misalnya menggunakan perangkat keras atau memanipulasi data. Untuk
menggunakan perpustakaan di sketch, pilih Sketch> Impor Library Menu. Hal ini
akan memasukkan satu atau lebih pernyataan # include di bagian atas sketch dan
akan mengcompile sketch pengguna dengan Library. Karena library masuk ke
sketch pengguna hal ini menyebabkan peningkatan jumlah memory yang
diperlukan untuk sketch ini. Jika sketch tidak lagi membutuhkan library, cukup
hapus pernyataannya # include dari atas sketch.
Ada banyak library yang sudah ada di dalam perangkat lunak arduino, Dan
beberapa dapat didownload dari berbagai sumber. Library dapat ditemukan dalam
folder khusus, dan biasanya akan berisi sedikitnya dua file dengan akhiran h dan
satu dengan akhiran cpp.
2.4 LCD Display
LCD adalah sebuah layar kristal cair yang merupakan display panel datar,
tampilan visual elektronik, atau tampilan video yang menggunakan sifat modulasi
cahaya kristal cair. Komponen kristal cair ini tidak memancarkan cahaya secara
langsung.
LCD digunakan dalam berbagai aplikasi termasuk monitor komputer,
televisi, panel instrumen, menampilkan pesawat kokpit, dan lain-lainnya. LCD
umum dalam perangkat konsumen seperti pemutar video, perangkat game, jam
tangan, kalkulator, dan telepon. LCD pada masa kini telah menggantikan tabung
sinar katoda (CRT) dan telah dapat menampilkan dalam sebagian besar aplikasi.
LCD tersedia dalam berbagai ukuran layar lebih luas dibanding CRT dan plasma
display. LCD tidak menggunakan fosfor sehingga tidak berbahaya.
27
2.4.1 Cara Kerja LCD
Setiap pixel dari sebuah LCD biasanya terdiri dari lapisan molekul yang
selaras antara dua elektroda transparan, dan dua filter polarisasi, sumbu transmisi
cahaya yang (di sebagian besar kasus) tegak lurus satu sama lain. Sehingga
dengan filter polarisasi ini sinar yang melewati filter pertama akan diblokir oleh
polarizer (silang) filter kedua.
Permukaan elektroda yang berada dalam kontak dengan bahan kristal cair
diperlakukan sedemikian rupa untuk menyelaraskan molekul kristal cair dalam
arah tertentu. Peralatan ini biasanya terdiri dari lapisan polimer tipis satu arah
( biasanya digosok menggunakan kain), sehingga arah alignment kristal cair ini
kemudian ditentukan oleh arah menggosoknya. Elektroda terbuat dari konduktor
transparan Indium Tin Oksida (ITO). Liquid Crystal Display pada hakekatnya
merupakan perangkat "pasif ” yang merupakan katup cahaya sederhana. Untuk
mengelola dan mengatur data yang akan ditampilkan dilakukan oleh satu atau
lebih sirkuit biasanya disebut sebagai driver LCD.
Sebelum medan listrik diterapkan, orientasi molekul kristal cair ditentukan
oleh penyelarasan pada permukaan elektroda. Dalam perangkat twisted nematic
(masih perangkat kristal cair yang paling umum), arah keselarasan permukaan
pada dua elektroda yang tegak lurus satu sama lain, sehingga molekul mengatur
diri mereka dalam struktur heliks, atau berputar. Ini menginduksi rotasi polarisasi
dan akan menghalangi cahaya yang masuk. Jika tegangan yang diberikan cukup
besar, molekul kristal cair di tengah lapisan hampir sepenuhnya dipilin dan
polarisasi cahaya insiden tidak diputar saat melewati lapisan kristal cair. Lampu
ini kemudian akan terutama terpolarisasi tegak lurus terhadap filter kedua, dan
dengan demikian akan diblokir dan akan muncul pixel hitam. Dengan mengontrol
tegangan diterapkan di seluruh lapisan kristal cair di setiap pixel, cahaya dapat
diperbolehkan untuk melewati dalam jumlah yang bervariasi sehingga level
cahaya yang keluar akan bervariasi.
Kedua bahan kristal cair dan bahan lapisan alignment mengandung
senyawa ionik. Jika medan listrik dari satu polaritas tertentu diterapkan untuk
jangka waktu yang lama, bahan ini ionik akan tertarik ke permukaan dan
28
menurunkan kinerja perangkat. Hal ini harus dihindari baik dengan menerapkan
arus bolak-balik atau dengan membalik polaritas medan listrik tersebut.
2.4.2 LCD Matrix 16x2 Hitachi HD44780
Hitachi HD44780 LCD controller adalah salah satu matriks layar kristal
cair yang paling umum. Hitachi mengembangkan mikrokontroler khusus untuk
mengendalikan layar LCD alfanumerik dengan antarmuka yang sederhana yang
dapat terhubung ke mikrokontroler atau mikroprosesor pada umumnya.
Tegangan operasi nominal untuk lampu latar LED 5V pada kecerahan
penuh, dengan peredupan pada tegangan yang lebih rendah tergantung pada detil
seperti warna LED. Non-LED lampu latar sering membutuhkan tegangan yang
lebih tinggi.
Gambar 2.10 LCD Hitachi HD44780
D44780U dot-matrix liquid crystal display controller dan driver yang
menampilkan alphanumerics LSI, dan simbol. Hal ini dapat dikonfigurasi untuk
mengatur dot-matrix liquid crystal display di bawah kontrol dari 4 - atau 8-bit
mikroprosesor. Karena semua fungsi-fungsi seperti RAM monitor, karakter
generator, dan driver LCD yang dibutuhkan untuk mengendalikan dot-matrix
liquid crystal display secara internal diberikan pada satu chip, sebuah sistem
minimal dapat dihubungkan dengan controller / driver.
Sebuah HD44780U tunggal dapat menampilkan hingga 8-karakter satu
baris atau dua baris. HD44780U ini memiliki kompatibilitas fungsi pin dengan
HD44780S yang memungkinkan pengguna untuk dengan mudah mengganti LCD-
II dengan HD44780U. Karakter HD44780U generator ROM diperpanjang untuk
29
menghasilkan 208 5 '8 titik karakter font dan 32 5 '10 titik karakter font dengan
total 240 font karakter yang berbeda.
Catu daya yang rendah (2.7V ke 5.5V) dari HD44780U ini cocok untuk
setiap produk portabel berbasis baterai yang membutuhkan daya rendah. Beberapa
fitur lainnya adalah sebagai berikut:
Tegangan kerja yang rendah : 2,7 sampai 5.5V.
Antar muka kecepatan tinggi bus MPU 2 MHz (ketika VCC = 5V)
4-bit atau 8-bit diaktifkan antarmuka MPU
80 '8-bit display RAM (80 karakter maks.)
9920-bit karakter ROM untuk pembangkit total 240 font karakter
font karakter 208 (5'8 titik) karakter font 32 (5 '10 titik)
Rangkaian ulang otomatis yang menginisialisasi controller / driver
setelah power on
Osilator internal dengan resistor eksternal
Konsumsi daya rendah
Gambar 2.11 Blok Diagram HD44780