Micro SD記憶卡讀寫模組

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

/* 程式名稱:每隔1秒將偵測到的溫度儲存在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);                               // 設定與電腦序列埠監控視窗的速率相同
  pinMode(A0,INPUT);  // 設定A0腳位為輸入功能
  if (!SD.begin(SD_CS_PIN)) {               // 判斷SD模組初始化是否成功
    Serial.println("initialization failed!");  // 序列埠監控視窗顯示初始化失敗
    return;
  }
  Serial.println("initialization done.");               // 序列埠監控視窗顯示初始化完成
}
 
void loop() {
  float temperature;
  myFile = SD.open("test.txt", FILE_WRITE);  // ******** 打開test.txt檔案,模式為寫入,如果檔案不存在會自動建立,不能用中文檔名
  if (myFile) {                                                   // 如果開啟檔案成功,就進行以下的寫入文字工作
    Serial.print("Writing to test.txt...");              // 序列埠監控視窗顯示寫入至test.txt...
    temperature =analogRead(A0)* 0.48828125;
    myFile.println(temperature);     // ******** 儲存一行文字到test.txt檔案中,請自行修改文字內容,中文字也可以
    Serial.println(temperature);   // 讀取類比訊號腳位A0的值*0.48828125換算成為溫度值
  }
  else {                                                              // 如果無法開啟檔案,就在監控視窗顯示訊息
    Serial.println("error opening test.txt");          // 序列埠監控視窗顯示"開啟檔案失敗"
  }
  myFile.close();                                        // 關閉檔案
  delay(1000);
}