Bu kod bir Arduino ile SD kart kullanarak dosya oluşturma, yazma, okuma, silme ve dosya listeleme işlemlerini gerçekleştirir:
- Kütüphanelerin ve Değişkenlerin Tanımlanması:
#include <SPI.h>
ve#include <SD.h>
: SPI iletişimi için gerekli olan kütüphaneler.DosyaOlustur
,DosyayaYaz
,DosyadanOku
,DosyayiSil
,DosyalariListele
: Butonların bağlı olduğu pin numaraları.dosya
: Dosya işlemleri için bir File nesnesi.chipSelect
: SD kart modülünün CS (Chip Select) pin numarası.ornekveri
: Yazılacak verinin örnek değeri.
- setup() Fonksiyonu:
- Seri iletişimi başlatır.
- SD kartı başlatır ve durumunu kontrol eder.
- Buton pinlerini giriş olarak ayarlar.
- loop() Fonksiyonu:
- Dosya Oluşturma ve Varlığını Kontrol Etme: Belirli bir butona basıldığında, “deneme.txt” adında bir dosya oluşturur veya varsa mevcut olduğunu belirtir.
- Dosyaya Bilgi Yazma: Belirli bir butona basıldığında, “deneme.txt” dosyasını açar, bir sonraki veriyi dosyaya yazar ve dosyayı kapatır.
- Dosyadan Bilgi Okuma: Belirli bir butona basıldığında, “deneme.txt” dosyasını açar, içeriğini seri monitöre yazdırır ve dosyayı kapatır.
- Dosyayı Silme: Belirli bir butona basıldığında, “deneme.txt” dosyasını siler.
- Dosyaları Listeleme: Belirli bir butona basıldığında, SD karttaki tüm dosyaları listeler.
- printFiles() Fonksiyonu:
- SD karttaki dosyaları listelemek için kullanılır.
- Bir dizin açar, tüm dosyaları okur ve seri monitöre yazdırır.
Bu kod, basit bir dosya işleme uygulamasını gerçekleştirmek için kullanılabilir. Ancak, gerçek dünya uygulamalarında hata kontrolü ve daha karmaşık senaryoların ele alınması önemlidir. Ayrıca, kullanıcı arayüzü eklemek veya işlevsellik eklemek isteyebilirsiniz.


#include <SPI.h> #include <SD.h> int DosyaOlustur = 8; int DosyayaYaz = 9; int DosyadanOku = 5; int DosyayiSil = 6; int DosyalariListele = 7; File dosya; int chipSelect = 10; int ornekveri; void setup() { delay(1000); Serial.begin(9600); SD.begin(10); Serial.print("SD Kart Hazirlaniyor ... "); if (!SD.begin()) { Serial.println("Sd Kart Hatasi"); return; } Serial.println("SD Kart Hazir"); pinMode(DosyaOlustur, INPUT); pinMode(DosyayaYaz, INPUT); pinMode(DosyadanOku, INPUT); pinMode(DosyayiSil, INPUT); pinMode(DosyalariListele, INPUT); } void loop() { //////////////// DOSYA OLUSTURMA VE VARLIĞINI KONTROL ETME //////////////////////// if (digitalRead(DosyaOlustur)) { if (!SD.exists("deneme.txt")) { SD.open("deneme.txt", FILE_WRITE); Serial.println("Dosya Olusturuldu !"); dosya.close(); } else { Serial.println("Dosya Zaten Var"); } } ////////////////// DOSYAYA BILGI YAZMA ///////////////////// if (digitalRead(DosyayaYaz)) { dosya = SD.open("deneme.txt", FILE_WRITE); if (dosya) { ornekveri = ornekveri + 1; dosya.println(ornekveri); dosya.close(); Serial.println("Yazma Basarili"); } else { Serial.println("Dosya Acilamiyor !"); } } ///////////////////// DOSYADAN BİLGİ OKUMA ///////////////////////////////////// if (digitalRead(DosyadanOku)) { dosya = SD.open("deneme.txt", FILE_READ); if (dosya) { Serial.println(dosya.readString()); dosya.close(); } else { Serial.println("Dosya Acilamiyor !"); } } //////////////////////////// DOSYAYI SİLME ////////////////////////////// if (digitalRead(DosyayiSil)) { if (SD.exists("deneme.txt")) { SD.remove("deneme.txt"); Serial.println("Dosya Silindi !"); } else { Serial.println("Silincecek Dosya Bulunamadi !"); } } //////////////// DOSYA listeleme //////////////////////// if (digitalRead(DosyalariListele)) { File dizin = SD.open("/"); printFiles(dizin, 0); } delay(350); } void printFiles(File dizin, int numTabs) { Serial.println("SD KARTTAKI DOSYALAR :::"); while (true) { File entry = dizin.openNextFile(); if (!entry) { break; } for (uint8_t i = 0; i < numTabs; i++) { Serial.print('\t'); } Serial.println(entry.name()); entry.close(); } }




