Ploting Hasil Sensor LDR dengan Arduino dan MATLAB

Ditulis oleh agan

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

Halo bro, Selamat datang dan berjumpa lagi dengan saya di gubuk BoArduino yang sepi ini.
Dikesempatan sabtu sore yang akan menjelang malam, ane menyempatkan menulis di Blog ini.

Berbeda dengan kebiasaan orang lainnya di Sabtu malam, disaat kebanyakan orang diluar sana sedang Berpacaran dengan yang "Bukan Mahramnya". Sedangkan ane disini hanya duduk belajar didepan Laptop sambil mendengarkan Radio Fajri FM bersama keluarga tercinta dirumah :) 

Seperti yang kita tau Pacaran itu membawa banyak Mudharat, sedangkan hidup kita di dunia ini hanya sementara. Takut nggak sih, kalau besok atau lusa kita wafat, tabungan amal kita masih defisit, karena masih lebih banyak dosa daripada amal ibadahnya? Masa kita mau mengisi hidup ini dengan hal-hal yang mudharat terus? Sampai kapan bro?. Lebih baik kegiatan di sabtu malam kita diisi dengan Belajar dan terus belajar, agar dinaikkan derajat kita oleh Sang Pencipta :)

Oke yasudahlah kalau begitu, mari kita simak dan praktikkan tutorialnya, Semangat bro!
 
Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x LDR (Light Dependent Resistor)
  • 1x Resistor 10K
  • Kabel jumper secukupnya
  • Project board (Breadboard)
  • Software Matlab

Langkah - Langkahnya :

1.)  Susunlah rangkaian berikut ini pada breadboard.


Keterangan Konfigurasi Kabel :
  • Pin A0 pada Arduino dihubungkan ke salah satu kaki LDR
  • Pin GND pada Arduino dihubungkan ke kaki resistor yang terhubung ke kaki LDR
  • Salah satu kaki LDR lainnya dihubungkan ke Pin 5V pada Arduino
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 terakhir klik upload.
void setup() {
   Serial.begin(9600);  //Kecepatan komunikasi serial
}
 
void loop() {
   int hasilSensorLDR = analogRead(A0);  //Hasil LDR = Input dari A0
   Serial.println(hasilSensorLDR);  //Print hasil Sensor LDR
   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, maka akan muncul hasil Ploting dari sensor LDR

Klik LIHAT BRO untuk melihat script
clear
clc

%Inisialisasi serial dan grafik
serialPort = 'COM3';                  % Ubah dengan COM anda
judulGrafik = 'Hasil Sensor LDR';     % 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)


Terimakasih telah berkunjung, selamat belajar, semoga bermanfaat.

Blog, Updated pada: 17:57:00

6 comments:

  1. bang kalo diganti sensor suhu bisa ga?

    ReplyDelete
  2. ko outputnya ga ada ya mas? dan itu antara minimum axis y sama x nya ko beda sama screenshot an nya mas?

    ReplyDelete
    Replies
    1. Maksudnya gaada? Itu minimum x dan y memang beda, karena saya ubah sesuai rentang nilai analog input pin arduino.

      Delete
    2. iya mas gaada ldr nya pas dikasih cahaya ga ngaruh apa apa di matlab nya bingung salah dimananya

      Delete
    3. Coba di cek kembali mungkin wiringnya.

      Delete

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