Webで探せばすぐ見つかるSDカードスロットソケットリーダーモジュール。Arduino用は接続するだけで動作するスグレモノです。ここでは、それらとCPUとの接続方法について説明します。
SDカード、マイクロSDカード用によく売られているソケットは以下のようなものです。
このようなSPI対応のソケット製品はヘッダーピンに接続端子の説明がプリントされていたり回路図が添付されています。
対応する信号をつなぐのみでOKです。ちなみに、ESP32の場合、VSPIとHSPIがあるのですが、基本的に下記の様に繋げばOKです。ESP32の番号はGPIOの番号です。
SPI対応と書いていないソケット例えば、
は、説明書にピン配置があります。
このような場合、下記の様につなげはSPIで制御出来ます。これ以外のピンは使用しません。
接続を間違えなければ必ず動作します。これらの素子は非常に安くなっています。
実際の回路とサンプルプログラム
マイクロSDカードソケットを使って読み書きして見ます。
GPIO12,13,14,15を使い下記の様に配線しました。GPIO12,15は起動時にLow,Highとする必要が有るのでSDカードの入力端子に配線しています
ESP32 | SDカード |
12 | CS |
13 | SCK |
14 | MISO |
15 | MOSI |
また、このSDカードは入力電圧5Vで設計されています。今回はESP32から電源を取るので、SDカードのレギュレーター2,3端子を基板から浮かせて基板のパッド同士を直接繋いでいます。
下記のコードはSDカードに ”This is test. This is test. “と書かれたtest1.txtファイルを作成します。
u_SD.ino
#include "FS.h"
#include <SD.h>
#define sd_sck 13
#define sd_mosi 15
#define sd_ss 12
#define sd_miso 14
void setup()
{
File fo;
SPI.begin(sd_sck, sd_miso, sd_mosi, sd_ss);
SD.begin(sd_ss);
fo = SD.open("/test1.txt", FILE_WRITE);
fo.println("This is test.\nThis is test.");
fo.close();
SD.end();
}
void loop()
{
}