Arduino(1)
    Arduino Uno でSDカードを読み書き


 Arduino Uno でマイクロSDをアクセスして、書き込み、読み込み、サイズ調査など、一連の動作を試すサンプルプログラムを試しました。


●Arduino Uno でマイクロSDをアクセスした構成

 次の写真は、Arduino Uno でマイクロSDをアクセスした構成です。
 いろいろ部品が付いているのですが、今回は吹き出しの、ArduinoとマイクロSDカードです。
 
 Arduinoマイコン基板に、手作りのシールドで、信号レベルを3.3Vに変換しています。






●Arduino Uno でマイクロSDを読み書きの動作確認

 プログラムは、以前記録した「がじぇるね(3) GR-SAKURAでSDカードを読み書き」をArduino Uno用 に書き換えました。
 動作状態もシリアル通信で、パソコンのTera termを使ってモニタするのも同じです。

 Arduinoが起動すると、"setup() Kanryou"を表示します。
 そして、マイクロSDを正常に開く事ができれば、"Success to access SdCard"を表示して、"Hello, my SdCard"をマイクロSDに追加書き込みをします。
 次に、マイクロSDから読み出し、内容とデータ数の表示をして次の動作の準備を表示します。

 右の写真は、4回動作させた後の、マイクロSDをパソコンで読み出した内容です。正常に書き込みができています。

 





●プログラム

  プログラムを次に示します。


//サンプルプログラム Arduino_SdSerial

//ArduinoボードにマイクロSDを追加して、書き込み、読み込み、サイズ調査、削除など、一連の動作を試すサンプルです。

#include <SD.h>

void setup(){
pinMode(10, OUTPUT); //
Serial.begin(38400); //
SD.begin(5);

delay(30000);
Serial.println("setup() Kanryou");
}

void loop(){
File myFile = SD.open("sample.txt", FILE_WRITE);

if(myFile == false){
Serial.println("Fail to access SdCard");
// digitalWrite(PIN_LED0, 0);
while(1){
}
}

//Write
Serial.println("Success to access SdCard");
myFile.println("Hello, my SdCard");
myFile.close();

//Read
myFile = SD.open("sample.txt", FILE_READ);
while(myFile.available()){
Serial.print((char)myFile.read());
delay(50);
}

//Size
Serial.print(myFile.size());
Serial.println();
myFile.close();
// digitalWrite(PIN_LED0, 0);

Serial.println("Remove the file? y/n");
while(!Serial.available());
char c = Serial.read();

//Remove
if(c == 'y'){
SD.remove("sample.txt");
Serial.println("sample.txt has been removed");
}
delay(400);
}



ホームへ戻る