Halo sahabat arduino yang berbahagia, berjumpa kembali di kesempatan hari yang indah ini :)
Apa kabar kalian semua? komentarlah di blog ini, santai saja bro jangan segan dan malu ya.
Pada hari ini saya ingin memberikan Tutorial Arduino, yaitu Cara Ploting Real time data dari Arduino dan hasil data akan ditampilkan pada Software Matlab.
Masih bingung apa itu Matlab?
Silahkan berkenalan dulu bro, tak kenal maka tak sayang :)
Sebenarnya saya juga belum lama kenal dengan Matlab, saya mulai
diperkenalkan oleh dosen saya di kampus dan disarankan untuk mempelajari
lebih dalam lagi Software Matlab ini.
Langsung saja menuju ke Tutorialnya, Kali ini kita akan membuat atau menampilkan ploting real time data dari Arduino dan akan dikirimkan dan ditampilkan pada Software Matlab.
Alat dan Bahan yang dibutuhkan :
1x Arduino UNO
1x Potensiometer
Kabel jumper secukupnya
Project board (Breadboard)
Software Matlab
Langkah - Langkahnya :
1.) Susunlah rangkaian berikut ini pada breadboard.
Keterangan Konfigurasi Kabel :
Hubungkan Pin 5V Arduino pada salah satu kaki pinggir Potensio
Hubungkan Pin GND Arduino pada salah satu kaki pinggir lain Potensio
Hubungkan Pin A0 Arduino dengan kaki tengan Potensio
2.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
3.) Download dan Install program Arduino IDE di Arduino.cc( If Needed ) 4.) Setelah terinstall, jalankan program Arduino-nya. 5.) Klik menu "Tools -> Board -> Arduino Uno"
6.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
7.) Lalu masukan Sketch dibawah ini, dan klik upload.
void setup() {
Serial.begin(9600); //Kecepatan komunikasi serial
}
void loop() {
int hasilPotensio = analogRead(A0); //Hasil Potensio = Input dari A0
Serial.println(hasilPotensio); //Print hasil potensio
delay(50);
}
8.) Setelah sketch berhasil di upload pada board Arduino, lalu buka software matlab.
9.) Klik New, lalu pilih Script.
10.) Setelah itu masukan Script dibawah ini pada software matlab. 11.) Setelah itu Klik RUN, dan Putar posisi Potensio.
Klik LIHAT BRO untuk melihat script
clear
clc
%Inisialisasi serial dan grafik
serialPort = 'COM3'; % Ubah dengan COM anda
judulGrafik = 'Logger Data Serial'; % Judul grafik
xLabel = 'Waktu (detik)'; % x-axis label
yLabel = 'Data'; % y-axis label
plotGrid = 'on'; % aktifkan grid
min = -2; % minimum axis-y
max = 2; % 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,...
'MarkerEdgeColor','k',...
'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 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;
disp('Logger berakhir...');
*KETERANGAN
Pada baris serialPort = 'COM3';(Ubah "COM3"dengan COM Port Arduino anda)