與前篇文章一樣,SD卡不是感測器,但因是在同一類主題中討論,故列入。

只要是感測器的資料擷取,通常需要儲存,

尤其是行動式的裝置,SD card更是常用的儲存硬體,

我們使用Arduino IDE內建了一些SD卡的範例程式,

其中SD-->File範例,說明如何在SD中新增一個檔案:

sdfile 001.jpg  

* SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4

// On the Ethernet Shield, CS is pin 4. Note that even if it's not
// used as the CS pin, the hardware CS pin (10 on most Arduino boards,
// 53 on the Mega) must be left as an output or the SD library
// functions will not work.

依註解說明,使用UNO,CS需設成Pin 10,也就是const int chipSelect = 10;

我們執行Arduino中SD的範例程式File.ino,注意程式碼中紅色字的修改,

這一個範例程式主要是說明如何在SD卡中建立一個example.txt的檔案,使用SD.open("example.txt", FILE_WRITE)。

File.ino code:

/*
  SD card basic file example
 
 This example shows how to create and destroy 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 <SD.h>

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(10)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");

  if (SD.exists("example.txt")) {
    Serial.println("example.txt exists.");
  }
  else {
    Serial.println("example.txt doesn't exist.");
  }

  // open a new file and immediately close it:
  Serial.println("Creating example.txt...");
  myFile = SD.open("example.txt", FILE_WRITE);
  myFile.close();

  // Check to see if the file exists:
  if (SD.exists("example.txt")) {
    Serial.println("example.txt exists.");
  }
  else {
    Serial.println("example.txt doesn't exist.");  
  }

  // delete the file:
  //Serial.println("Removing example.txt...");  <---先註解掉
  //SD.remove("example.txt");

  if (SD.exists("example.txt")){
    Serial.println("example.txt exists.");
  }
  else {
    Serial.println("example.txt doesn't exist.");  
  }
}

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

輸出結果:建立example.txt

sd file 002.jpg

在SD Card中,也存在example.txt檔案。

sdfile 003.jpg  

arrow
arrow
    文章標籤
    arduino uno sd
    全站熱搜

    fishark 發表在 痞客邦 留言(1) 人氣()