Arduino:
Чтение текстового файла
Как это сделать:
#include <SPI.h>
#include <SD.h>
File myFile;
void setup() {
Serial.begin(9600);
while (!Serial) {
; // ждем подключения к последовательному порту.
}
if (!SD.begin(4)) {
Serial.println("Инициализация не удалась!");
return;
}
myFile = SD.open("example.txt");
if (myFile) {
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
} else {
Serial.println("Ошибка при открытии example.txt");
}
}
void loop() {
// после настройки ничего не происходит
}
Ожидаемый вывод в мониторе последовательного порта будет содержать текст из example.txt
, если все правильно подключено и инициализировано.
Подробнее
Исторически микроконтроллеры вроде Arduino имели очень мало памяти и не могли работать с файлами. Но с появлением модулей SD-карты и увеличения объема встроенной памяти появилась возможность работы с файловым вводом/выводом. Существуют различные библиотеки для этих целей, такие как <SD.h>
. Она создана на основе <SPI.h>
для коммуникации с SD-картой через SPI шину.
В качестве альтернативы можно использовать EEPROM (нетранзитивную память) для малых данных или даже подключить Arduino к сети и извлекать файлы с сервера. Библиотека <SD.h>
является оберткой для более низкоуровневых функций, управляя файловым менеджментом, чтением и записью аналогично стандартным потокам C++.
Реализация на Arduino включает инициализацию модуля SD-карты, открытие файла, его чтение до тех пор, пока не закончится содержимое, а затем закрытие для освобождения ресурсов. Очень важно обрабатывать ошибки, такие как неудачная инициализация или неудачное открытие файла, поскольку они являются обычными причинами головной боли при работе с файлами.
Смотрите также
- Официальная справка по библиотеке SD: https://www.arduino.cc/en/Reference/SD
- Библиотека SPI для последовательной связи Arduino: https://www.arduino.cc/en/reference/SPI
- Руководство по использованию EEPROM с Arduino для задач хранения меньших данных: https://www.arduino.cc/en/Tutorial/LibraryExamples/EEPROMReadWrite