Відмінності між версіями «Модуль SD-карти»

 
(Не показано 12 проміжних версій цього користувача)
Рядок 1: Рядок 1:
Модуль дозволяє зберігати, читати і записувати на SD карту дані необхідні для роботи приладу на основі мікроконтролера. Застосування пристрою актуально при зберіганні файлів від десятків мегабайт до двох гігабайт. На платі розміщений контейнер SD карти, стабілізатор живлення карти, вилка з'єднувача ліній інтерфейсу і живлення. Якщо потрібно працювати з звуковими, відео або іншими об'ємними даними, наприклад, вести журнал реєстрації подій, даних датчиків або зберігати інформацію веб-сервера, то модуль SD карти пам'яті для Arduino дасть можливість застосувати SD карту для цих цілей. За допомогою модуля можна вивчити особливості роботи SD карти.
+
Модуль дозволяє зберігати, читати і записувати на SD карту дані необхідні для роботи приладу на основі мікроконтролера. Застосування пристрою актуально при зберіганні файлів від десятків мегабайт до двох гігабайт. На платі розміщений контейнер SD карти, стабілізатор живлення карти, вилка з'єднувача ліній інтерфейсу і живлення. Якщо потрібно працювати з звуковими, відео або іншими об'ємними даними, наприклад, вести журнал реєстрації подій, даних датчиків або зберігати інформацію веб-сервера, то модуль SD карти пам'яті для Arduino дасть можливість застосувати SD карту для цих цілей. За допомогою модуля можна вивчити особливості роботи SD карти.[[Файл:SD-Card-Module- 11.jpg|200 px| Модуль SD-Card вигляд спереду|thumb]][[Файл:SD-Card-Module- 10.jpg|200 px|Модуль SD-Card вигляд ззаду|thumb]]
 +
 
 +
 
 
==Загальні відомості==
 
==Загальні відомості==
 
Спеціальний модуль для підключення Micro SD (TF) карт пам'яті до Arduino:
 
Спеціальний модуль для підключення Micro SD (TF) карт пам'яті до Arduino:
Рядок 9: Рядок 11:
 
• Бібліотека для роботи з даними адаптером входить в стандартний набір Arduino IDE. Бібліотека SD дозволяє: читати і записувати дані, створювати і видаляти файли, отримувати інформацію про файлах і SD-карті, працювати з SD-картою на низькому рівні.
 
• Бібліотека для роботи з даними адаптером входить в стандартний набір Arduino IDE. Бібліотека SD дозволяє: читати і записувати дані, створювати і видаляти файли, отримувати інформацію про файлах і SD-карті, працювати з SD-картою на низькому рівні.
  
• Адаптер підключається до апаратних виводів шини SPI (4 виведення: CS, SCK, MOSI, MISO). Назва виводів зазначено на адаптері, їх потрібно підключити до однойменних виводів плат Arduino.
+
• Адаптер підключається до апаратних виводів шини SPI (4 виведення: CS, SCK, MOSI, MISO). Назва виводів зазначено на адаптері, їх потрібно підключити до однойменних виводів плат Arduino.[[Файл:1130.jpg|200 px|Модуль SD-Card|thumb]]
 
 
 
==Характеристика модуля==
 
==Характеристика модуля==
  
Рядок 26: Рядок 27:
  
 
- Вага: 5 г
 
- Вага: 5 г
 
+
[[Файл:SD Card Module 01.jpg|center|512 px|Схема електрична принципова модуля|thumb]]
 
==Підключення модуля до Arduino==
 
==Підключення модуля до Arduino==
  
 
Плата розширення значно полегшує підключення. На ній встановлено регулятор, який перетворює напругу в 3.3 В (I2C). Є регулятор рівня, який перетворює живення логіки з 3.3-5 В в 3.3 В. Це означає, що плату розширення можна використовувати з мікроконтролерами 3.3 В і 5 В.
 
Плата розширення значно полегшує підключення. На ній встановлено регулятор, який перетворює напругу в 3.3 В (I2C). Є регулятор рівня, який перетворює живення логіки з 3.3-5 В в 3.3 В. Це означає, що плату розширення можна використовувати з мікроконтролерами 3.3 В і 5 В.
  
Найкраще підключати SD карту до пінам hardware SPI, тому-що при її використанні відбувається передача великої кількості даних. На "класичних платах Arduino (Duemilanove / Diecimila / Uno) це цифровий пін 13 (SCK), 12 (MISO) і 11 (MOSI). Також знадобиться четвертий пін для ланцюга 'chip / slave select' (SS). Традиційно використовують 10 пін, але можна і інший. Якщо в наявності є плата Arduino Mega, піни будуть відрізнятися! В цьому випадку використовуйте 50 (MISO), 51 (MOSI), 52 (SCK) і 53 (SS) для ланцюга CS. Знову таки, ви можете змінити пін SS (10 або 53).  
+
Найкраще підключати SD карту до пінам hardware SPI, тому-що при її використанні відбувається передача великої кількості даних. На "класичних платах Arduino (Duemilanove / Diecimila / Uno) це цифровий пін 13 (SCK), 12 (MISO) і 11 (MOSI). Також знадобиться четвертий пін для ланцюга 'chip / slave select' (SS). Традиційно використовують 10 пін, але можна і інший. Якщо в наявності є плата Arduino Mega, піни будуть відрізнятися!  
 
+
[[Файл:Shema podkluchenia sd slot k arduino.png|center|1024 px|Схема підключення модуля|thumb]]
      Таблиця підключення SD модуля і Arduino
 
{| border=1
 
|'''Адаптер карт MicroSD'''
 
|'''Arduino Uno'''
 
|-
 
|CS (Chip Select)
 
|10
 
|-
 
|SCK (Serial ClocK)
 
|13
 
|-
 
|MOSI (Master Out Slave In)
 
|11
 
|-
 
|MISO (Master In Slave Out)
 
|12
 
|-
 
|Vcc
 
|5V
 
|-
 
|GND
 
|GND
 
|}
 
Є ще один коннектор - CD - це пін для ініціалізації SD карти. Він замикається на землю, коли карта встановлена. Якщо ви хочете його задіяти, підключіть підтягаючий резистор (близько 10 кОм) і далі до іншого піну.
 
 
 
 
==Програмування==
 
==Програмування==
  
 
У програмний пакет Arduino IDE входить спеціальна бібліотека SD. Бібліотека підтримує на стандартних картах і SDHC файлові системи FAT16 і FAT32. Працює з іменами файлів довжиною 8 символів і розширенням імені 3 символу. Починаючи з версії 1.0, бібліотека SD підтримує відкриття декількох файлів. Програмне забезпечення Arduino містить процедури дозволяють працювати з картою SD і інтерфейсом SPI.
 
У програмний пакет Arduino IDE входить спеціальна бібліотека SD. Бібліотека підтримує на стандартних картах і SDHC файлові системи FAT16 і FAT32. Працює з іменами файлів довжиною 8 символів і розширенням імені 3 символу. Починаючи з версії 1.0, бібліотека SD підтримує відкриття декількох файлів. Програмне забезпечення Arduino містить процедури дозволяють працювати з картою SD і інтерфейсом SPI.
 
+
[[Файл:SD Card Module 12121212128.jpg|center|256 px]]
 
===Базові функції, для роботи з файлами SD-карти===
 
===Базові функції, для роботи з файлами SD-карти===
  
        // Створення змінної myFile класу File бібліотеки SD, яка буде служити "покажчиком" на файл
+
// Створення змінної myFile класу File бібліотеки SD, яка буде служити "покажчиком" на файл
  File myFile; // змінна буде потрібно для відкриття і закриття файлу, а так само для роботи з відкритим файлом
+
File myFile; // змінна буде потрібно для відкриття і закриття файлу, а так само для роботи з відкритим файлом
  
        // Відкриття файлу "iarduino.txt" для читання і запису, починаючи з кінця файлу:
+
// Відкриття файлу "iarduino.txt" для читання і запису, починаючи з кінця файлу:
  myFile = SD.open ( "iarduino.txt", FILE_WRITE); // якщо файлу з ім'ям "iarduino.txt" - немає, то він буде створений.
+
myFile = SD.open ( "iarduino.txt", FILE_WRITE); // якщо файлу з ім'ям "iarduino.txt" - немає, то він буде створений.
  
        // Запис рядка в файл> "iarduino.txt":
+
// Запис рядка в файл> "iarduino.txt":
  myFile.print ( "початок рядка,"); // запис рядка у відкритий файл "iarduino.txt", без додавання символів переходу на новий рядок.
+
myFile.print ( "початок рядка,"); // запис рядка у відкритий файл "iarduino.txt", без додавання символів переходу на новий рядок.
  myFile.println ( "продовження рядка."); // запис рядка у відкритий файл "iarduino.txt", з додаванням символів переходу на новий рядок.
+
myFile.println ( "продовження рядка."); // запис рядка у відкритий файл "iarduino.txt", з додаванням символів переходу на новий рядок.
 +
 
 +
// Закриття файлу "iarduino.txt":
 +
myFile.close ();
  
        // Закриття файлу "iarduino.txt":
+
// Відкриття файлу "iarduino.txt" для читання, починаючи з початку файлу:
  myFile.close ();
+
myFile = SD.open ( "iarduino.txt"); // якщо файлу з ім'ям "iarduino.txt" - немає, то він не буде відкритий.
  
        // Відкриття файлу "iarduino.txt" для читання, починаючи з початку файлу:
+
// Читання рядків з файлу "iarduino.txt":
  myFile = SD.open ( "iarduino.txt"); // якщо файлу з ім'ям "iarduino.txt" - немає, то він не буде відкритий.
+
while (myFile.available ()) // якщо є дані для читання з відкритого файлу "iarduino.txt"
 +
{
 +
  Serial.write (myFile.read ()); // читаємо черговий байт з файлу і виводимо його в послідовний порт.
 +
}
  
        // Читання рядків з файлу "iarduino.txt":
+
// Видалення файлу "iarduino.txt":
  while (myFile.available ())
+
SD.remove ( "iarduino.txt"); // функція повертає результат видалення true / false
  {// якщо є дані для читання з відкритого файлу "iarduino.txt"
 
      Serial.write (myFile.read ()); // читаємо черговий байт з файлу і виводимо його в послідовний порт.
 
  }
 
  
        // Видалення файлу "iarduino.txt":
+
// Створення файлу "iarduino.txt":
  SD.remove ( "iarduino.txt"); // функція повертає результат видалення true / false
+
myFile = SD.open ( "iarduino.txt", FILE_WRITE); // якщо файлу з ім'ям "iarduino.txt" - немає, то він буде створений.
 +
myFile.close (); // закриваємо файл "iarduino.txt" без запису даних.
  
        // Створення файлу "iarduino.txt":
+
// Перевірка існування файлу "iarduino.txt":
  myFile = SD.open ( "iarduino.txt", FILE_WRITE); // якщо файлу з ім'ям "iarduino.txt" - немає, то він буде створений.
+
if (SD.exists ( "example.txt")) {...;} // умова буде виконана, якщо файл "iarduino.txt" існує на SD-карті
  myFile.close (); // закриваємо файл "iarduino.txt" без запису даних.
 
  
        // Перевірка існування файлу "iarduino.txt":
+
// Перевірка відкриття файлу "iarduino.txt":
  if (SD.exists ( "example.txt")) {...;} // умова буде виконана, якщо файл "iarduino.txt" існує на SD-карті
+
if (myFile) {...;} // умова буде виконана, якщо файл був успішно відкритий: myFile = SD.open (...)
  
        // Перевірка відкриття файлу "iarduino.txt":
+
// Створення каталогу "my_Dir"
  if (myFile) {...;} // умова буде виконана, якщо файл був успішно відкритий: myFile = SD.open (...)
+
SD.mkdir ( "my_Dir"); // функція повертає результат створення true / false. Якщо вказати "first_Dir / my_Dir", то буде створено два каталоги (каталог my_Dir в каталозі first_Dir)
  
        // Створення каталогу "my_Dir"
+
// Видалення каталогу "my_Dir"
  SD.mkdir ( "my_Dir"); // функція повертає результат створення true / false. Якщо вказати "first_Dir / my_Dir", то буде створено два каталоги (каталог my_Dir в каталозі first_Dir)
+
SD.rmdir ( "my_Dir"); // функція повертає результат видалення true / false
 
 
        // Видалення каталогу "my_Dir"
 
  SD.rmdir ( "my_Dir"); // функція повертає результат видалення true / false. Видаляється каталог повинен бути порожнім
 
  
 
===Створення файлу===
 
===Створення файлу===
Рядок 109: Рядок 85:
 
   // підключення бібліотек SPI і SD:
 
   // підключення бібліотек SPI і SD:
 
   #include <SPI.h>
 
   #include <SPI.h>
 
 
   #include <SD.h>
 
   #include <SD.h>
 
+
   const uint8_t PIN_CS = 10; // вказуємо номер виведення arduino підключеного до виводу CS адаптера
   const uint8_t PIN_CS = 10; // вказуємо номер виведення arduino підключеного до висновку CS адаптера
 
 
 
 
   File myFile; // створюємо змінну myFile класу File, яка буде служити "покажчиком" на відкритий файл
 
   File myFile; // створюємо змінну myFile класу File, яка буде служити "покажчиком" на відкритий файл
 
 
   void setup ()  
 
   void setup ()  
 
   {
 
   {
Рядок 123: Рядок 95:
 
       ; // очікуємо з'єднання послідовного порту
 
       ; // очікуємо з'єднання послідовного порту
 
     }  
 
     }  
 
 
   // використовуємо відповідь ініціалізації, для визначення працездатності карти і адаптера
 
   // використовуємо відповідь ініціалізації, для визначення працездатності карти і адаптера
 
   if (! SD.begin (PIN_CS)) // ініціалізація SD карти із зазначенням номера виведення CS
 
   if (! SD.begin (PIN_CS)) // ініціалізація SD карти із зазначенням номера виведення CS
Рядок 130: Рядок 101:
 
       return; // помилка ініціалізації. картка не знайдено або сигнал не підключено (неправильно підключений) адаптер карт MicroSD
 
       return; // помилка ініціалізації. картка не знайдено або сигнал не підключено (неправильно підключений) адаптер карт MicroSD
 
     }
 
     }
 
 
   // перевіряємо наявність файлу "iarduino.txt" на SD-карті
 
   // перевіряємо наявність файлу "iarduino.txt" на SD-карті
 
   if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
 
   if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
Рядок 140: Рядок 110:
 
       Serial.println ( "file does not exist");
 
       Serial.println ( "file does not exist");
 
     }
 
     }
 
 
   // відкриваємо файл "iarduino.txt" для читання і запису, починаючи з кінця файлу, і записуємо в нього рядок
 
   // відкриваємо файл "iarduino.txt" для читання і запису, починаючи з кінця файлу, і записуємо в нього рядок
 
   myFile = SD.open ( "iarduino.txt", FILE_WRITE); // якщо файлу з ім'ям "iarduino.txt" - немає, то він буде створений.
 
   myFile = SD.open ( "iarduino.txt", FILE_WRITE); // якщо файлу з ім'ям "iarduino.txt" - немає, то він буде створений.
Рядок 156: Рядок 125:
 
       Serial.println ( "file is not opened");
 
       Serial.println ( "file is not opened");
 
     }
 
     }
 
 
   // перевіряємо наявність файлу "iarduino.txt" на SD-карті
 
   // перевіряємо наявність файлу "iarduino.txt" на SD-карті
 
     if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
 
     if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
Рядок 167: Рядок 135:
 
     }
 
     }
 
   }
 
   }
 
 
   void loop ()  
 
   void loop ()  
  {
+
  {
  }
+
  }
  
 
Якщо підключити адаптер карт MicroSD v1.0 до Arduino Uno, підключити Arduino Uno до ПК, завантажити скетч, вставити SD-карту і запустити Монітор послідовного порту, то в моніторі будуть виведені наступні рядки:
 
Якщо підключити адаптер карт MicroSD v1.0 до Arduino Uno, підключити Arduino Uno до ПК, завантажити скетч, вставити SD-карту і запустити Монітор послідовного порту, то в моніторі будуть виведені наступні рядки:
  
file does not exist (файл не виявлений)
+
  file does not exist (файл не виявлений)
 
+
  file is opened (файл відкритий)
file is opened (файл відкритий)
+
  data written to the file (дані записані в файл)
 
+
  file is closed (файл закритий)
data written to the file (дані записані в файл)
+
  file exists (файл виявлений)
 
 
file is closed (файл закритий)
 
 
 
file exists (файл виявлений)
 
  
 
а на SD-карті з'явиться файл "iarduino.txt" з одним рядком "The beginning of a line, The end of the line".
 
а на SD-карті з'явиться файл "iarduino.txt" з одним рядком "The beginning of a line, The end of the line".
Рядок 194: Рядок 157:
 
   #include <SPI.h>
 
   #include <SPI.h>
 
   #include <SD.h>
 
   #include <SD.h>
 
 
   const uint8_t PIN_CS = 10; // вказуємо номер виведення arduino підключеного до висновку CS адаптера
 
   const uint8_t PIN_CS = 10; // вказуємо номер виведення arduino підключеного до висновку CS адаптера
 
 
   void setup ()  
 
   void setup ()  
 
   {
 
   {
Рядок 204: Рядок 165:
 
       ;// очікуємо з'єднання послідовного порту
 
       ;// очікуємо з'єднання послідовного порту
 
     }  
 
     }  
 
 
   // використовуємо відповідь ініціалізації, для визначення працездатності карти і адаптера
 
   // використовуємо відповідь ініціалізації, для визначення працездатності карти і адаптера
 
   if (! SD.begin (PIN_CS)) // ініціалізація SD карти із зазначенням номера виведення CS
 
   if (! SD.begin (PIN_CS)) // ініціалізація SD карти із зазначенням номера виведення CS
Рядок 211: Рядок 171:
 
     return;  
 
     return;  
 
     }
 
     }
 
 
   // перевіряємо наявність файлу "iarduino.txt" на SD-карті
 
   // перевіряємо наявність файлу "iarduino.txt" на SD-карті
 
   if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
 
   if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
 
     {
 
     {
     Serial.println ( "file exists");
+
     Serial.println ( "file exists");  
   
 
 
   // видаляємо файл "iarduino.txt":
 
   // видаляємо файл "iarduino.txt":
 
     if (SD.remove ( "iarduino.txt")) // функція повертає результат видалення true / false
 
     if (SD.remove ( "iarduino.txt")) // функція повертає результат видалення true / false
Рядок 231: Рядок 189:
 
     Serial.println ( "file does not exist");
 
     Serial.println ( "file does not exist");
 
     }
 
     }
 
 
   // перевіряємо наявність файлу "iarduino.txt" на SD-карті
 
   // перевіряємо наявність файлу "iarduino.txt" на SD-карті
 
   if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
 
   if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
Рядок 248: Рядок 205:
 
Якщо підключити адаптер карт MicroSD v1.0 до Arduino Uno, підключити Arduino Uno до ПК, завантажити скетч, вставити SD-карту і запустити Монітор послідовного порту, то в моніторі будуть виведені наступні рядки:
 
Якщо підключити адаптер карт MicroSD v1.0 до Arduino Uno, підключити Arduino Uno до ПК, завантажити скетч, вставити SD-карту і запустити Монітор послідовного порту, то в моніторі будуть виведені наступні рядки:
  
file exists (файл виявлений)
+
  file exists (файл виявлений)
 
+
  file deleted (файл видалений)
file deleted (файл знаходиться на відстані)
+
  file does not exist (файл не виявлений)
 
 
file does not exist (файл не виявлений)
 
  
 
а файл "iarduino.txt" буде видалений з SD-карти.
 
а файл "iarduino.txt" буде видалений з SD-карти.
  
Якщо завантажити скетч при вставленої в адаптер карт MicroSD v1.0 SD-картою, то файл "iarduino.txt" буде видалений з SD-карти, але в моніторі послідовного порту будуть два рядки "file does not exist" (файл не виявлений) .
+
Якщо завантажити програму при вставленої в адаптер карт MicroSD v1.0 SD-картою, то файл "iarduino.txt" буде видалений з SD-карти, але в моніторі послідовного порту будуть два рядки "file does not exist" (файл не виявлений) .
  
 
==Перелік посилань==
 
==Перелік посилань==
  
<br>1.
+
<br>1.http://iarduino.ru/shop/Expansion-payments/spi-adapter-kart-microsd-v0-9b-dlya-arduino-rabotaet-s-oficialnymi-programmami-arduino.html
 +
<br>2.http://robot-kit.ru/product_info.php/info/p1145_Modul-Micro-SD-karty-dlya-Arduino--MicroSD-Shield-.html
 +
<br>3.https://arduino-kit.ru/catalog/id/modul-sd-kartyi-pamyati-dlya-arduino
 +
<br>4.https://arduino.cc

Поточна версія на 17:03, 31 травня 2017

Модуль дозволяє зберігати, читати і записувати на SD карту дані необхідні для роботи приладу на основі мікроконтролера. Застосування пристрою актуально при зберіганні файлів від десятків мегабайт до двох гігабайт. На платі розміщений контейнер SD карти, стабілізатор живлення карти, вилка з'єднувача ліній інтерфейсу і живлення. Якщо потрібно працювати з звуковими, відео або іншими об'ємними даними, наприклад, вести журнал реєстрації подій, даних датчиків або зберігати інформацію веб-сервера, то модуль SD карти пам'яті для Arduino дасть можливість застосувати SD карту для цих цілей. За допомогою модуля можна вивчити особливості роботи SD карти.
Модуль SD-Card вигляд спереду
Модуль SD-Card вигляд ззаду


Загальні відомості

Спеціальний модуль для підключення Micro SD (TF) карт пам'яті до Arduino:

• Може використовуватися в різних робототехнічних проектах, де необхідно забезпечити завантаження аудіо, відео, графіки або записи будь-яких даних.

• Модуль дозволяє значно розширити можливості Arduino. Так як в більшості мікроконтролерів вбудована пам'ять обмежена.

• Бібліотека для роботи з даними адаптером входить в стандартний набір Arduino IDE. Бібліотека SD дозволяє: читати і записувати дані, створювати і видаляти файли, отримувати інформацію про файлах і SD-карті, працювати з SD-картою на низькому рівні.

• Адаптер підключається до апаратних виводів шини SPI (4 виведення: CS, SCK, MOSI, MISO). Назва виводів зазначено на адаптері, їх потрібно підключити до однойменних виводів плат Arduino.
Модуль SD-Card

Характеристика модуля

- Вхідна напруга живлення: 4.5 - 5.5 В

- Струм споживання адаптером: 0.2 - 200 мА

- Підтримувані рівні логічної «1»: 3.3 / 5 В

- Інтерфейс: SPI

- Підтримуваний обсяг MicroSD: до 2 Гб

- Розмір: 46 x 24 x 7 мм

- Вага: 5 г

Схема електрична принципова модуля

Підключення модуля до Arduino

Плата розширення значно полегшує підключення. На ній встановлено регулятор, який перетворює напругу в 3.3 В (I2C). Є регулятор рівня, який перетворює живення логіки з 3.3-5 В в 3.3 В. Це означає, що плату розширення можна використовувати з мікроконтролерами 3.3 В і 5 В.

Найкраще підключати SD карту до пінам hardware SPI, тому-що при її використанні відбувається передача великої кількості даних. На "класичних платах Arduino (Duemilanove / Diecimila / Uno) це цифровий пін 13 (SCK), 12 (MISO) і 11 (MOSI). Також знадобиться четвертий пін для ланцюга 'chip / slave select' (SS). Традиційно використовують 10 пін, але можна і інший. Якщо в наявності є плата Arduino Mega, піни будуть відрізнятися!

Схема підключення модуля

Програмування

У програмний пакет Arduino IDE входить спеціальна бібліотека SD. Бібліотека підтримує на стандартних картах і SDHC файлові системи FAT16 і FAT32. Працює з іменами файлів довжиною 8 символів і розширенням імені 3 символу. Починаючи з версії 1.0, бібліотека SD підтримує відкриття декількох файлів. Програмне забезпечення Arduino містить процедури дозволяють працювати з картою SD і інтерфейсом SPI.

SD Card Module 12121212128.jpg

Базові функції, для роботи з файлами SD-карти

// Створення змінної myFile класу File бібліотеки SD, яка буде служити "покажчиком" на файл
File myFile; // змінна буде потрібно для відкриття і закриття файлу, а так само для роботи з відкритим файлом
// Відкриття файлу "iarduino.txt" для читання і запису, починаючи з кінця файлу:
myFile = SD.open ( "iarduino.txt", FILE_WRITE); // якщо файлу з ім'ям "iarduino.txt" - немає, то він буде створений.
// Запис рядка в файл> "iarduino.txt":
myFile.print ( "початок рядка,"); // запис рядка у відкритий файл "iarduino.txt", без додавання символів переходу на новий рядок.
myFile.println ( "продовження рядка."); // запис рядка у відкритий файл "iarduino.txt", з додаванням символів переходу на новий рядок.
  
// Закриття файлу "iarduino.txt":
myFile.close ();
// Відкриття файлу "iarduino.txt" для читання, починаючи з початку файлу:
myFile = SD.open ( "iarduino.txt"); // якщо файлу з ім'ям "iarduino.txt" - немає, то він не буде відкритий.
// Читання рядків з файлу "iarduino.txt":
while (myFile.available ()) // якщо є дані для читання з відкритого файлу "iarduino.txt"
{
 Serial.write (myFile.read ()); // читаємо черговий байт з файлу і виводимо його в послідовний порт.
}
// Видалення файлу "iarduino.txt":
SD.remove ( "iarduino.txt"); // функція повертає результат видалення true / false
// Створення файлу "iarduino.txt":
myFile = SD.open ( "iarduino.txt", FILE_WRITE); // якщо файлу з ім'ям "iarduino.txt" - немає, то він буде створений.
myFile.close (); // закриваємо файл "iarduino.txt" без запису даних.
// Перевірка існування файлу "iarduino.txt":
if (SD.exists ( "example.txt")) {...;} // умова буде виконана, якщо файл "iarduino.txt" існує на SD-карті
// Перевірка відкриття файлу "iarduino.txt":
if (myFile) {...;} // умова буде виконана, якщо файл був успішно відкритий: myFile = SD.open (...)
// Створення каталогу "my_Dir"
SD.mkdir ( "my_Dir"); // функція повертає результат створення true / false. Якщо вказати "first_Dir / my_Dir", то буде створено два каталоги (каталог my_Dir в каталозі first_Dir)
// Видалення каталогу "my_Dir"
SD.rmdir ( "my_Dir"); // функція повертає результат видалення true / false

Створення файлу

 // підключення бібліотек SPI і SD:
 #include <SPI.h>
 #include <SD.h>
 const uint8_t PIN_CS = 10; // вказуємо номер виведення arduino підключеного до виводу CS адаптера
 File myFile; // створюємо змінну myFile класу File, яка буде служити "покажчиком" на відкритий файл
 void setup () 
 {
     Serial.begin (9600); // відкриваємо послідовний порт на швидкості 9600 бод
  while (! Serial) 
    {
     ; // очікуємо з'єднання послідовного порту
    } 
  // використовуємо відповідь ініціалізації, для визначення працездатності карти і адаптера
  if (! SD.begin (PIN_CS)) // ініціалізація SD карти із зазначенням номера виведення CS
    {
     Serial.println ( "SD-card not found"); 
     return; // помилка ініціалізації. картка не знайдено або сигнал не підключено (неправильно підключений) адаптер карт MicroSD
    }
  // перевіряємо наявність файлу "iarduino.txt" на SD-карті
  if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
    {
     Serial.println ( "file exists");
    } 
   Else 
    {// інакше ...
     Serial.println ( "file does not exist");
    }
  // відкриваємо файл "iarduino.txt" для читання і запису, починаючи з кінця файлу, і записуємо в нього рядок
  myFile = SD.open ( "iarduino.txt", FILE_WRITE); // якщо файлу з ім'ям "iarduino.txt" - немає, то він буде створений.
   if (myFile) // якщо файл доступний (відкритий для запису), то ...
    {
     Serial.println ( "file is opened");
     myFile.print ( "The beginning of a line,"); // записуємо першу частину рядка в файл
     myFile.println ( "The end of the line"); // записуємо другу частину рядка в файл
     Serial.println ( "data written to the file");
     myFile.close (); // закриваємо файл
     Serial.println ( "file is closed");
    } 
    Else 
    {
     Serial.println ( "file is not opened");
    }
  // перевіряємо наявність файлу "iarduino.txt" на SD-карті
   if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
    {
     Serial.println ( "file exists");
    } 
   Else 
    {
     Serial.println ( "file does not exist");
    }
 }
 void loop () 
  {
  }

Якщо підключити адаптер карт MicroSD v1.0 до Arduino Uno, підключити Arduino Uno до ПК, завантажити скетч, вставити SD-карту і запустити Монітор послідовного порту, то в моніторі будуть виведені наступні рядки:

 file does not exist (файл не виявлений)
 file is opened (файл відкритий)
 data written to the file (дані записані в файл)
 file is closed (файл закритий)
 file exists (файл виявлений)

а на SD-карті з'явиться файл "iarduino.txt" з одним рядком "The beginning of a line, The end of the line".

Якщо завантажити програму при вставленої в адаптер карт MicroSD v1.0 SD-картою, то на SD-карті з'явиться файл "iarduino.txt" з двома рядками "The beginning of a line, The end of the line", а першим рядком в моніторі послідовного порту буде "file exists" (файл виявлений).


Видалення файлу

 // підключення бібліотек SPI і SD:
 #include <SPI.h>
 #include <SD.h>
 const uint8_t PIN_CS = 10; // вказуємо номер виведення arduino підключеного до висновку CS адаптера
 void setup () 
  {
   Serial.begin (9600); // відкриваємо послідовний порт на швидкості 9600 бод
  while (! Serial) 
    {
     ;// очікуємо з'єднання послідовного порту
    } 
  // використовуємо відповідь ініціалізації, для визначення працездатності карти і адаптера
  if (! SD.begin (PIN_CS)) // ініціалізація SD карти із зазначенням номера виведення CS
   {
    Serial.println ( "SD-card not found"); // помилка ініціалізації. картка не знайдено або сигнал не підключено (неправильно підключений) адаптер карт MicroSD
    return; 
   }
  // перевіряємо наявність файлу "iarduino.txt" на SD-карті
  if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
   {
    Serial.println ( "file exists");    
  // видаляємо файл "iarduino.txt":
   if (SD.remove ( "iarduino.txt")) // функція повертає результат видалення true / false
    {
     Serial.println ( "file deleted");
    } 
   Else
    {
     Serial.println ( "file is not deleted");
    }
   } 
  Else 
   {
    Serial.println ( "file does not exist");
   }
  // перевіряємо наявність файлу "iarduino.txt" на SD-карті
  if (SD.exists ( "iarduino.txt")) // якщо файл з ім'ям "iarduino.txt" існує, то ...
   {
    Serial.println ( "file exists");
   } 
  Else 
   {
    Serial.println ( "file does not exist");
   }
 }
 void loop () 
 {
 }

Якщо підключити адаптер карт MicroSD v1.0 до Arduino Uno, підключити Arduino Uno до ПК, завантажити скетч, вставити SD-карту і запустити Монітор послідовного порту, то в моніторі будуть виведені наступні рядки:

 file exists (файл виявлений)
 file deleted (файл видалений)
 file does not exist (файл не виявлений)

а файл "iarduino.txt" буде видалений з SD-карти.

Якщо завантажити програму при вставленої в адаптер карт MicroSD v1.0 SD-картою, то файл "iarduino.txt" буде видалений з SD-карти, але в моніторі послідовного порту будуть два рядки "file does not exist" (файл не виявлений) .

Перелік посилань


1.http://iarduino.ru/shop/Expansion-payments/spi-adapter-kart-microsd-v0-9b-dlya-arduino-rabotaet-s-oficialnymi-programmami-arduino.html
2.http://robot-kit.ru/product_info.php/info/p1145_Modul-Micro-SD-karty-dlya-Arduino--MicroSD-Shield-.html
3.https://arduino-kit.ru/catalog/id/modul-sd-kartyi-pamyati-dlya-arduino
4.https://arduino.cc