Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/Files

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

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Создание и удаление файлов с 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().

  1. /*
  2.   Создание и удаление файлов с SD-карты
  3.  
  4.  Этот пример показывает, как создавать и удалять файлы с SD-карты.
  5.  
  6.  Цепь:
  7.  * SD-карта, подключенная к шине SPI следующим образом:
  8.  ** MOSI – к 11-ому контакту на Arduino
  9.  ** MISO - к 12-ому контакту на Arduino
  10.  ** CLK – к 13-ому контакту на Arduino
  11.  ** CS – к 4-ому контакту
  12.  
  13.  Создан в ноябре 2010 года Дэвидом А. Меллисом (David A. Mellis),
  14.  модифицирован 9 апреля 2012 года Томом Иго (Tom Igoe).
  15.  
  16.  Этот код не защищен авторским правом.
  17.  
  18.  */
  19. #include <SPI.h>
  20. #include <SD.h>
  21.  
  22. File myFile;
  23.  
  24. void setup() {
  25.   // запускаем последовательную коммуникацию и ждем открытия порта:
  26.   Serial.begin(9600);
  27.   while (!Serial) {
  28.     ; // ждем подключения последовательного порта (нужно только для плат со штатным USB-портом)
  29.   }
  30.  
  31.  
  32.   Serial.print("Initializing SD card...");  //  "Инициализация SD-карты..."
  33.  
  34.   if (!SD.begin(4)) {
  35.     Serial.println("initialization failed!");  //  "инициализация не удалась!"
  36.     return;
  37.   }
  38.   Serial.println("initialization done.");  //  "инициализация выполнена."
  39.  
  40.   if (SD.exists("example.txt")) {
  41.     Serial.println("example.txt exists.");  //  "файл example.txt существует."
  42.   } else {
  43.     Serial.println("example.txt doesn't exist.");  //  "файла example.txt не существует."
  44.   }
  45.  
  46.   // открываем новый файл и сразу же его закрываем:
  47.   Serial.println("Creating example.txt...");  //  "Создание example.txt...
  48.   myFile = SD.open("example.txt", FILE_WRITE);
  49.   myFile.close();
  50.  
  51.   // проверяем, существует ли файл:
  52.   if (SD.exists("example.txt")) {
  53.     Serial.println("example.txt exists.");  //  "файл example.txt существует."
  54.   } else {
  55.     Serial.println("example.txt doesn't exist.");  //  "файла example.txt не существует."
  56.   }
  57.  
  58.   // удаляем файл:
  59.   Serial.println("Removing example.txt...");  //  "Удаление example.txt...
  60.   SD.remove("example.txt");
  61.  
  62.   if (SD.exists("example.txt")) {
  63.     Serial.println("example.txt exists.");  //  "файл example.txt существует."
  64.   } else {
  65.     Serial.println("example.txt doesn't exist.");  //  "файла example.txt не существует."
  66.   }
  67. }
  68.  
  69. void loop() {
  70.   // после выполнения setup() ничего не происходит.
  71. }

См.также

  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.

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

  1. Files