Arduino:Примеры/Files

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Создание и удаление файлов с SD-карты[1]

Этот пример показывает, как при помощи библиотеки SD создать и удалить файл с SD-карты. Более подробно о библиотеке SD можно прочесть тут.

Необходимое оборудование

  • Плата Arduino или Genuino
  • Модуль Arduino Ethernet Shield (или другая плата с SD-слотом)
  • Отформатированная SD-карта

Цепь

EthernetShield Fritz.png

Плата Arduino или Genuino должна быть подключена к Ethernet-модулю, а также через USB-кабель – к компьютеру.

Схема

Ethernet Shield Sch.png

Код

Скетч ниже настроен для использования с Ethernet-модулем, который имеет встроенный SD-слот. В блоке setup() вызываем функцию SD.begin(), а затем в качестве CS-контакта делаем 4-ый контакт. Однако если вместо модуля Arduino Ethernet Shield будет использоваться другой модуль, вам нужно будет задействовать другой контакт.

В блоке setup() при помощи функции SD.open() открываем (то есть, по сути, создаем) новый файл под названием example.txt. Параметр FILE_WRITE нужен, чтобы разрешить для этого файла считывание и запись (начиная с конца). В этом примере, однако, сразу закрываем этот файл при помощи функции myFile.close().

Теперь при помощи функции SD.exists() проверяем, существует ли файл, а затем удаляем его с SD-карты функцией SD.remove().

/*
  Создание и удаление файлов с SD-карты

 Этот пример показывает, как создавать и удалять файлы с SD-карты.

 Цепь:
 * SD-карта, подключенная к шине SPI следующим образом: 
 ** MOSI – к 11-ому контакту на Arduino 
 ** MISO - к 12-ому контакту на Arduino 
 ** CLK – к 13-ому контакту на Arduino 
 ** CS – к 4-ому контакту

 Создан в ноябре 2010 года Дэвидом А. Меллисом (David A. Mellis),
 модифицирован 9 апреля 2012 года Томом Иго (Tom Igoe).
 
 Этот код не защищен авторским правом.

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

File myFile;

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.");  //  "инициализация выполнена."

  if (SD.exists("example.txt")) {
    Serial.println("example.txt exists.");  //  "файл example.txt существует."
  } else {
    Serial.println("example.txt doesn't exist.");  //  "файла example.txt не существует."
  }

  // открываем новый файл и сразу же его закрываем:
  Serial.println("Creating example.txt...");  //  "Создание example.txt...
  myFile = SD.open("example.txt", FILE_WRITE);
  myFile.close();

  // проверяем, существует ли файл:
  if (SD.exists("example.txt")) {
    Serial.println("example.txt exists.");  //  "файл example.txt существует."
  } else {
    Serial.println("example.txt doesn't exist.");  //  "файла example.txt не существует."
  }

  // удаляем файл:
  Serial.println("Removing example.txt...");  //  "Удаление example.txt...
  SD.remove("example.txt");

  if (SD.exists("example.txt")) {
    Serial.println("example.txt exists.");  //  "файл example.txt существует."
  } else {
    Serial.println("example.txt doesn't exist.");  //  "файла example.txt не существует."
  }
}

void loop() {
  // после выполнения setup() ничего не происходит.
}

См.также

  1. SD library - Your reference for the SD Card library.
  2. Notes on using SD cards – What you need to know when you use SD cards
  3. CardInfo - Get info about your SD card.
  4. Datalogger - How to log data from three analog sensors to an SD card.
  5. DumpFile - How to read a file from the SD card.
  6. Listfiles - How print out the files in a directory on a SD card.
  7. ReadWrite - How to read and write data to and from an SD card.

Внешние ссылки