• Tidak ada hasil yang ditemukan

BAB 2. LANDASAN TEORI

2.6. Optical Regenerator/Amplifier/Repeater

Optical regenerator atau dalam bahasa Indonesianya penguat sinyal cahaya, sebenarnya merupakan komponen yang tidak perlu ada ketika Anda menggunakan media fiber optik dalam jarak dekat saja.

Sinyal cahaya yang Anda kirimkan baru akan mengalami degradasi dalam jarak kurang lebih 1 km. Maka dari itu, jika Anda memang bermain dalam jarak jauh, komponen ini menjadi komponen utama juga. Biasanya optical generator disambungkan di tengah-tengah media fiber optik untuk lebih menguatkan sinyal-sinyal yang lemah.

2.7. Optical Receiver (Penerima)

Optical receiver memiliki tugas untuk menangkap semua cahaya yang dikirimkan oleh optical transmitter. Setelah cahaya ditangkap dari media fiber optic, maka sinyal ini akan didecode menjadi sinyal-sinyal digital yang tidak lain adalah informasi yang dikirimkan. Setelah di-decode, sinyal listrik digital tadi dikirimkan ke sistem pemrosesnya seperti misalnya ke televisi, ke perangkat komputer, ke telepon, dan banyak lagi perangkat digital lainnya. Biasanya optical receiver ini adalah berupa sensor cahaya seperti photocell atauphotodiode yang sangat peka dan sensitif terhadap perubahan cahaya.

2.8. LCD

LCD (liquid crystal display) merupakan suatu alat yang dapat menampilkan karakter ASCI sehingga kita bisa menampilkan campuran huruf dan angka sekaligus. LCD didalamnya terdapat sebuah mikroprosesor yang mengendalikan tampilan, kita hanya perlu membuat program untuk berkomunikasi.

Ukuran lcd ada berbagai macam seperti : a. lcd 16 x 2 ada 16 colom dan 2 baris

Perbedaanya terletak pada alamat menaruh karakter saja.

Karakter yang ditampilkan oleh LCD beraneka ragam tergangtung dari jenis lcd tersebut.

Command dan data dalam antarmuka lcd dengan mcs maka kita harus menembakan command yang berisi perintah dan data yaitu berupa text yang kita ingin tampilkan. Supaya lcd dapat menampilkan text maka yang perlu dilakukan adalah mengirimkan format hex data dalam bentuk asci, misal :

0 dengan mengirimkan 48 desimal A mengirimkan 65 desimal

Untuk mengunakan lcd untuk yang pertama, harus mengkonfigurasi lcd itu seperti keinginan kita. Konfigurasi berarti kita harus menambahkan command.

Gambar 2.7. LCD Pin – pin pada LCD, yaitu :

1. Ground 2. VCC

3. Contrast (buat konfigurasi pin 3 ->100ohm->pin b potensio 5K) 4. RS

5. RW 6. EN

7. D0

15. Anoda (untuk backlight, lampu background) 16. Katoda

- RS

Pin ini memberi informasi apakah kirim data atau instruksi 0 = instruksi LED baru masuk ke anoda).

katoda = berikan ground

kombinasi dari pin RS dan RW RS R/!W : Operation

0 0 IR Write Command

0 1 IR Read ………

1 0 DR write data 1 1 DR read ………

yang diperlukan untuk basic penulisan adalah write command dan write data.

Dibuat dengan assembly, kita buat dalam bentuk prosedure karena akan sering digunakan, kita define port dulu.

2.8.1 Register Pada LCD

Register yang terdapat di lcd adalah sebagai berikut : 1. IR (Intruction Register)

Digunakan untuk menentukan fungsi yang harus dikerjakan oleh LCD serta pengalamatan DDRAM atau CGRAM.

2. DR (Data Register)

Digunakan sebagai tempat data DDRAM atau CGRAM yang akan ditulis atau dibaca oleh komputer atau sistem minimum. Saat dibaca, DR menyimpan data DDRAM atau CGRAM, setelah itu data alamatnya secara otomatis masuk ke DR. Pada waktu menulis, cukup lakukan inisialisasi DDRAM atau CGRAM, kemudian untuk selanjutnya data dituliskan ke DDRAM atau CGRAM sejak awal alamat tersebut.

3. BF (Busy Flag)

Digunakan untuk bahwa LCD dalam keadaan siap atau sibuk. Apabila LCD sedang melakukan operasi internal, BF diset menjadi 1, sehingga tidak akan menerima perintah dari luar. Jadi, BF harus dicek apakah telah diriset menjadi 0 ketika akan menulis LCD (memberi data pada LCD). Cara untuk menulis LCD adalah dengan mengeset RS menjadi 0 dan mengeset R/W menjadi 1.

4. AC (Address Counter)

Digunakan untuk menunjukan alamat pada DDRAM atau CGRAM dibaca atau ditulis, maka AC secara otomatis menunjukan alamat berikutnya.

Alamat yang disimpan AC dapat dibaca bersamaan dengan BF.

5. DDRAM (Display Data Random Access Memory)

Digunakan sebagai tempat penyimpanan data yang sebesar 80 byte atau 80 karakter. AC menunjukan alamat karakter yang sedang ditampilkan.

6. CGROM (Character Generator Read Only Memory)

Pada LCD terdapat ROM untuk menyimpan karakter-karakter ASCII (American Standart Code for Interchage Intruction), sehingga cukup memasukan kode ASCII untuk menampilkanya.

7. CGRAM (Character Generator Random Access Memory)

Sebagai data storage untuk merancang karakter yang dikehendaki. Untuk CGRAM terdapat kode ASCII dari 00h sampai 0Fh, tetapi hanya 8 karakter yang disediakan. Alamat CGRAM hanya 6 bit, 3 bit untuk mengatur tinggi karakter dan 3 bit tinggi menjadi 3 bit rendah DDRAM yang menunjukan karakter, sedangkan 3 bit rendah sebagai posisi data CGRAM untuk membuat tampilan baris dalam dotmatriks 5x7 karakter tersebut, dimulai dari atas. Sehingga karakter untuk kode ASCII 00h sama dengan 09h sampai 07h dengan 0Fh. Dengan demikian untuk perancangan 1 karakter memerlukan penulisan data ke CGRAM samapai 8 kali.

8. Cursor and Blink Control circuit

Merupakan rangkaian yang menghasilkan tampilan kursor dan kondisi blink (berkedap-kedip).

Gambar 2.8. Tampilan LCD Character 16x2

Sebagai berikut adalah modul LCD 16x2 karakter yang akan digunakan dalam final project ini. Salah satu alasan mengapa modul LCD dipakai dalam proyek akhir ini adalah untuk menunjukkan angka pengukuran pada lux meter digital. Dengan mikrokontroler kita dapat mengendalikan suatu peralatan agar dapat bekerja secara otomatis. Untuk mengakses LCD 16x2 harus melakukan konfigurasi pin dari LCD dengan pin I/O mikrokontroler tersebut.

LCD (Liquid Crystal Display) Dot-Matrix HD44780 adalah salah satu jenis LCD dot-matrik dengan 2x16 karakter dan dikendalikan oleh kontroler hitachi HD44780. LCD (Liquid Crystal Display) Dot-Matrix HD44780 ini dapat menampilkan karakter angka numeric, huruf alphabet, huruf jepang dan simbol. Kedua komponen tersebut dikemas dalam suatu PCB sehingga membentuk satu modul yang dapat langsung digunakan.

Maka ini mempunyai delapan jalur data (DB0 s/d DB7) dan tiga jalur control (RS, R/W, E).

2.8.2. Konfigurasi Pin LCD

Konfigurasi Pin LCD Dot-Matrix HD44780 1. Pin 1 (Vss) sebagai jalur power supply ground (GND) 2. Pin 2 (Vcc) sebagai jalur power supply positif (+5V) 3. Pin 3 (Vee) merupakan kontrol kontras LCD

4. Pin 4 (RS) jalur instruksi pemilihan data atau perintah

5. Pin 5 (R/W) merupakan jalur instruksi read / write pada LCD mengirimkan data dari dan ke LCD, yaitu pin DB0 – DB7. Sedangkan 3 pin lainya digunakan untuk kendali operasi.

Pin RS, digunakan oleh sistem prosesor HD44780 untuk meberi tahu LCD, apakan informasi biner yang diberikan pada DB0 – DB7 merupakan instruksi atau data.

1. Jika RS = Low, maka informasi biner pada DB0-DB7 adalah instruksi.

2. Jika RS = High, maka informasi biner pada DB0-DB7 adalah data.

Pin R/W, digunakan oleh sistem prosesor HD44780 untuk memberitahu LCD, apakah mikrokontroler akan mengirim data atau membaca data.

3. Jika R/W = Low, maka mengirim data 4. Jika R/W = High, maka membaca data

Pin E, digunakan oleh sistem prosesor HD44780 untuk memberitahu LCD agar mulai memproses sinyal yang diberikan oleh prosesor, yan ditandai dengan peralihan logika pin E dari Hogh ke Low. Khusus untuk pin DB7 selain sebagai data bus, pin ini juga dapat digunakan untuk memberitahukan sistem mikrokontroler bahwa LCD masih sibuk dan belum siap menerima data instruksi berikutnya.

2.8.3. Instruksi Dasar LCD

1. Display Clear, Instruksi ini digunakan untuk membersihkan tampian dan mengembalikan kursor keposisi awal.

2. Function set, digunakan untuk menentukan lebar interface (8-bit atau 4-bit) atau DL, jumlah jalur tampilan (N), dan bentuk aksara (F). Dalam tampilan LCD 4×20 ini lebar interface dapat ditentukan antara 8 bit dan 4 bit. Perbedaan interface 8 bit dan 4 bit adalah dari penggunaan jumlah dari jalur bus data dan pada metode penulisan dan pembacaan instruksi.

3. Entry Mode Set, Instruksi ini digunakan untuk menentukan arah dari perpindahan kursor (I/D) diberi nilai ―1‖ dan menentukan arah pergeseran tampilan (S) diberi nilai‖1‖. Operasi ini digunakan selama penulisan dan pembacaan data.

Display On/off Control, Instruksi ini digunakan untuk menghidupkan atau mematikan (on/off) display (D) diberi niai

―1‖, kursor © diberi nilai ―0‖.

2.9. Transformator

Transformer atau trafo adalah komponen elektromagnet yang dapat mengubah taraf suatu tegangan AC ke taraf yang lain. Adaptor AC-DC merupakan piranti yang menggunakan transformator step-down.

Transformator step-down

Gambar 2.9 Trafo

Transformator bekerja berdasarkan prinsip induksi elektromagnetik.

Tegangan masukan bolak-balik yang membentangi primer menimbulkan fluks magnet yang idealnya semua bersambung dengan lilitan sekunder. Fluks bolak-balik ini menginduksikan GGL dalam lilitan sekunder. Jika efisiensi sempurna, semua daya pada lilitan primer akan dilimpahkan ke lilitan sekunder.

Hubungan Primer-Sekunder

Gambar 2.10. Hubungan Primer – Sekunder Fluks pada transformator

Rumus untuk fluks magnet yang ditimbulkan lilitan primer adalah

...(2.1) dan rumus untuk GGL induksi yang terjadi di lilitan sekunder adalah

...(2.2)

Karena kedua kumparan dihubungkan dengan fluks yang sama, maka

...(2.3) dimana dengan menyusun ulang persamaan akan didapat

...(2.4) sedemikian hingga

...(2.5) Dengan kata lain, hubungan antara tegangan primer dengan tegangan sekunder ditentukan oleh perbandingan jumlah lilitan primer dengan lilitan sekunder.

transformator step-up transformator step-down Gambar 2.11. Lilitan Primer dan Skunder

2.10. Mikrokontroller Arduino Mega2560

Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input output.

Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut ―pengendali kecil‖ dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Arduino merupakan rangkaian elektronik yang bersifat open source, serta memiliki perangkat keras dan lunak yang mudah untuk digunakan. Arduino dapat mengenali lingkungan sekitarnya melalui berbagai jenis sensor dan dapat mengendalikan lampu, motor, dan berbagai jenis aktuator lainnya. Arduino mempunyai banyak jenis, di antaranya Arduino Uno, Arduino Mega 2560, Arduino Fio, dan lainnya.

2.10.1. Arduino Mega2560

Arduino Mega2560 adalah papan mikrokontroler berbasiskan ATmega2560. Arduino Mega2560 memiliki 54 pin digital input/output, dimana 15 pin dapat digunakan sebagai output PWM, 16 pin sebagai input analog, dan 4 pin sebagai UART (port serial hardware), 16 MHz kristal osilator, koneksi USB, jack power, header ICSP, dan tombol reset. Ini semua yang diperlukan untuk mendukung mikrokontroler. Cukup dengan menghubungkannya ke komputer melalui kabel USB atau power dihubungkan dengan adaptor AC-DC atau baterai untuk mulai mengaktifkannya. Arduino Mega2560 kompatibel dengan sebagian besar

shield yang dirancang untuk Arduino Duemilanove atau Arduino Diecimila. Arduino Mega2560 adalah versi terbaru yang menggantikan versi Arduino Mega. Arduino Mega2560 berbeda dari papan sebelumnya, karena versi terbaru sudah tidak menggunakan chip driver FTDI USB-to-serial. Tapi, menggunakan chip ATmega16U2 (ATmega8U2 pada papan Revisi 1 dan Revisi 2) yang diprogram sebagai konverter USB-to-serial.

Arduino Mega2560 Revisi 2 memiliki resistor penarik jalur HWB 8U2 ke Ground, sehingga lebih mudah untuk dimasukkan ke dalam mode DFU.

Arduino Mega2560 Revisi 3 memiliki fitur-fitur baru berikut:

1. Pinout ditambahkan pin SDA dan pin SCL yang dekat dengan pin AREF dan dua pin baru lainnya ditempatkan dekat dengan pin RESET, IOREF memungkinkan shield untuk beradaptasi dengan tegangan yang tersedia pada papan. Di masa depan, shield akan kompatibel baik dengan papan yang menggunakan AVR yang beroperasi dengan 5 Volt dan dengan Arduino Due yang beroperasi dengan tegangan 3.3 Volt. Dan ada dua pin yang tidak terhubung, yang disediakan untuk tujuan masa depan.

2. Sirkuit RESET.

3. Chip ATmega16U2 menggantikan chip ATmega8U2.

Gambar 2.12. Arduino Mega2560

2.10.2. Pemetaan Pin

Gambar 2.13 Konfigurasi Pin Arduino Mega2560

Tabel 2.1. Daftar Pin Arduino Mega2560

Nomor Pin Nama Pin Peta Nama Pin

1 PG5 (OC0B) Digital pin 4 (PWM)

2 PE0 (RXD0/PCINT8) Digital pin 0 (RX0)

3 PE1 (TXD0) Digital pin 1 (TX0)

4 PE2 (XCK0/AIN0)

5 PE3 (OC3A/AIN1) Digital pin 5 (PWM)

21 PB2 (MOSI/PCINT2) Digital pin 51 (MOSI)

22 PB3 (MISO/PCINT3) Digital pin 50 (MISO)

23 PB4 (OC2A/PCINT4) Digital pin 10 (PWM)

24 PB5 (OC1A/PCINT5) Digital pin 11 (PWM)

25 PB6 (OC1B/PCINT6) Digital pin 12 (PWM)

26 PB7 (OC0A/OC1C/PCINT7) Digital pin 13 (PWM)

27 PH7 (T4 )

28 PG3 (TOSC2)

74 PA4 (AD4) Digital pin 26

82 PK7 (ADC15/PCINT23) Analog pin 15

83 PK6 (ADC14/PCINT22) Analog pin 14

84 PK5 (ADC13/PCINT21) Analog pin 13

85 PK4 (ADC12/PCINT20) Analog pin 12

86 PK3 (ADC11/PCINT19) Analog pin 11

87 PK2 (ADC10/PCINT18) Analog pin 10

88 PK1 (ADC9/PCINT17) Analog pin 9

Tabel 2.2. Spesifikasi Arduino Mega2560

Mikrokontroler ATmega2560

Tegangan Operasi 5V

Input Voltage (disarankan) 7-12V

Mikrokontroler AT Mega2560

Input Voltage (limit) 6-20V

Pin Digital I/O 54 (yang 15 pin digunakan sebagai output PWM)

Pins Input Analog 16

Arus DC per pin I/O 40 mA

Arus DC untuk pin 3.3V 50 mA

Flash Memory 256 KB (8 KB digunakan untuk bootloader)

SRAM 8 KB

EEPROM 4 KB

Clock Speed 16 Hz

97 PF0 (ADC0) Analog pin 0

98 AREF Analog Reference

99 GND GND

100 AVCC VCC

2.10.3 Sumber Daya

Arduino Mega dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal. Sumber daya dipilih secara otomatis. Sumber daya eksternal (non-USB) dapat berasal baik dari adaptor AC-DC atau baterai.

Adaptor dapat dihubungkan dengan mencolokkan steker 2,1 mm yang bagian tengahnya terminal positif ke ke jack sumber tegangan pada papan.

Jika tegangan berasal dari baterai dapat langsung dihubungkan melalui header pin Gnd dan pin Vin dari konektor POWER.

Papan Arduino ATmega 2560 dapat beroperasi dengan pasokan daya eksternal 6 Volt sampai 20 volt. Jika diberi tegangan kurang dari 7 Volt, maka, pin 5 Volt mungkin akan menghasilkan tegangan kurang dari 5 Volt dan ini akan membuat papan menjadi tidak stabil. Jika sumber tegangan menggunakan lebih dari 12 Volt, regulator tegangan akan mengalami panas berlebihan dan bisa merusak papan. Rentang sumber tegangan yang dianjurkan adalah 7 Volt sampai 12 Volt.

Pin tegangan yang tersedia pada papan Arduino adalah sebagai berikut:

1. VIN : Adalah input tegangan untuk papan Arduino ketika menggunakan sumber daya eksternal (sebagai ‗saingan‘ tegangan 5 Volt dari koneksi USB atau sumber daya ter-regulator lainnya). Anda dapat memberikan tegangan melalui pin ini, atau jika memasok tegangan untuk papan melalui jack power, kita bisa mengakses/mengambil tegangan melalui pin ini.

2. 5V : Sebuah pin yang mengeluarkan tegangan ter-regulator 5 Volt, dari pin ini tegangan sudah diatur (ter-regulator) dari regulator yang tersedia (built-in) pada papan. Arduino dapat diaktifkan dengan sumber daya baik berasal

dari jack power DC (7-12 Volt), konektor USB (5 Volt), atau pin VIN pada board (7-12 Volt). Memberikan tegangan melalui pin 5V atau 3.3V secara langsung tanpa melewati regulator dapat merusak papan Arduino.

3. 3V : Sebuah pin yang menghasilkan tegangan 3,3 Volt. Tegangan ini dihasilkan oleh regulator yang terdapat pada papan (on-board). Arus maksimum yang dihasilkan adalah 50 mA.

4. GND : Pin Ground atau Massa

5. IOREF : Pin ini pada papan Arduino berfungsi untuk memberikan referensi tegangan yang beroperasi pada mikrokontroler. Sebuah perisai (shield) dikonfigurasi dengan benar untuk dapat membaca pin tegangan IOREF dan memilih sumber daya yang tepat atau mengaktifkan penerjemah tegangan (voltage translator) pada output untuk bekerja pada tegangan 5 Volt atau 3,3 Volt.

2.10.4. Memori digunakan sebagai input atau output, menggunakan fungsi pinMode() , digitalWrite() , dan digitalRead(). Arduino Mega beroperasi pada tegangan 5 volt. Setiap pin dapat memberikan atau menerima arus maksimum 40 mA dan memiliki resistor pull-up internal (yang terputus secara default) sebesar 20-50 kOhms. Selain itu, beberapa pin memiliki fungsi khusus, antara lain:

1. Serial : 0 (RX) dan 1 (TX); Serial 1 : 19 (RX) dan 18 (TX); Serial 2 : 17 (RX) dan 16 (TX); Serial 3 : 15 (RX) dan 14 (TX). Digunakan untuk menerima (RX) dan mengirimkan (TX) data serial TTL. Pins 0 dan 1 juga terhubung ke pin chip ATmega16U2 Serial USB-to-TTL.

2. Eksternal Interupsi : Pin 2 (interrupt 0), pin 3 (interrupt 1), pin 18 (interrupt 5), pin 19 (interrupt 4), pin 20 (interrupt 3), dan pin 21 (interrupt 2). Pin ini dapat dikonfigurasi untuk memicu sebuah interupsi pada nilai yang rendah, meningkat atau menurun, atau perubah nilai.

3. SPI : Pin 50 (MISO), pin 51 (MOSI), pin 52 (SCK), pin 53 (SS). Pin ini mendukung komunikasi SPI menggunakan perpustakaan SPI. Pin SPI juga terhubung dengan header ICSP, yang secara fisik kompatibel dengan Arduino Uno, Arduino Duemilanove dan Arduino Diecimila.

4. LED : Pin 13. Tersedia secara built-in pada papan Arduino ATmega2560. LED terhubung ke pin digital 13. Ketika pin diset bernilai HIGH, maka LED menyala (ON), dan ketika pin diset bernilai LOW, maka LED padam (OFF).

5. TWI : Pin 20 (SDA) dan pin 21 (SCL). Yang mendukung komunikasi TWI menggunakan perpustakaan Wire. Perhatikan bahwa pin ini tidak di lokasi yang sama dengan pin TWI pada Arduino Duemilanove atau Arduino Diecimila.

Arduino Mega 2560 memiliki 16 pin sebagai analog input, yang masing-masing menyediakan resolusi 10 bit (yaitu 1024 nilai yang berbeda).

Secara default pin ini dapat diukur/diatur dari mulai Ground sampai dengan

5 Volt, juga memungkinkan untuk mengubah titik jangkauan tertinggi atau terendah mereka menggunakan pin AREF dan fungsi analogReference().

Ada beberapa pin lainnya yang tersedia, antara lain:

1. AREF : Referensi tegangan untuk input analog. Digunakan dengan fungsi analogReference().

2. RESET : Jalur LOW ini digunakan untuk me-reset (menghidupkan ulang) mikrokontroler. Jalur ini biasanya digunakan untuk menambahkan tombol reset pada shield yang menghalangi papan utama Arduino.

2.10.6. Komunikasi

Arduino Mega2560 memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, dengan Arduino lain, atau dengan mikrokontroler lainnya. Arduino ATmega328 menyediakan 4 hardware komunikasi serial UART TTL (5 Volt). Sebuah chip ATmega16U2 (ATmega8U2 pada papan Revisi 1 dan Revisi 2) yang terdapat pada papan digunakan sebagai media komunikasi serial melalui USB dan muncul sebagai COM Port Virtual (pada Device komputer) untuk berkomunikasi dengan perangkat lunak pada komputer, untuk sistem operasi Windows masih tetap memerlukan file inf,tetapi untuk sistem operasi OS X dan Linux akan mengenali papan sebagai port COM secara otomatis. Perangkat lunak Arduino termasuk didalamnya serial monitor memungkinkan data tekstual sederhana dikirim ke dan dari papan Arduino.

2.10.7 Software Arduino

Arduino Mega2560 dapat diprogram dengan perangkat lunak Arduino. IDE Arduino adalah software yang sangat canggih ditulis dengan menggunakan Java. IDE Arduino terdiri dari :

1. Editor program, sebuah window yang memungkinkan pengguna menulis dan mengeditprogram dalam bahasa Processing.

2. Compiler, sebuah modul yang mengubah kode program (bahasa Processing) menjadi kode biner. Bagaimanapun sebuah mikrokontroler tidak akan bisa memahami bahasa Processing. Yang bisa dipahami oleh mikrokontroler adalah kode biner. Itulah sebabnya compiler diperlukan dalam hal ini.

3. Uploader, sebuah modul yang memuat kode biner dari komputer ke dalam memory didalam papan Arduino.

Sebuah kode program Arduino umumnya disebut dengan istilah sketch.

Kata―sketch‖ digunakan secara bergantian dengan ―kode program‖ dimana keduanya memiliki arti yang sama.

Gambar 2.14. Tampilan Arduino IDE

2.10.8 Bahasa Pemograman Arduino Berbasis Bahasa C

Seperti yang telah dijelaskan diatas program Arduino sendiri menggunakan bahasa C. walaupun banyak sekali terdapat bahasa pemrograman tingkat tinggi (high level language) seperti pascal, basic, cobol, dan lainnya. Walaupun demikian, sebagian besar dari paraprogramer profesional masih tetap memilih bahasa C sebagai bahasa yang lebih unggul, berikut alasan-alasannya:

1. Bahasa C merupakan bahasa yang powerful dan fleksibel yang telah terbukti dapat menyelesaikan program-program besar seperti pembuatan sistem operasi, pengolah gambar (seperti pembuatan game) dan juga pembuatan kompilator bahasa pemrograman baru.

2. Bahasa C merupakan bahasa yang portabel sehingga dapat dijalankan di beberapa sistem operasi yang berbeda. Sebagai contoh program yang kita tulis dalam sistem operasi windows dapat kita kompilasi didalam sistem operasi linux dengan sedikit ataupun tanpa perubahan sama sekali.

3. Bahasa C merupakan bahasa yang sangat populer dan banyak digunakan oleh programer berpengalaman sehingga kemungkinan besar library pemrograman telah banyak disediakan oelh pihak luar/lain dan dapat diperoleh dengan mudah.

4. Bahasa C merupakan bahasa yang bersifat modular, yaitu tersusun atas rutin-rutin tertentu yang dinamakan dengan fungsi (function) dan fungsi-fungsi tersebut dapat digunakan kembali untuk pembuatan program-program lainnya tanpa harus menulis ulang implementasinya.

5. Bahasa C merupakan bahasa tingkat menengah (middle level language) sehingga mudah untuk melakukan interface (pembuatan program antar muka) ke perangkat keras.

6. Struktur penulisan program dalam bahasa C harus memiliki fungsi utama, yang bernama main(). Fungsi inilah yang akan dipanggil pertama kali pada saat proses eksekusi program. Artinya apabila kita mempunyai fungsi lain selain fungsi utama, maka fungsi lain tersebut baru akan dipanggil pada saat digunakan.

Oleh karena itu bahasa C merupakan bahasa prosedural yang menerapakan konsep runtutan (program dieksekusi per baris dari atas ke bawah secara berurutan), maka apabila kita menuliskan fungsi-fungsi lain tersebut dibawah fungsi utama, maka kita harus menuliskan bagian prototipe (prototype), hal ini dimaksudkan untuk mengenalkan terlebih dahulu kepada kompiler daftar fungsi yang akan digunakan di dalam program. Namun apabila kita menuliskan fungsi-fungsi lain tersebut diatas atau sebelum fungsi utama, maka kita tidak perlu lagi untuk menuliskan bagian prototipe diatas.

Selain itu juga dalam bahasa C kita akan mengenal file header, biasa ditulis dengan ekstensi h(*.h), adalah file bantuan yang yang digunakan untuk menyimpan daftar-daftar fungsi yang akan digunakan dalam program.

Bagi anda yang sebelumnya pernah mempelajari bahasa pascal, file header ini serupa dengan unit. Dalam bahasa C, file header standar yang untuk proses input/output adalah <stdio.h>. Perlu sekali untuk diperhatikan bahwa apabila kita menggunakan file header yang telah disediakan oleh

kompilator, maka kita harus menuliskannya didalam tanda‗<‘ dan ‗>‘

(misalnya <stdio.h>).

Namun apabila menggunakan file header yang kita buat sendiri, maka file tersebut ditulis diantara tanda ― dan ‖ (misalnya ―cobaheader.h‖).

perbedaan antara keduanya terletakpada saat pencerian file tersebut. Apabila kita menggunakan tanda <>, maka file tersebut dianggap berada pada direktori deafault yang telah ditentukan oleh kompilator. Sedangkan apabila kita menggunakan tanda ―‖, maka file header dapat kita dapat tentukan sendiri lokasinya.

File header yang akan kita gunakan harus kita daftarkan dengan menggunakan directive #include. Directive #include ini berfungsi untuk memberi tahu kepada kompilator bahwa program yang kita buat akan menggunakan file-file yang didaftarkan. Berikut ini contoh penggunaan

File header yang akan kita gunakan harus kita daftarkan dengan menggunakan directive #include. Directive #include ini berfungsi untuk memberi tahu kepada kompilator bahwa program yang kita buat akan menggunakan file-file yang didaftarkan. Berikut ini contoh penggunaan

Dokumen terkait