• Tidak ada hasil yang ditemukan

5. IOREF : Pin ini pada papan Arduino berfungsi untuk memberikan referensi tegangan yang beroperasi pada mikrokontroler. Sebuah perisai (shield)

2.13.1 Software Arduino

Arduino Mega dapat diprogram dengan software Arduino. ATmega 2560 pada Arduino Mega sudah tersedia preburned dengan bootloader yang memungkinkan anda untuk meng-upload kode baru tanpa menggunakan programmer hardware eksternal. Hal ini karena komunikasi yang terjadi menggunakan protokol asli STK500. Juga dapat melewati bootloader dan program mikrokontroler melalui pin header ICSP (In-Circuit Serial Programming).

Gambar 2.25 Sketch kode program Arduino

50 ReadAnalogVoltage

// the setup routine runs once when you press reset:

void setup() {

// initialize serial communication at 9600 bits per second:

Serial.begin(9600);}

// the loop routine runs over and over again forever:

void loop()

{// read the input on analog pin 0:

int sensorValue = analogRead(A0);

// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):

float voltage = sensorValue * (5.0 / 1023.0);

// print out the value you read:

Serial.println(voltage); }

Lingkungan open-source Arduino memudahkan untuk menulis kode dan upload ke

board Arduino. Ini berjalan pada Windows, Mac OS X, dan Linux. Berdasarkan

51 menggunakan pemrograman dengan bahasa C. Berikut ini adalah beberapa penjelasan mengenai karakter bahasa C dan software Arduino.

a. Struktur

Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada.

1. Void setup( ) { }

Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.

2. Void loop( ) { }

Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus secara terus menerus sampai catu daya (power) dilepaskan.

b. Syntax

Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan. 1. //(komentar satu baris)

Kadang diperlukan untuk member catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.

52 2. /* */(komentar banyak baris)

Jika terdapat banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program.

3. { }(kurung kurawal)

Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).

4. ;(titk koma)

Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan).

c. Variabel

Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya.

1. int (integer)

Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.

2. long (long)

Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan 2,147,483,647.

53 3. boolean (boolean)

Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau

FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM.

4. float (float)

Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38.

5. char (character)

Menyimpan 1 karakter menggunakan kode ASCII (misalnya „A‟ = 65). Hanya memakai 1 byte (8 bit) dari RAM.

Jadi, pada sisi program arduino berfungsi untuk membaca tegangan ADC dan memprosesnya dengan pengaturan sketsa program yang sudah disebutkan kemudian dapat mengirimkan data baudrate 9600, maksudnya kecepatan data yang dikirim 9600 bit per second. Sketsa yang ditulis pertama adalah syntax berupa komentar supaya ada keterangan dalam program. Kemudian dimasukkan struktur void setup untuk inisialisasi kode yang akan dijalankan. Setelah itu membuat struktur void loop sebagai program pengulangan untuk memanggil kode inisialisasi yang terdapat di

void setup. Didalam void loop terdapat program untuk pembacaan ADC atau bisa

dilihat list program arduino dan juga terdapat kode program untuk mengubah dari tegangan analog menjadi digital.

54 2.13.2 Software Matlab

Matlab adalah sebuah program untuk analisis dan komputasi numerik dan merupakan suatu bahasa pemrograman metematika lanjutan yang dibentuk dengan dasar pemikiran menggunakan sifat dan bentuk matrix. MATLAB (Matrix Laboratory) merupakan bahasa pemrograman tingkat berbasis pada matrix sering digunakan untuk teknik komputasi numerik, yang digunakan untuk menyelesaikan masalah-masalah yang melibatkan operasi matematika elemen, matrik, optimasi, aproksimasi dan lain-lain. Sehingga Matlab banyak digunakan pada matematika dan komputasi, pengembangandan algoritma, pemrograman modeling, simulasidan pembuatan prototipe, analisis data dan visualisasi serta analisis numerik dan statistik.

Software matlab digunakan untuk dapat menggambarkan akuisisi data secara visual

berupa gambar grafik 2 dimensi atau 3 dimensi. Seluruh data yang masuk pada arduino akan dikontrol kemudian diproses di matlab lalu ditampilkan pada komputer. Program matlab tersebut harus bisa berkomunikasi dengan arduino agar dapat membaca nilai sensor ADC, maka perlu menseting syntax pada program matlab.

55 Gambar 2.26 Program matlab menampilkan data logger

Pada bagian matlab beberapa syntax dan variabel yang harus diedit agar dapat mengenali perangkat keras arduino, berikut sketsa programnya.

clear clc

%Inisialisasi serial dan grafik

serialPort = 'COM3'; % isi dgn COM yg sesuai

judulGrafik = 'Logger Data Serial'; % Judul grafik

xLabel = 'Waktu (detik)'; % x-axis label

yLabel = 'Data'; % y-axis label

plotGrid = 'on'; % aktifkan grid

min = 0; % minimum axis-y

max = 1050; % maksimum axis-y

lebarScroll = 10; % display data pada grafik

delay = .01; % waktu cuplik

%Inisialisasi variabel

waktu = 0; data = 0; cacah = 0;

%Persiapkan grafik

plotGraph = plot(waktu,data,'-o',...

'LineWidth',1,...

'MarkerSize',3,...

56

'MarkerFaceColor','r');

title(judulGrafik,'FontSize',15); xlabel(xLabel,'FontSize',12); ylabel(yLabel,'FontSize',12); axis([0 10 min max]);

grid(plotGrid); %aktifkan grid

%Buka komunikasi melalui port COM

s = serial(serialPort);

disp('Tutup jendela grafik untuk mengakhiri logger'); fopen(s);

tic %aktifkan deteksi waktu

while ishandle(plotGraph) %Terus looping semasih plot aktif

nilaiInput = fscanf(s,'%f'); %Baca data serial dalam format float

%Pastikan data yg diterima benar

if(~isempty(nilaiInput) && isfloat(nilaiInput)) cacah = cacah + 1;

waktu(cacah) = toc; %ambil waktu saat ini

data(cacah) = nilaiInput(1); %ambil data saat ini

%Set Axis sesuai dengan nilai lebarScroll

if(lebarScroll > 0)

set(plotGraph,'XData',waktu(waktu > waktu(cacah)-lebarScroll), ...

'YData',data(waktu > waktu(cacah)-lebarScroll));

axis([waktu(cacah)-lebarScroll waktu(cacah) min max]);

else

set(plotGraph,'XData',waktu,'YData',data); axis([0 waktu(cacah) min max]);

end

%Beri waktu sesaat utk Update Plot

pause(delay);

end end

% Tutup serial port dan delete variabel yg sudah terpakai

fclose(s); clear all;

57 Beberapa bagian dari Window Matlab

Dokumen terkait