ESP32 (ESP-WROOM-32)でSDカードへ読み書きする。(Arduino IDE)
ESP32弄り第三弾は、SDカードへの読み書きです。
SDカードはSPIを使って通信します。
今回はこちらのSDカードモジュールを使用しました。
ピン配置は、
このようになっています。
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!と書いてあれば成功だと思います。
以上!