Arduino SD Kart Uygulaması

Arduino SD Kart Uygulaması (Data Logger)

LM35 sesnörümüz 4-20 volt aralığında çalışan, -55 ile +150 derece arasında ölçüm yapan 0,5 derece hassasiyetinde analog sensördür. Bu sensör eksi sıcaklıklar için negatif gerilim verir. Arduino negatif gerilimleri ölçemediği için eksi sıcaklıkları bu uygulamada gözardı edeceğiz.

Hafıza kartının formatı için; 2 GB a kadar fat16, 2 GB dan büyük kapasiteler için ise fat32 formatı kullanılmalıdır. Diğer formatlarda arduino SD kütüphanesi ile okuma yazma yapamazsınız. Ayrıca dosya adı en fazla 8, dosya uzantısı 3 karakter olmalıdır. Dosya isimini anlaşılır ve kısa tutmaya çalışın. Örnek: “IsiLog.txt” gibi.

Elimde arduino SD kart modülü olmadığı için mikrosd adaptör çıkışlarına header pin lehimleyerek basitçe bir adaptör yaptım. Aşagıda adaptör ve SD kart pin açıklamalarını görebilrisiniz.

sd_microsd_adapter_pin

 

sd_kart_pin

Yukarıda da görüldüğü gibi sd kart besleme voltajı 3.3 volttur. Buna çok dikkat edin. İletişim için ise SPI interface kullanılıyor. Şimdi devremizi tasarlayalım.

arduino_sdkart_lm35_bb

Pin       SD Kart Pin       Arduino Pin
CS                 1                         D4
MOSI             2                         D11
SCK               5                         D13
MISO             7                         D12

LM35 ve kart okuyucu adaptörümüzü şekildeki gibi arduinoya bağlantılarını yapıyoruz. Şimdi her 60 saniyede bir sıcaklık bilgisini okuyup hafıza kartına yazacak programımızı hazırlayalım.

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
// DIYOT.NET
// www.diyot.net
// Arduino SD Kart Uygulaması 2015
#include <SPI.h>
#include <SD.h>
File dosya;
float derece;
#define CSpin 4
#define LM35Pin A0
int sayac = 1;
void setup() {
 Serial.begin(9600); // serial açılıyor
 if (!SD.begin(CSpin)) {// SD kart başlatılıyor
 Serial.println("SD Kart yok yada baglanti basarisiz.");
 return;
 }
 Serial.println("SD Kart baglandi");
}
void loop() {
 derece = sicaklikOlc();
 dosya = SD.open("Log.txt", FILE_WRITE); // Dosya açılıyor. Yok ise yeni oluşturulur.
 if (SD.exists("Log.txt")) { // Dosya var mı? kontrolü.
 dosya.print(sayac); // dosyaya yazılıyor.
 dosya.print(". Dakika Sıcaklık Değeri : ");
 dosya.println(derece);
 dosya.close(); // dosyayı kapat.
 Serial.println("Sicaklik bilgisi kaydedildi.");
 }else{
 Serial.println("Dosya yok yada yazma başarisiz!");
 }
 sayac++; // sayacı bir arttırıyoruz.
 delay(60000); // 60 saniye bekle
}
float sicaklikOlc()
{
 float temp;
 temp = analogRead(LM35Pin);
 temp = (5.0 * temp * 100.0)/1024.0;//lm35 sıcaklık hesaplama bölümü
 return temp;
}

Satır aralarında kod ile ilgili açıklamalar mevcut. Arduinoya programı yükleyip seri port ekranını açalım. Aşağıdaki gibi bir ekran görülecektir.

arduino_sdkart_lm35_seri_log

Hafıza kartını bilgisayara takıp baktığınızda aşağıdaki gibi bir dosya olduğunu görebilirsiniz.

arduino_sdkart_lm35_log

Bu uygulamada hafıza kartına sadece yazma işlemi yaptık.

Diğer örnek uygulamalar için Arduino SDkütüphanesine bakabilirsiniz.

Benzer Yazılar

YAZAR : Admin

Elektronik Mühendisi / E.Üni. Kalibrasyon Lab. Sorumlusu / Biyomedikal Kalibrasyon Laboratuvarı Sorumlu Müdürü (Sağ.Bak.) / X-Işınlı Görüntüleme Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) / Ultrason-Doppler Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) - Hatalı veya kaldırılmasını istediğiniz sayfaları diyot.net@gmail.com bildirin

BU YAZIYI DA İNCELEDİNİZ Mİ ?

Jiroskop

Jiroskop Nedir ? Jiroskop Yön bulmak veya ölçmekte kullanılır.Bazı cihaz ve araçlarda denge sağlayan parçalardır. …

Bir cevap yazın