Arduino 備忘録(1) SDカードで読み出し編
急遽マトリクスLEDを表示させたくなったので、そのための備忘録的な感じでArduino周辺機器の使い方についてまとめていこうと思います。
SDカード:その辺に転がってた2GBのやつ
フォーマット: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形式」という手法で書かないとダメみたいですね。