BAB II LANDASAN TEORI 2.1 Tinjauan Pustaka - AHMAD FAUZAN BAB II

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

  6 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.

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 out V ref -

  • 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.

  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

  Output Arus Tegangan input (V)

  Tipe IC Tegangan Keluaran Minimal Maksimal

  (V) (A) 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 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 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.

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. 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 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

  8. Master / Slave SPI Serial interface.

Gambar 2.6 Konfigurasi pin AT-Mega 328 a) Konfigursi Port B

Tabel 2.2 Konfigurasi port B

  b) Konfigurasi Port C

Tabel 2.3 Konfigurasi Port C 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 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:

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 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)

  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 komunikasi LCD LMB162 dengan mikrokontroler. Gambar 2.9 merupakan diagram blok pengendali LCD.

Gambar 2.9 Pengendali LCDGambar 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, 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.

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.

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, 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:

  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 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 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”

  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() {

  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

  }

  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

  

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.

  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