Arduino Uno SD卡模組 (二)讀取檔案
實驗效果
SD 卡根目錄裡有個文字檔案 LingShunLAB.txt 實驗就是要開啟它並且讀取裡面的資料 裡面的內容如下: hello world by LingShunLAB 在串列埠中顯示文字內容問題與注意
SDFat 庫並不支援長檔名字,所以在程式中有要讀取LingShunLAB.txt 這麼長的檔名的時候,正確的開啟方式是
LINGSH~1.TXT
BOM表
Arduiino Uno *1
SD卡模組 *1
SD卡 *1
調線若干
接線
Arduino Uno <-----> Sd Card 模組
GND <-----> GND
5V <-----> +5
CS <-----> Pin 4
MOSI <-----> Pin 11
SCK <-----> Pin 13
MISO <-----> Pin 12
詳細請參照 文章 Arduino Uno SD卡模組 (一)獲取SDcard的資訊開源程式
這個實驗還是需要下載庫
具體如何操作,再次說一下,下載解壓到Arduino IDE的安裝路徑裡的庫資料夾libraries
庫裡提供了很多SD卡模組示例程式,可以多多參考
//載入SPI庫和SD庫 #include <SPI.h> #include <SD.h> //宣告檔案物件 File myFile; void setup() { Serial.begin(9600); //設定波特率 while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only //等待串列埠連線。 僅適用於本機USB埠 } Serial.print("Initializing SD card...");//正在初始化 //如果返回4則初始化失敗 if (!SD.begin(4)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done.");//初始化結束 myFile = SD.open("LINGSH~1.TXT");//開啟指定檔案 if (myFile) { Serial.println("LingShunLAB.txt:");//串列埠輸出test。txt Serial.println("↓↓↓↓");//串列埠輸出↓↓↓↓ // 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() { }
程式實現思路解讀
1
//載入SPI庫和SD庫
#include <SPI.h>
#include <SD.h>
2
//宣告檔案物件
File myFile;
3
myFile = SD.open("LINGSH~1.TXT");//開啟指定檔案
4
if (myFile) {
Serial.println("LingShunLAB.txt:");//串列埠輸出test。txt
Serial.println("↓↓↓↓");//串列埠輸出↓↓↓↓
// 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");
}