Ploting Real Time Data dari Arduino dengan MATLAB

Ditulis oleh agan

بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

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)

Lihat Video simulasi dibawah ini



Terimakasih telah berkunjung, semoga bermanfaat.

Blog, Updated pada: 00:47:00
Comments
0 Comments

0 comments:

Post a Comment

Masih Bingung atau Hal Lainnya? Silahkan Bertanya di Kolom Komentar :)

~ Dilarang SARA
~ Dilarang PORNOGRAPHY
~ Dilarang SPAM
~ Dilarang MENINGGALKAN LINK AKTIF
~ Maaf untuk Anonymous, tidak bisa Berkomentar.

Apabila Komentar anda belum muncul, Tunggu sampai di Moderasi.
Terimakasih atas Perhatiannya.


English French German Spain Italian Dutch Russian