とっくんラボ

電子工作、プログラミングで日々の発見や成果をよろづに

ESP32 (ESP-WROOM-32)でSDカードへ読み書きする。(Arduino IDE)

ESP32弄り第三弾は、SDカードへの読み書きです。



SDカードはSPIを使って通信します。

今回はこちらのSDカードモジュールを使用しました。

ピン配置は、


f:id:tocknblog:20170312021909p:plain


このようになっています。

ESP32への配線は以下の通り行いました。

  • DAT2 -> 無し
  • CD/DAT3 -> GPIO5
  • CMD -> GPIO23
  • VDD -> +3.3V
  • CLK -> GPIO18
  • VSS -> GND
  • DAT0 -> GPIO19
  • 以下接続なし

ちなみに、どうにかすれば接続するピンを変えられるみたいです。多分。


また、先に言っておきますが、絶対にいらないSDカードを使用してください。中身が飛ぶことがよくあります。
そして配線は慎重に行ってください。3.3V以上の電圧をかけるとSDカードがぶっ壊れると聞いたことがあります。
そして、SDカードの抜き差しは電源が入っていない状態で行ってください。SDカードを読み込まなくなったりします。
何か起きても私は責任トリマセン…


スケッチは、公式のExampleをそのまま使いました。ここにあります。

これを使えばSDカードの読み書きに関する大抵のことはできると思います。

もしライブラリを追加する方法がわからない~とかでしたら、コメントください。

上手く行けば実行結果はこんな感じになると思います。

SD Card Type: SDSC
SD Card Size: 1875MB
Listing directory: /
  DIR : /SYSTEM~1
  FILE: /YEAH.TXT  SIZE: 8
  FILE: /TEST.TXT  SIZE: 1048576
  FILE: /FOO.TXT  SIZE: 13
  DIR : /MYDIR
  DIR : /TESTDIR
Creating Dir: /mydir
Dir created
Listing directory: /
  DIR : /SYSTEM~1
  FILE: /YEAH.TXT  SIZE: 8
  FILE: /TEST.TXT  SIZE: 1048576
  FILE: /FOO.TXT  SIZE: 13
  DIR : /MYDIR
  DIR : /TESTDIR
Removing Dir: /mydir
rmdir failed
Listing directory: /
  DIR : /SYSTEM~1
Listing directory: /SYSTEM~1
  FILE: /SYSTEM~1/WPSETT~1.DAT  SIZE: 12
  FILE: /SYSTEM~1/INDEXE~1  SIZE: 76
  FILE: /YEAH.TXT  SIZE: 8
  FILE: /TEST.TXT  SIZE: 1048576
  FILE: /FOO.TXT  SIZE: 13
  DIR : /MYDIR
Listing directory: /MYDIR
  DIR : /MYDIR/TEEEEE
Listing directory: /MYDIR/TEEEEE
  DIR : /MYDIR/TEEEEE/SDF
  DIR : /TESTDIR
Listing directory: /TESTDIR
Writing file: /hello.txt
File written
Appending to file: /hello.txt
Message appended
Reading file: /hello.txt
Read from file: Hello World!
Deleting file: /foo.txt
File deleted
Renaming file /hello.txt to /foo.txt
File renamed
Reading file: /foo.txt
Read from file: Hello World!
1048576 bytes read for 3219 ms
1048576 bytes written for 5442 ms


SDカードのルートディレクトリにFOO.TXT、TEST.TXTというファイルが生成され、FOO.TXTの中にHello World!と書いてあれば成功だと思います。

以上!