BAB II LANDASAN TEORI 2.1 Tinjauan Pustakarepository.ump.ac.id/5537/3/AHMAD FAUZAN BAB II.pdf ·...
Transcript of BAB II LANDASAN TEORI 2.1 Tinjauan Pustakarepository.ump.ac.id/5537/3/AHMAD FAUZAN BAB II.pdf ·...
6
BAB II
LANDASAN TEORI
2.1 Tinjauan Pustaka
Pengukuran besaran listrik berupa tegangan dapat dilakukan dengan
menggunakan AT-Mega8535 kemudian hasil dari perthitungan tersebut di
tampilkan pada perangkat lunak komputer berbasis perangkat lunak Visual
Basic.Net yang berfungsi untuk perangkat dokumentasi data hasil pengukuran
(Hidayat K, Itmi dan Hayat, Latiful. 2012). Pada karya ilmiah ini pengukuran
daya listrik berupa tegangan dilakukan dengan menggunakan AT-Mega328 dan
hasil dari pengukuran tersebut akan ditampilkan di LCD 16X2 dan data yang
tertera akan disuarakan.
Pada suatu penelitian, Multi Meter Dengan Tampilan Seven Segment Dan
Isyarat Suara (Joni Permana, 2007), dimana proses penyimpan sura menggunakan
ADC MC14433 sebagai pengolah data analog menjadi digital yang kemudian
akan dialamatkan oleh IC mikrokotroler AT89S52.
Pada penelitian rancang bangun alat ukur konduktansi listrik otomatis
berbasis mikrokontroler AT-Mega8535, mikrokontroler yang digunakan yaitu seri
AT-Mega karena mikrokontroler ini mudah didapatkan dan harganya lebih murah
dibanding dengan seri lainnya. Alat ukur konduktasi listrik otomatis berbasis
mikrokontroler dirancang agar bermanfaat dari sistem akuisisi datanya. Sistem
akuisisi data dari rancang bangun alat ukur ini dibuat bersifat otomatis. Pengaruh
suhu terhadap konduktansi sebuah sampel bahan ditampikan pada layar penampil
dan data hasil pengukuran disimpan dalam bentuk basis data. Pemanfaatan
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
7
mikrokontroler AT-Mega85835 pada rancang bangun alat ukur ini dapat
memberikan kemudahan dalam sistem akuisisi data. Selain itu, sistem
pengoperasian dalam akuisis data yang dilakukan seacara otomatis memberikan
kemudahan saat melakukan pengukuran karena tidak paerlu memantau alat saat
sedang melakukan pengukuran (Dwi Harjono, 2014).
Berdasarkan tinjauan pustaka didepan menjadi acuan pada pembuatan
Tugas Akhir ini. Akan tetapi ada banyak hal yang berbeda, diantaranya dari segi
komponen elektronik yang digunakan, konsep rangkaian yang berbeda, serta
spesifikasi alat secara keseluruhan. Alat ukur tegangan bersuara pada Tugas Akhir
ini menggunakan SDcard sebagai media penyimpan suara dan mikrokontroler
ATMega328 sebagai pusat pengatur dan pengendali. Dan data hasil pengukuran
akan ditampilkan dalam bentuk digital kemudian di suarakan.
2.2 Landasan Teori
2.2.1 IC LM7805
LM7805 merupakan komponen yang digunakan untuk meregulasi
tegangan untuk memperoleh keluaran sebesar ± 5V. IC ini memiliki tiga buah
kaki, yaitu kaki input, common, dan output. Tegangan input LM7805 mulai dari
7,5 V sampai 25V dengan arus sebesar 5mA sampai 1A.
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
8
Gambar 2.1 LM7805
Di dalam sebuah IC LM7805 sebenarnya terdapat rangkaian yang terdiri
dari sebuah dioda zener, penguat operasi, transistor, dan tiga buah resistor. Dioda
zener digunakan sebagai peregulasi tegangan, sedangkan penguat operasi
digunakan sebagai pembanding antara tegangan acuan yanga berasal dari dioda
zener dan perubahan tegangan keluaran. Berikut ini adalah rangkaian pada IC
LM78XX.
V in
V ref
+
-
V out
Gnd
Gambar 2.2 Rangkaian LM78XX
Cara kerja rangkaian adalah sebagai berikut:
1. Pada saat tegangan keluaran naik, maka besaran tegangan masukan
pembalik (V-) penguat operasi akan naik.
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
9
2. Apabila besar tegangan ini lebih besar dari tegangan acuan, pada masukan
(V+) akan menyebabkan keluaran penguat operasi akan rendah sehingga
transistor akan mati dan keluaran rangkaian akan turun.
3. Dengan turunnya tegangan keluaran rangkaian akan menyebabkan nilai
tegangan pada masukan penguat pembalik (V-) penguat operasi akan
semakin turun.
4. Apabila nilai tegangan ini kurang dari tegangan acuannya, maka keluaran
penguat operasi akan tinggi dan transistor akan terhubung dan tegangan
keluaran akan naik.
5. Proses tersebut akan berulang-ulang sehingga diperoleh tegangan yang
konstan.
Tabel 2.1 Jenis IC LM78XX
Tipe IC
Output
Tegangan
(V)
Arus
Keluaran
(A)
Tegangan input (V)
Minimal Maksimal
LM7805 5 1 7,5 20
LM7806 6 1 8,6 21
LM7808 8 1 10,6 23
LM7810 10 1 12,7 25
LM7812 12 1 14,8 27
LM7815 15 1 18 30
LM7818 18 1 21 33
LM7824 24 1 27,3 38
IC regulator LM7805 merupakan salah satu jenis dari LM78XX yang
diproduksi. Dari Table 2.1 terlihat jenis IC LM78XX beserta perbandingan
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
10
masing-masing tegangan input minimal dan maksimal. Jadi, dalam
mengaplikasikan LM78XX tidak hanya hanya dilihat dari tegangan output saja,
tetapi juga besar tegangan input agar komponen LM78XX tidak mengalami
kerusakan. Karakteristik dari masing-masing IC LM78XX bias dilihat secara
detail pada data sheet.
2.2.2 Kristal Frekuensi
Kristal frekuensi adalah komponen yang berfungsi untuk membangkitkan
frekuensi osilasi dengan stabilitas yang sangat tinggi. Frekuensi osilasi diperoleh
dari efek piezoelektrik. Bahan yang biasa digunakan untuk memperoleh efek
piezoelektrik diantaranya kwarsa, garam Rochelle dan tourmaline. Bahan yang
banyak digunakan adalah kristal kwarsa.
Keping tipis dari kristal kwarsa tersebut dipasang antara elektroda.
Frekuensi ini dibangkitkan dengan cara memberikan tegangan pada permukaan
keping kristal. Dengan memberikan tegangan pada permukaan keping kristal,
maka keping tersebut akan mengalami getaran mekanis. Sebaliknya, jika kristal
ini dikenakan getaran mekanis maka permukaan kristal akan menghasilkan
tegangan listrik.
Gambar 2.3 Simbol Kristal
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
11
Nilai frekuensi yang dibangkitkan oleh kristal biasanya tercetak diatas
permukaan kemasannya. Sebagai contoh, kristal yang bertuliskan 12.000,
maksudnya kristal tersebut bekerja pada frekuensi 12,000 MHz.
2.2.3 Mikrokontroler
Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol
rangkaian elektonik dan umumnya dapat menyimpan program di dalamnya.
Mikrokontroler umumnya terdiri dari CPU (Central Processing Unit). Memori
I/O tertentu dan unit pendukung seperti ADC (Analog to Digital Converter) yang
sudah terintegrasi di dalamnya. Kelebihan utama dari mikrokontroler ialah
tersedianya RAM dan peralatan I/O pendukung sehingga ukuran papan
mikrokontroler menjadi sangat ringkas.
Mikrokontroler terdiri dari beberapa bagian seperti processor, memori
(RAM dan ROM), port I/O dan pendukung lainnya seperti counter/timer dan lain
sebagainya. Semua terbungkus dalam sutu kemasan chip. Fitur inilah yang
membedakan dengan sistem mikroposesor. Sebuah mikroprosesor juga memiliki
memori, port I/O dan pendukung lainnya untuk menjadi sebuah unit yang komplit,
akan tetapi semua komponen tersebut terpisah dari chip processor. Jika sistem
mikroprosesor dapat diprogram untuk melakukan banyak fungsi, maka sistem
mikrokontroler hanya dapat melakkan sebuah tugas dan menjalankan sebuah
program.
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
12
Gambar 2.4 Perbedaan dasar mikroprosesor dan mikrokontroler.
Gambar 2.4 memperlihatkan perbedaan dasar antara suatu sistem
mikroprosesor dengan sistem mikrokontroler. Dari Gambar 2.4 dapat dilihat jika
sistem mikroprosesor membutuhkan device pendukung untuk membuatnya
menjadi sebuah unit yang komplit dan bekerja, sementara dalam sistem
mikrokontroler fungsi-fungsi dari device pendukung telah terbungkus dalam
sebuah chip.
Gambar 2.5 konfigurasi mikrokontroler Arsitektur Havard.
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
13
AVR merupakan mikrokontroler dengan arsitektur Harvard di mana
diantara kode program dan data disimpan dalam memori secara terpisah.
Umumnya arsitektur Harvard ini menyimpan kode program dalam memori
permanen atau semi-permanen (non volatile) sedangkan data disimpan dalam
memori tidak permanen (volatile). Sehingga dengan arsitektur seperti ini memori
program mikrokontroler menjadi lebih terlindungi dari spike tegangan dan faktor
lingkungan lain yang dapat merusak kode program. Beberapa jenis AVR memiliki
Flash, EEPROM dan SRAM yang semuanya terintegrasi dalam satu IC, sehingga
untuk aplikasi-aplikasi tertentu tidak akan memerlukan memori eksternal (Agus
Bejo, 2008).
2.2.3.1 Mikrokontroler AT-Mega 328
AT-Mega 328 adalah mikrokontroller keluaran dari Atmel yang
mempunyai arsitektur RISC (Reduce Instruction Set Computer) dimana setiap
proses eksekusi data lebih cepat dari arsitektur CISC (Completed Instruction Set
Computer). Mikrokontroler AT-Mega 328 memiliki arsitektur Havard, yaitu
memisakan memori untuk kode program dan memori untuk data sehingga dapat
memaksimalkan kerja dan parallelism. Intruksi-intruksi dalam memori program
dieksekusi dalam satu alur tunggal dimana pada saat satu instruksi dikerjakan
instruksi berikutnya sudah diambil dari memori program. Konsep inilah yang
memungkinkan instruksi-instruksi dapat dieksekusi dalam setiap satu siklus clock.
32 x 8-bit register serba guna digunakan untuk mendukung operasi pada
ALU (Arithmatic Logic Unit) yang dapat dilakukan dalam satu suklus. 6 dari
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
14
register serbaguna ini dapat digunakan sebagai 3 buah register pointer 16-bit pada
mode pengalamatan tidak langsung untuk mengambil data pada ruang memori
data.
Ketiga register pointer 16-bit ini disebut dengan register X (gabungan R26
dan R27 ), register Y (gabungan R28 dan R29), dan register Z (gabungan R30 dan
R31). Hamper semua intruksi AVR memiliki format 16-bit. Setiap alamat memori
program terdiri dari instruksi 16-bit atau 32-bit.
Selain register serba guna di atas, terdapat register lain yang terpetakan
dengan teknik Memory Mapped I/O selebar 64 Byte. Beberapa register ini
digunakan untuk fungsi SPI, EEPROM, dan fungsi I/O lainnya. Register-register
ini menempati memori pada alamat 0x20h – 0x5Fh.
2.2.3.2 Fitur AT-Mega 328
Fasilitas yang dimiliki oleh mikrokontroler AT-Mega 328 adalah sebagai
berikut:
1. 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus.
2. 32 x 8-bit register serba guna.
3. Kecepatan mencapai 16 MIPS dengan clock 16 MHz.
4. 32 KB Flash Memory.
5. Memiliki EEPROM ( Electrically Erasable Programmable Read Only
Memory ) sebesar 1 KB.
6. Memiliki SRAM ( Static Random Acces Memory ) sebesar 2 KB.
7. Memiliki I/O digital sebanyak 14 pin
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
15
8. Master / Slave SPI Serial interface.
Gambar 2.6 Konfigurasi pin AT-Mega 328
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
16
a) Konfigursi Port B
Tabel 2.2 Konfigurasi port B
b) Konfigurasi Port C
Tabel 2.3 Konfigurasi Port C
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
17
c) Konigurasi Port D
Tabel 2.4 Konfigurasi Port D
2.2.3.3 Arsitektur Mikrokontroler AT-Mega 328
Gambar 2.7 Arsitektur AT-Mega 328
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
18
Mikrokontroller ATmega 328 memiliki arsitektur Harvard, dimana
memori untuk kode program dan memori untuk data dipisahkan sehingga dapat
memaksimalkan kerja. Instruksi – instruksi dalam memori program dieksekusi
dalam satu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi
berikutnya sudah diambil dari memori program. Konsep inilah yang
memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu siklus
clock.
2.2.4 Liquid Crystal Display (LCD)
LCD menggunakan interaksi unik antara karakteristik dan optik dari suatu
kelompok cairan berada tetap dalam bentuk kristal. Hal ini memberikan sifat optik
yang sangat dibutuhkan sebagai peralatan display. Dengan menggunakan display
kristal cair, maka tidak ada cahaya yang dibangkitkan (berbeda dengan seven
segment) sehingga komsumsi daya yang dibutuhkan kecil. Karena itu LCD
digerakkan dengan untaian MOS dan CMOS. Semua fungsi dihubungkan dengan
software dan instruksi- instruksi program ke MCU.
LCD LMB162 merupakan modul LCD dengan konsumsi daya rendah
yang di rancang dengan CMOS internal driver. Disamping itu, modul ini juga
telah dilengakapi dengan rangkaian reset otomatis, rangkaian osilator, RAM dan
ROM. Dalam pengoprasianya, masing masing penyemat memiliki fungsi sebagai
berikut:
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
19
Tabel 2.5 Fungsi Penyemat LCD LMB162
Penyemat Simbol Logika Keterangan
1 Vss - Catu Daya 0 Volt (Ground)
2 Vcc - Catu Daya 5 Volt
3 Vee - Catu daya untuk LCD
4 RS H/L H: Masukan Data, L: Masukan Instruksi
5 R/W H/L H: Baca (Read), L: Tulis (Write)
6 E H/L (L) Enable Signal
7 DB0 H/L Data Bit 0
8 DB1 H/L Data Bit 1
9 DB2 H/L Data Bit 2
10 DB3 H/L Data Bit 3
11 DB4 H/L Data Bit 4
12 DB5 H/L Data Bit 5
13 DB6 H/L Data Bit 6
14 DB7 H/L Data Bit 7
15 V+ BL - Backlight 4-4,2 Volt ; 50-200 mA
16 V- BL - Backlight 0 Volt (ground)
Konfigurasi pin dari lcd LMB162 ditunjukkan pada gambar dibawah ini:
Gambar 2.8 Konfigurasi pin dari LCD LMB162
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
20
Berikut ini adalah fungsi yang dimiliki dari setiap kaki LCD LMB162 :
1. Kaki 1 (VCC) : Kaki ini berhubungan dengan dengan tegangan +5 Volt
yang merupakan tegangan untuk sumber daya.
2. Kaki 2 (GND) : Kaki ini berhubungan dengan tegangan 0 Volt (ground).
3. Kaki 3 (VEE/VLCD) : Tegangan pengatur kontras LCD, kaki ini
terhubung pada cermet. Kontras mencapai nilai maksimum pada saat
kondisi kaki ini pada tegangan 0 Volt.
4. Kaki 4 (RS) : Register select, kaki pemilih register yang akan di akses ke
Register data, logika dari kaki ini adalah 1 dan untuk akses ke Register
perintah, logika dari kaki ini adalah 0.
5. Kaki 5 (R/W) : Logika 1 pada kaki ini menunjukan bahwa modul LCD
sedang pada mode pembacaan dan logika 0 menunjukan bahwa modul
LCD sedang pada mode penulisan. Untuk aplikasi yang tidak memerlukan
pembacaan data pada modul LCD, kaki ini dapat langsung di hubungkan
ke Ground.
6. Kaki 6 (E) : Enable Clock LCD, kaki mengaktifkan clock LCD. Logika 1
pada kaki ini diberikan pada saat penulisan atau pembacaan data.
7. Kaki 7-14 (DO-D7) : Data bus, kedelapan kaki LCD ini adalah bagian
dimana aliaran data sebanyak 4 bit ataupun 8 bit mengalirkan saat proses
penulisan maupun pembacaan data.
8. Kaki 15 (Anoda) : Berfungsi untuk tegangan positif dari blacklight LCD
sekitar 4,5 Volt (hanya terdapat untuk LCD yang memiliki backlight)
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
21
9. Kaki 16 (Katoda) : Tegangan negatif back Light LCD sebesar 0 Volt
(hanya terdapat pada LCD yang memiliki backlight).
Karakteristik LCD LMB162.
1. Terdapat 16X2 karakter huruf yang bisa di tampilkan
2. Setiap huruf terdiri dari 5X7 dot-matrix cursor.
3. ROM pembangkit karakter untuk 192 tipe karakter (bentuk karakter 5x7
matriks titik).
4. Mempunyai dua jenis RAM, yaitu RAM pembangkit karakter dan RAM
data tampilan.
5. RAM pembangkit karakter untuk 8 tipe karakter program tulis dengan
bentuk 5x7 matrik titik.
6. Terdapat 80 X 8 bit display RAM (maksimal 80 karakter)
7. Memiliki kemampuan penulisan dengan 8bit maupun dengan 4bit
8. Dibangun dengan isolator lokal.
9. Satu sumber tegangan 5 Volt.
10. Otomatis reset saat tegangan dihidupkan.
11. Bekerja pada suhu 0 sampai 55 derajat
LCD LM162 terdiri dari dua bagian utama. Bagian pertama merupakan
panel LCD sebagai media penampil informasi dalam bentuk huruf/angka dua
baris, masing-masing baris bisa menampung 16 huruf/angka. Bagian kedua
merupakan sebuah sistem yang dibentuk dengan mikrokontroler yang ditempelkan
dibalik panel LCD, yang berfungsi mengatur tampilan informasi serta mengatur
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
22
komunikasi LCD LMB162 dengan mikrokontroler. Gambar 2.9 merupakan
diagram blok pengendali LCD.
Gambar 2.9 Pengendali LCD
Gambar 2.9 menjelaskan bahwa data inputan pada LCD yang berupa 8 bit
data (D0-D7) diterima terlebih dahulu di dalam mikrokontroler dalam LCD yang
berguna untuk mengatur data inputan sebelum ditampilkan dalam LCD. Selain itu
juga dilengkapi dengan inputan E, R/W, dan RS yang digunakan sebagai
pengendali mikrokontroler. Pada proses pengiriman data R/W=1 dan proses
pengambilan data R/W=0.
Penyemat RS dipakai untuk membedakan jenis data yang dikirim, jika
RS=0 data yang dikirim adalah perintah untuk mengatur kerja modul LCD,
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
23
sedangkan jika RS=1 data yang dikirim adalah kode ASCII yang ditampilkan.
Demikian pula saat pengambilan data, jika RS=0 data yang diambil dari modul
merupakan data status yang mewakili aktivitas modul LCD, sedangkan saat RS=1
maka data yang diambil merupakan kode ASCII dari data yang ditampilkan.
2.2.5 MicroSD Card Adapter
Modul (MicroSD Card Adapter) adalah modul pembaca kartu Micro SD,
melalui sistem file dan SPI ( Serial Peripheral Interface ) antar muka drive, MCU
untuk melengkapi sistem file untuk membaca dan menulis kartu MicroSD.
Pengguna Arduino langsung dapat menggunakan Arduino IDE dilengkapi dengan
kartu SD untuk menyesuaikan inisialisasi kartu perpustakaan dan membaca-
menulis.
Pinout dari SD card dapat dihubungkan ke Arduino maupun
mikrokontroler lainya, sehingga bermanfaat untuk menambah kapasitas tempat
penyimpanan data dan pencatatan data. SD card ini dapat langsung dipasang pada
Arduino dan terdapat switch untuk memilih flash card slot. Keistimewaan dari SD
Module ini adalah:
1. Terdapat module untuk standar SD card dan Micro SD (TF) card.
2. Terdapat switch untuk memilih flash card slot.
3. Dapat digunakan untuk mikrokontroler lain.
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
24
Gambar 2.10 Modul MicroSD Card Adapter
Berikut ini adalah fitur-fitur yang dimiliki modul microSD Card Adapter :
1. Mendukung kartu Micro SD, kartu Micro SDHC (kartu kecepatan
tinggi)
2. Tingkat konversi papan sirkuit yang antarmuka level untuk 5V atau
3,3V
3. Power supply adalah 4,5V – 5,5V, regulator tegangan 3,3V papan
sirkuit
4. Adalah komunikasi antarmuka SPI ( Serial Peripheral Interface )
antarmuka standar 5, empat (4) M2 lubang sekrup posisi untuk
kemudahan instalasi.
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
25
2.2.6 File WAV
WAV merupakan standar format file yang digunakan oleh Windows.
WAV umumnya digunakan dalam menyimpan audio tak terkompresi untuk
menyimpan file suara berkualitas. File wav juga dapat berisi data terkodekan
dengan beraneka ragam codec untuk mengurangi ukuran file.
WAV adalah format audio standar Microsoft dan IBM untuk personal
computer (PC), biasanya menggunakan coding Pulse Code Modulation (PCM).
WAV adalah data tidak terkompres sehingga seluruh sampel audio disimpan
semuanya di harddisk. Software yang dapat menciptakan WAV dari analog sound
misalnya adalah Windows Sound Recorder. File audio ini jarang sekali digunakan
di internet karena ukurannya yang relatif besar dengan batasan maksimal untuk
file WAV adalah 2 GB . Parameter-parameter tersebut menyatakan setting yang
digunakan oleh Analog-to-Digital Converter (ADC) pada saat data audio direkam.
Biasanya laju sampel juga dinyatakan dengan satuan Hz atau kHz. Sebagai
gambaran, data audio digital yang tersimpan dalam CD audio memiliki
karakteristik laju sampel 44100 Hz, 16 bit per sampel, dan 2 kanal (stereo), yang
berarti setiap satu detik suara tersusun dari 44100 sampel, dan setiap sampel
tersimpan dalam data sebesar 16-bit atau 2 byte. Laju sampel selalu dinyatakan
untuk setiap satu kanal. Jadi misalkan suatu data audio digital memiliki 2 kanal
dengan laju sampel 8000 sampel/detik, maka sesungguhnya di dalam setiap
detiknya akan terdapat 16000 sampel. Sebagaimana telah dijelaskan sebelumnya
bahwa untuk stream data audio menggunakan header berupa struktur
PCMWAVEFORMAT. PCM merupakan singkatan dari Pulse Coded Modulation,
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
26
yaitu suatu metode yang digunakan untuk mengkonversikan sinyal audio dari
bentuk analog ke bentuk digital.
2.2.7 Bahasa C
2.2.7.1 Struktur Penulisan Bahasa C
Program C pada hakekatnya tersusun atas sejumlah blok fungsi. Sebuah
program minimal mengandung sebuah fungsi. Fungsi pertama yang harus ada
dalam program C dan sudah ditentukan namanya adalah main(). Setiap fungsi
terdiri atas satu atau beberapa pernyataan, yang secara keseluruhan dimaksudkan
untuk melaksanakan tugas khusus. Bagian pernyataan fungsi (sering disebut tubuh
fungsi) diawali dengan tanda kurung kurawal buka ({) dan diakhiri dengan tanda
kurung kurawal tutup (}). Diantara kurung kurawal itu dapat dituliskan statemen-
statemen program C. Namun pada kenyataannya, suatu fungsi bisa saja tidak
mengandung pernyataan sama sekali. Walaupun fungsi tidak memiliki pernyataan,
kurung kurawal haruslah tetap ada. Sebab kurung kurawal mengisyaratkan awal
dan akhir definisi fungsi. Berikut ini adalah struktur dari program C:
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
27
Bahasa C dikatakan sebagai bahasa pemrograman terstruktur karena
strukturnya menggunakan fungsi-fungsi sebagai program-program bagiannya
(subroutine). Fungsi-fungsi yang ada selain fungsi utama (main()) merupakan
program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau
diletakkan pada file pustaka (library). Jika fungsi-fungsi diletakkan pada file
pustaka dan akan dipakai pada suatu program, maka nama file judulnya (header
file) harus dilibatkan dalam program yang menggunakannya dengan preprocessor
directive berupa #include.
2.2.7.2 Pengenalan Fungsi-Fungsi Dasar
a) Fungsi main()
Fungsi main() harus ada pada program, sebab fungsi inilah yang
menjadi titik awal dan titik akhir eksekusi program. Tanda { diawal fungsi
menyatakan awal tubuh fungsi dan sekaligus awal eksekusi program,
sedangkan tanda } diakhir fungsi merupakan akhir tubuh fungsi dan
sekaligus adalah akhir eksekusi program. Jika program terdiri atas lebih
dari satu fungsi, fungsi main() biasa ditempatkan pada posisi yang paling
atas dalam pendefinisian fungsi. Hal ini hanya merupakan kebiasaan.
Tujuannya untuk memudahkan pencarian terhadap program utama bagi
pemrogram. Jadi bukanlah merupakan suatu keharusan.
b) Fungsi printf()
Fungsi printf() merupakan fungsi yang umum dipakai untuk
menampilkan suatu keluaran pada layar peraga. Untuk menampilkan
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
28
tulisan:
Selamat belajar bahasa C
misalnya, pernyataan yang diperlukan berupa:
printf(“Selamat belajar bahasa C”);
Pernyataan di atas berupa pemanggilan fungsi printf() dengan
argumen atau parameter berupa string. Dalam C suatu konstanta string
ditulis dengan diawali dan diakhiri tanda petik ganda (“). Perlu juga
diketahui pernyataan dalam C selalu diakhiri dengan tanda titik koma (;).
Tanda titik koma dipakai sebagai tanda pemberhentian sebuah pernyataan
dan bukanlah sebagai pemisah antara dua pernyataan. Tanda \ pada string
yang dilewatkan sebagai argumen printf() mempunyai makna yang
khusus. Tanda ini bisa digunakan untuk menyatakan karakter khusus
seperti karakter baris-baru ataupun karakter backslash (miring kiri). Jadi
karakter seperti \n sebenarnya menyatakan sebuah karakter. Contoh
karakter yang ditulis dengan diawali tanda \ adalah:
\” menyatakan karakter petik-ganda
\\ menyatakan karakter backslash
\t menyatakan karakter tab
Dalam bentuk yang lebih umum, format printf()
printf(“string kontrol”, daftar argumen);
dengan string kontrol dapat berupa satu atau sejumlah karakter yang akan
ditampilkan ataupun berupa penentu format yang akan mengatur
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
29
penampilan dari argumen yang terletak pada daftar argumen. Mengenai
penentu format diantaranya berupa:
%d untuk menampilkan bilangan bulat (integer)
%f untuk menampilkan bilangan titik-mengambang (pecahan)
%c untuk menampilkan sebuah karakter
%s untuk menampilkan sebuah string
Contoh:
#include <stdio.h>
main( )
{
printf(“No : %d\n”, 10);
printf(“Nama : %s\n”, “Ali”);
printf(“Nilai : %f\n”,80.5);
printf(“Huruf : %c\n”,‘A’);
}
2.2.7.3 Pengenalan Praprosesor #include
#include merupakan salah satu jenis pengarah praprosesor
(preprocessor directive). Pengarah praprosesor ini dipakai untuk membaca
file yang diantaranya berisi deklarasi fungsi dan definisi konstanta.
Beberapa file judul disediakan dalam C. File-file ini mempunyai cirri yaitu
namanya diakhiri dengan ekstensi .h. Misalnya pada program #include
<stdio.h> menyatakan pada kompiler agar membaca file bernama stdio.h
saat pelaksanaan kompilasi.
Bentuk umum #include:
#include “namafile”
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
30
Bentuk pertama (#include <namafile>) mengisyaratkan bahwa
pencarian file dilakukan pada direktori khusus, yaitu direktori file include.
Sedangkan bentuk kedua (#include “namafile”) menyatakan bahwa
pencarian file dilakukan pertama kali pada direktori aktif tempat program
sumber dan seandainya tidak ditemukan pencarian akan dilajutkan pada
direktori lainnya yang sesuai dengan perintah pada sistem operasi.
Kebanyakan program melibatkan file stdio.h (file-judul I/O
standar, yang disediakan dalam C). Program yang melibatkan file ini yaitu
program yang menggunakan pustaka I/O (input-output) standar seperti
printf().
2.2.7.4 Komentar dalam Program
Untuk keperluan dokumentasi dengan maksud agar program mudah
dipahami suatu saat lain, biasanya pada program disertakan komentar atau
keterangan mengenai program. Dalam C, suatu komentar ditulis degan diawali
dengan tanda /* dan diakhiri dengan tanda */.
Contoh:
/*
Tanda ini adalah komentar
Untuk multiple line
*/
#include <stdio.h>
Main()
{
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
31
Printf(“coba\n”); //ini komentar satu baris
}
2.2.8 Struktur program arduino
Struktur dasar dari bahasa pemrograman arduino adalah terdiri dari dua
bagian yaitu:
void setup()
{
//statement;
}
void loop()
//statement;
}
Dimana setup ( ) bagian untuk inisialisasi yang hanya dijalankan sekali di awal
program, sedangkan loop () untuk mengeksekusi bagian program yang akan
dijalakan berulang ulang untuk selamanya.
a) Fungsi Setup ()
Fungsi setup () hanya di panggil satu kali ketika program pertama kali di
jalankan. Ini digunakan untuk pendefinisian mode pin atau memulai komunikasi
serial. Fungsi setup () harus di ikut sertakan dalam program walaupun tidak ada
statement yang di jalankan.
void setup ()
{
pinMode (13,OUTPUT); // mengset ‘pin’ 13 sebagai output
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
32
}
b) Fungsi Loop
Setelah melakukan fungsi setup () maka secara langsung akan melakukan
fungsi loop () secara berurutan dan melakukan instruksi-instruksi yang ada dalam
fungsi loop ().
void loop
{
dgitalWrite(13,HIGH); //nyalakan ‘pin’ 13
delay(1000); //pause selama 1 detik
digitalWrite(13,LOW); //matikan ‘pin’ 13
delay(1000); //pause selama 1detik
}
Digital I/O
Input / Output digital pada breadboard arduino ada 14, pengalamatannya
0-13, ada saat tertentu I/O 0 dan 1 tidak bisa digunakan karena dipakai untuk
komunikasi serial,sehingga harus hati hati dalam pengalokasian I/O
Fungsi PinMode
Digunaknan dalam void setup() untuk mengkonfigurasi pin apakah sebagai
input atau output. Arduino digital pin secara default di konfigurasikan sebagai
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
33
input sehingga untuk merubahnya harus menggunakan operator pinMode
(pin,mode).
pinMode (pin,output); //mengeset pin sebagai uotput
digitalWrite (pin,HIGH); //pin sebagai source voltage
digitalRead (pin)
membaca nilai dari pin yang kita hendaki dengan hasil HIGH atau LOW.
Value=digitalRead(pin); //mengeset ‘value’ sama dengan pin
DigitalWrite (pin,value)
Digunakan untuk mengeset pin digital. Pin digital arduino mempunyai 14 (0-13)
digitalWrite (pin,HIGH); //set pin to HIGH
analog I/O
Input / output analog pada breadboard arduino ada 6 pengalamatnya 0-5
Fungsi AnalogRead(pin)
membaca nilai pin analog yang memiliki resolusi 10-bit. Fungsi ini hanya
dapat bekerja pada analog pin (0-5). Hasil dari pembacaan berupa nilai integer
dengan range 0 sampai 1023
value =analogRead(pin); //mengeset ‘value’ sama dengan nilai analog pin
Fungsi AnalogWrite(pin,value)
Mengirimkan nilai analog pada pin analog.
analogWrite(pin,value); //menulis ke pin analog
Fungsi Delay(ms)
Menghentikan program untuk sesaat sesuai dengan yang di
kehendaki,satunya dalam milisecond.
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014
34
Delay(1000); // menunggu selama satu detik
Serial
1. Serial.begin(rate)
Statment ini digunakan untuk mengaktifkan komunikasi serial dan
mengeset baudrate.
void setup()
{
Serial.begin(9600); //open serial port and baudrate 9600 bps
}
2. Serial.printn(data)
Mengirimkan data ke serial port.
Serial.println(100); // mengirimkan 100
Alat Ukur Tegangan..., Ahmad Fauzan, Fakultas Teknik UMP, 2014