Arduino:Примеры/List Files: различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">») |
Нет описания правки |
||
Строка 31: | Строка 31: | ||
Функция '''printDirectory()''' сканирует '''SD'''-карту на предмет файлов и папок, а затем показывает их через монитор порта. Для файлов показывается размер. | Функция '''printDirectory()''' сканирует '''SD'''-карту на предмет файлов и папок, а затем показывает их через монитор порта. Для файлов показывается размер. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Вывод списка файлов | Вывод списка файлов |
Версия от 18:19, 14 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Извлечение списка файлов SD-карты и его отправка на компьютер[1]
Этот пример показывает, как вывести на компьютер список файлов, имеющихся на SD-карте. Более подробно о библиотеке SD можно прочесть тут.
Необходимое оборудование
- Плата Arduino или Genuino
- Модуль Arduino Ethernet Shield (или другая плата с SD-слотом)
- Отформатированная SD-карта
Цепь
Плата Arduino или Genuino должна быть подключена к Ethernet-модулю, а также через USB-кабель – к компьютеру.
Схема
Код
Скетч ниже настроен для использования с Ethernet-модулем, который имеет встроенный SD-слот. В блоке setup() вызываем функцию SD.begin(), а затем в качестве CS-контакта делаем 4-ый контакт. Однако если вместо модуля Arduino Ethernet Shield будет использоваться другой модуль, вам нужно будет задействовать другой контакт.
В главном блоке loop() ничего не выполняется, потому что функция, которая выводит список файлов, находящихся в директории «/» SD-карты, вызывается в блоке setup(). Другими словами, нам нужно просто увидеть, как это работает, и одного раза для этого достаточно.
Функция printDirectory() сканирует SD-карту на предмет файлов и папок, а затем показывает их через монитор порта. Для файлов показывается размер.
/*
Вывод списка файлов
Этот пример показывает, как отобразить на компьютере список файлов,
расположенных на SD-карте
Цепь:
* SD-карта, подключенная к шине SPI следующим образом:
** MOSI – к 11-ому контакту на Arduino
** MISO - к 12-ому контакту на Arduino
** CLK – к 13-ому контакту на Arduino
** CS – к 4-ому контакту
Создан в ноябре 2010 года Дэвидом А. Меллисом (David A. Mellis),
модифицирован 9 апреля 2012 года Томом Иго (Tom Igoe),
еще раз модифицирован 2 февраля 2014 года Скоттом Фитцджеральдом
(Scott Fitzgerald).
Этот код не защищен авторским правом.
*/
#include <SPI.h>
#include <SD.h>
File root;
void setup() {
// запускаем последовательную коммуникацию и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем подключения последовательного порта (нужно только для плат со штатным USB-портом)
}
Serial.print("Initializing SD card..."); // "Инициализация SD-карты..."
if (!SD.begin(4)) {
Serial.println("initialization failed!"); // "инициализация не удалась!"
return;
}
Serial.println("initialization done."); // "инициализация выполнена."
root = SD.open("/");
printDirectory(root, 0);
Serial.println("done!"); // "готово!"
}
void loop() {
// после выполнения setup() ничего не происходит
}
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("\t\t");
Serial.println(entry.size(), DEC);
}
entry.close();
}
}
См.также
- SD library - Your reference for the SD Card library.
- Notes on using SD cards – What you need to know when you use SD cards
- CardInfo - Get info about your SD card.
- Datalogger - How to log data from three analog sensors to an SD card.
- DumpFile - How to read a file from the SD card.
- Files - How to create and destroy an SD card file.
- ReadWrite - How to read and write data to and from an SD card