2012年8月7日火曜日

ArduinoとGR-SAKURA (micro)SD-CARD編1

 シリアル、analogRead, analogWrite, Ethernet と来て、次は(micro)SD-CARDです。Arduino の Ethernet Shield はmicroSDカードスロットもついています。GR-SAKURA や RaXino では本体裏側に標準でmicroSDカードスロットがついています。



 動かしたソース(スケッチ)は次のようなものです。

#define RXDUINO

#ifdef RXDUINO
#include <rxduino.h>
#include <sdmmc.h>
#else
#include <Arduino.h>
#include <SD.h>
#endif

#ifdef RXDUINO
SDMMC SD;
#endif

void setup()
{
    // シリアルポートを9600bpsで開始。
    Serial.begin(9600);
    // 受信バッファにデータが入るまで待機。
    while (Serial.available() == 0);        
    Serial.println("Initializing...");
    // 一旦、受信バッファにデータがあれば、
    if (Serial.available() > 0) {
        // 読み込んで、廃棄。
        char c = Serial.read();
    }
    
    // SDカード(利用機能)の初期化。
    Serial.println("Initializing SD card function...");
#ifdef RXDUINO
    SD.begin();
#else
    // Arudion + Ethernet SD Shield では、SPIの
    // SDカードのCEは4pinになるが、SPIを使う場合は、
    // SS(10pin)を常にOUTPUTモードにしておく必要がある。
    pinMode(10, OUTPUT);
    SD.begin(4);
#endif
    Serial.println("SD initializatoin done.");
    
    File file = SD.open("test.txt", FILE_WRITE);
    
    file.println("Hello, GR-SAKURA!!");
    
    file.close();
    
    Serial.println("finished.");
}

void loop()
{
}

Arduino + (Ethernet &)SD Shield でも GR-SAKURA でも microSD-CARDのルート直下に"Test.txt"ファイルが作成され、ファイルの中身が"Hello, GR-SAKURA!!"となっていることが確認できました。