Dr. GÜRAY SONUGÜR

Dr. Öğr. Üyesi Güray SONUGÜR – Öğrenci Bilgi Paylaşım Platformu

Arduino’dan Matlab ile sensör verileri okuma (Arduino destek paketi kullanarak)

Verileri okuduğumuz kod:

Bu kodu matlab üzerinde “>>edit portOku ” komutu ile yeni bir m file açıp doğrudan copy-paste yapabilirsiniz.

 

Kullanılan devre:

Kullanılan devre şeması

clc;
clear;
%COM5 de kurulu olan mega2560 arduino sınıfını “a” değişkenine atadık.
a=arduino(‘COM5′,’Mega2560’);

%arduino üzerindeki sensörlerden aldığımız her değeri biz dizide (array)
%tutmamız gerekir. Üç sensörümüz var.
%1.) Potansiyometre 2.) Işık sensörü LDR  3.) Sıcaklık sensörü
%Dizide indis değişkenini “i” olarak seçtik.

for i=1:50
voltage(i)=readVoltage(a,’A0′); %Potansiyometre verilerinin tutulduğu dizi
ldr(i)=readVoltage(a,’A1′); % LDR veriklerinin tutulduğu dizi
sck(i)=readVoltage(a,’A3′); % Sıcaklık verilerinin tutulduğu dizi.
pause(0.5); % 0.5 saniyelik duraklama tanımlandı.

% Eğer potansiyometreden okunan değer 4.7 Voltu aşarsa bir kısım işlemler
% yapılacak.
if voltage(i)>4.7
fprintf(‘Sıcaklık beklenen değeri aştı!!’); %Ekrana uyarı yaz!
writeDigitalPin(a,’D46′,1); %Arduino 46 nolu dijital pini 1 yap. Yani 5V gönder.
else
writeDigitalPin(a,’D46′,0); %4.7 Voltu aşmazsa 46 nolu pini 0 yap.

end

% Okunan değerler düzenli bir şekilde ekrana yazılıyor.
fprintf(‘i=%d’,i)
fprintf(‘   voltage=%f’,voltage(i));
fprintf(‘   ldr=%f’,ldr(i));
fprintf(‘   sicaklik=%f\n’,sck(i));
%okunan değerler for döngüsü içinde grefiğe yansıtılıyor.
%”hold on” komutu ile tüm grafiklerin aynı ekrana çıkması sağlandı.
%”drawnow” komutu ile gerçek zamanlı grafik çizildi.
plot(voltage,’b’); % potansiyometre grafiği mavi
hold on;
plot(ldr,’r’); % LDR grafiği kırmızı
plot(sck,’g’); % sıcaklık grafiği yeşil
drawnow;
end

Oluşan gerçek zamanlı grafik

 

Oluşan Ekran Çıktısı