Arduino 備忘録(1)  SDカードで読み出し編

急遽マトリクスLEDを表示させたくなったので、そのための備忘録的な感じでArduino周辺機器の使い方についてまとめていこうと思います。

 

SDカード:その辺に転がってた2GBのやつ

マイコンボード:Arduino Uno

フォーマット:FAT16


簡単な説明
通信方法:SPI通信
回路図

Arduino SDカード
       
4 2
11 3
3.3 4
13 5
GND 6
12 7


SDカードの信号線(2,3,5,7)はすべてArduinoは5VでSDカード側は3.3Vに変換する必要がある(そうしないと壊れる)


 

#include <SPI.h>//SPI通信用のライブラリ
#include <SD.h>//SDカード読み出し用のライブラリ

File myFile;//インスタンス生成

void setup() {
  Serial.begin(57600);//ボーレート設定
  while (!Serial) {//シリアルポートが開くまで無限ループ
  }

  if (!SD.begin(4)) {//引数にSSピンを指定。接続されるとtrueを返す
    while (1);
  }
  myFile = SD.open("abc.txt");//abc.txtというフォルダを開く(読み取りモード)
  if (myFile) { //ファイルが開けたらtrueを返す
    while (myFile.available()) {//myFile.available()はデータがなくなるとfalseを返す
      Serial.write(myFile.read());//でバッファにあるデータを読み出す
    }
    myFile.close();//読み出しが終わると閉じる
  } 
}
void loop(){
}

動作:リセットボタンを押すとファイルの内容が読み出されて、おしまい

プログラムの内容はコメントに書きましたが、自分用に書いたので分かりにくかったらすみません。

実行してみると、どうやらファイル名が長いと読み込まれないらしいので色々調べてみると
「8.3形式」という手法で書かないとダメみたいですね。