Micro SD шилд для WeMos D1 mini — это модуль со слотом для подключения Micro SD-карт, предназначенный для установки на платы WeMos mini. Модуль позволяет работать с Micro SD-картами по шине SPI, можно не только определять и менять файловую структуру, читать, удалять, редактировать, записывать файлы и каталоги, но и работать с Micro SD-картами на низком уровне.
На плате установлен слот для подключения Micro SD-карт (Micro Secure Digital). Слот подключен к выводам шины SPI: D5 (CLK), D6 (MISO), D7 (MOSI), D8 (CS). Благодаря тому что SD-карты могут работать с шиной SPI, Вы получаете полный доступ ко всем функциям реализованным в SD-картах и можете с ними делать всё, что и при обычном подключении SD-карт к компьютеру. Для работы с SD картами можно воспользоваться библиотекой SD, которая входит как в стандартный набор Arduino IDE, а так и в сборку «esp8266 by ESP8266 Community» которую можно установить при настройке Arduino IDE для работы с платами WeMos.
Особенности шилда:
- Используемые выводы: D5 (CLK), D6 (MISO), D7 (MOSI), D8 (CS), 3V3, GND
- Шина передачи данных: SPI
- Тип карт памяти: Micro SD
Подключение:
- Перед установкой шилда, к его выводам нужно припаять разъемы идущие с ним в комплекте.
- Все Shield WeMos устанавливаются на плату WEMOS D1 mini без использования проводов.
- На всех платах WeMos имеется вырез возле вывода 3V3. При установке Shield вырезы всех плат должны находиться с одной и той же стороны (друг над другом).
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <SPI.h> #include <SD.h> File root; void setup(){ Serial.begin(74880); // инициирует передачу данных в монитор // последовательного порта на скорости 74880 бод. Данная скорость // выбрана не случайно, именно на этой скорости микроконтроллер // ESP8266 отправляет в UART отладочную информацию при старте. while(!Serial){} // Ждём инициализации работы с шиной UART Serial.print("Initializing SD card..."); if(!SD.begin(4)){Serial.println("initialization failed!"); return;} Serial.println("initialization done."); root = SD.open("/"); printDirectory(root, 0); Serial.println("done!"); } void loop(){} void printDirectory(File dir, int numTabs){ while(true) { File entry = dir.openNextFile(); if(!entry){break;} // Если файлов больше нет, то прекращаем выполнение функции for(uint8_t i=0; i<numTabs; i++){Serial.print('t');} Serial.print(entry.name()); if(entry.isDirectory()){Serial.println("/"); printDirectory(entry, numTabs+1); }else{Serial.print("tt"); Serial.println(entry.size(), DEC);} // Файлы имеют размер, папки нет entry.close(); } } |