ReadWrite

Bu örnek, bir SD karta ve SD karttan nasıl veri okunacağını ve yazılacağını gösterir. SD kütüphanesi hakkında daha fazla bilgi için lütfen buraya tıklayın .

Gerekli Donanım

  • Arduino veya Genuino kartı
  • Ethernet Kalkanı (veya SD yuvalı başka bir kart)
  • Biçimlendirilmiş SD kart

Devre

Arduino veya Genuino kartı Ethernet Kalkanına bağlı olmalı ve ayrıca bilgisayara bağlı bir USB kablosu olmalıdır.

Şemalar

Kod

Aşağıdaki kod, yerleşik SD yuvasına sahip bir Ethernet kalkanı ile kullanım için yapılandırılmıştır. In setup() , dediğimiz SD.begin() CS pin olarak pimi 4 adlandırma. Bu pim, kullandığınız kalkanın veya kartın markasına bağlı olarak değişir.

setup() , SD.open() "test.txt" adlı yeni bir dosya oluşturun. FILE_WRITE , dosyadan sonuna kadar okuma ve yazma erişimi sağlar. Kartta zaten bir "test.txt" dosyası varsa, o dosya açılır.

Açılan dosyanın örneğini "myFile" olarak adlandırın.

Açıldıktan sonra, karta bir dize ve ardından bir satır başı yazmak için myFile.println() kullanın. İçerik yazıldıktan sonra dosyayı kapatın.

Yine dosyayı SD.open() ile açın. Açıldıktan sonra SD.read() ile dosyanın içeriğini okumasını ve seri port üzerinden göndermesini SD.read() . Dosyanın tüm içeriği okunduktan sonra dosyayı SD.close() ile SD.close() .


/*
  SD card read/write
 
 This example shows how to read and write data to and from an SD card file 	
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4
 
 created   Nov 2010
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe
 
 This example code is in the public domain.
 	 
 */
 
#include 
#include 

File myFile;

void setup()
{
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.print("Initializing SD card...");
  // On the Ethernet Shield, CS is pin 4. It's set as an output by default.
  // Note that even if it's not used as the CS pin, the hardware SS pin 
  // (10 on most Arduino boards, 53 on the Mega) must be left as an output 
  // or the SD library functions will not work. 
   pinMode(10, OUTPUT);
   
  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
  
  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile = SD.open("test.txt", FILE_WRITE);
  
  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
	// close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
  
  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");
    
    // read from the file until there's nothing else in it:
    while (myFile.available()) {
    	Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
  	// if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
}

void loop()
{
	// nothing happens after setup
}


See Also


  • CardInfo- SD kartınız hakkında bilgi alın.
  • Datalogger- Üç analog sensörden bir SD karta veri nasıl kaydedilir.
  • DumpFile- SD karttan bir dosya nasıl okunur.
  • Files- Nasıl bir SD kart dosyası oluşturmak ve yok etmek.
  • Listfiles- SD karttaki bir dizindeki dosyaların yazdırılması.