12.Micro SD記憶卡讀寫模組

功能:平常使用Arduino進行溫度、濕度、亮度等偵測工作,需要將偵測到的資料儲存在Micro SD記憶卡,這時就需要使用SPI介面的Micro SD記憶卡讀寫模組。

 

材料接線:Micro SD記憶卡讀寫模組*1、Micro SD記憶卡*1、杜邦線(公對母)*6。

將接腳CS接到預設腳位10,SCK(CLK)接腳位13,MOSI接腳位11,MISO接腳位12,VCC接5V,GND接GND。

 

程式積木

 

程式:

首先開始產生一個test.txt的檔案,模式為寫入(FILE_WRITE),若檔案不存在,就會自動建立新的檔案,儲存一行文字到test.txt檔案中。接著再次開啟剛才的test.txt檔案,把檔案裡面的內容讀取並顯示在序列埠監控視窗。

/* 程式名稱:Micro SD記憶卡讀寫模組 */
#include <SPI.h>             // 添加內建的函式庫SPI.h
#include <SD.h>             // 添加內建的函式庫SD.h
#define SD_CS_PIN SS  // CS腳位預設是SS腳位10,如果有多個SPI設備,要設定不同的腳位
File myFile;                    // 宣告myFile這個名稱是檔案
 
void setup() {
  Serial.begin(9600);                               // 設定與電腦序列埠監控視窗的速率相同
  if (!SD.begin(SD_CS_PIN)) {               // 判斷SD模組初始化是否成功
    Serial.println("initialization failed!");  // 序列埠監控視窗顯示初始化失敗
    return;
  }
  Serial.println("initialization done.");               // 序列埠監控視窗顯示初始化完成
  myFile = SD.open("test.txt", FILE_WRITE);  // ******** 打開test.txt檔案,模式為寫入,如果檔案不存在會自動建立,不能用中文檔名
  if (myFile) {                                                   // 如果開啟檔案成功,就進行以下的寫入文字工作
    Serial.print("Writing to test.txt...");              // 序列埠監控視窗顯示寫入至test.txt...
    myFile.println("yuan.yocjh.kh.edu.tw");     // ******** 儲存一行文字到test.txt檔案中,請自行修改文字內容,中文字也可以
    myFile.close();                                            // 關閉檔案
    Serial.println("done.");                                // 序列埠監控視窗顯示"完成"
  }
  else {                                                              // 如果無法開啟檔案,就在監控視窗顯示訊息
    Serial.println("error opening test.txt");          // 序列埠監控視窗顯示"開啟檔案失敗"
  }
 
  myFile = SD.open("test.txt");                     // ******** 打開檔名為test.txt的檔案,模式預設為讀取
  if (myFile) {                                               // 如果開啟檔案成功,就進行以下的讀取文字工作
    Serial.println("test.txt:");                          // 在監控視窗顯示檔案名稱
    while (myFile.available()) {                    // 一直讀取檔案內容,直到沒有為止
      Serial.write(myFile.read());                   // 把讀到的內容顯示在監控視窗
      }
    myFile.close();                                        // 關閉檔案
  } else {
      Serial.println("error opening test.txt");   // 如果無法開啟檔案,就在監控視窗顯示訊息
  }
}
 
void loop() {
}

 

作業1請將Micro SD記憶卡讀寫模組與溫度感測器LM35結合應用,每隔1秒將偵測到的溫度儲存在Micro SD記憶卡的同一個檔案內。