Dr. GÜRAY SONUGÜR

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

Matlab ile Kontrol Kartından Okunan Verileri Excel Dosyasına Yazma İşlemi

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.
sinir=41;
voltage=zeros(1,sinir);
ldr=zeros(1,sinir);
sck=zeros(1,sinir);
% Okunan değerler düzenli bir şekilde XLS dosyaya yazılacak.
% Dosya adı günün tarihi olması için aşağıdaki komutlar komut satırından
% kullanılabilir.
%>> c=date
%>> c=datetime
%>> str=datestr(datetime)+’.txt’
%>> str=strcat(datestr(date),’.txt’) burada tarihi bir string ifade olarak
%aldık.

%Verilerin kaydedileceği dosya adı günün tarihi olarak oluşturuluyor.
% Uzantısı “.xls”
dosyaAdi=strcat(datestr(date),’.xls’);
for i=1:sinir
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.

%exceldeki sütun başlıkları oluşturuldu.
baslik={‘POT’,’LDR’,’SICAKLIK’};
%her satırda yazılacak olan veriler dizi olarak düzenlendi.
yazilacak=[voltage(i) ldr(i) sck(i)];

% her 20 satırda bir defa başlık satırı yazması için aşağıdaki if ifadesi
% yazıldı. Ayrıca xls yazmadan önce hızlı dosya yazma işlemi için bir excel dosyası açılıp %günün tarihi  ile kaydedilmeli ve “Degerler” isminde bir sekme açılmalıdır.
if (i==1 || rem(i,20)==0)
xlswrite(dosyaAdi, baslik,’Degerler’,strcat(‘A’,num2str(i)));
xlswrite(dosyaAdi, yazilacak,’Degerler’,strcat(‘A’,num2str(i+1)));
else
xlswrite(dosyaAdi, yazilacak,’Degerler’,strcat(‘A’,num2str(i+1)));
end
%okunan değerler for döngüsü içinde grafiğ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;
hold off;
end