Подключение модуля microSD к ESP32

Карта памяти по SPI

Модуль microSD к ESP32 подключается по SPI: SCK (GPIO18), MISO (GPIO19), MOSI (GPIO23), CS (например GPIO5). Для самой карты нужно 3,3 В.

Схема подключения модуля microSD к ESP32

Модуль microSDESP32
CSGPIO5
MISOGPIO19
MOSIGPIO23
SCKGPIO18
VCC3V3
GNDGND

Схема из примера «Карта SD: чтение и запись файлов».

Карта SD: чтение и запись файлов

Открыть пример целиком

Выводы Модуль microSD

ВыводНазначение
CSвыбор карты
MISOданные от карты
MOSIданные к карте
SCKтактовый сигнал
VCCпитание
GNDобщий провод

Код для ESP32

#include <SD.h>
#include <SPI.h>

const int CS = 5;

void setup() {
  Serial.begin(115200);
  delay(200);

  if (!SD.begin(CS)) {
    Serial.println("карта не найдена: проверьте CS, MISO и питание");
    return;
  }
  Serial.printf("карта на месте, размер %llu МБ\n", SD.cardSize() / (1024 * 1024));

  // Что уже лежит на карте.
  File root = SD.open("/");
  for (File f = root.openNextFile(); f; f = root.openNextFile()) {
    Serial.printf("  %s  %u байт\n", f.name(), f.size());
    f.close();
  }

  // Читаем готовый файл.
  File readme = SD.open("/README.TXT");
  if (readme) {
    while (readme.available()) Serial.write(readme.read());
    readme.close();
  }

  // И пишем свой.
  File log = SD.open("/LOG.TXT", FILE_WRITE);
  if (log) {
    log.println("первая запись с платы");
    log.close();
    Serial.println("записано в /LOG.TXT");
  }
}

void loop() {
  delay(1000);
}

Скетч можно править и запускать в симуляторе без платы и установки среды.

Что учесть на ESP32

Частые ошибки при подключении к ESP32

Другие детали для ESP32