Чтение текстового файла

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-карты, открытие файла, его чтение до тех пор, пока не закончится содержимое, а затем закрытие для освобождения ресурсов. Очень важно обрабатывать ошибки, такие как неудачная инициализация или неудачное открытие файла, поскольку они являются обычными причинами головной боли при работе с файлами.

Смотрите также