7 03 2017
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:
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
Normalizasyon işlemi yapan fonksiyon Arduino’dan Matlab ile seri (com) port kullanarak sensör verilerini okumak