Во
втором уроке просвещенном работе с SD
картой
. Научимся создавать и удалять
файлы
с помощью Arduino. Также запишем
информацию в файл
и считаем её. Как
получить информацию о карте памяти и
файлах хоронящихся на карте смотрите
в предыдущем уроке:
Урок13. Библиотека SD Arduino. Выводим информацию о SD карте.
Для
роботы нам понадобится
библиотека SD.h
которую можно установить через менеджер
библиотек.
Для
урока нам понадобиться:
1. Arduino
UNO
или Arduino
NANO
2. Модуль
SD карты
.
3. Беспаечная
макетная плата
.
4. Соединительные
провода
.
Подключаем
SD-модуль к Arduino UNO
по
такой схеме.
Давайте создадим файл на флешке, для этого используется функции SD.open(). Которая открывает файл на SD карте. Если файл открывается для записи, и если он еще не существует, то он будет создан (но содержащий его каталог уже должен существовать).
Remove() - Удаляет файл.
SD.exists() - проверяет существует ли файл.
Простой пример скетча для создания и удаления файлов с помощью библиотеки SD.
#include <SPI.h>
#include <SD.h>
File myFile;
// Измените это в соответствии с вашей платой расширения или модулем;
const int chipSelect = 4;
void setup()
{
// Открыть последовательное соединение и ждать открытия порта:
Serial.begin(9600);
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect))
{
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
// проверим есть ли такой файл на флешке
if (SD.exists("example.txt"))
{
Serial.println("example.txt Есть такой. ");
}
else
{
Serial.println("example.txt нет. ");
}
// открыть новый файл и немедленно закрыть его
Serial.println(" Создаем example.txt... ");
myFile = SD.open("example.txt", FILE_WRITE);
myFile.close();
// проверить, существует ли файл:
if (SD.exists("example.txt"))
{
Serial.println(" example.txt Есть такой. ");
}
else
{
Serial.println("example.txt нет.");
}
// удалить файл:
Serial.println(" Удаляем example.txt... ");
SD.remove("example.txt");
if (SD.exists("example.txt"))
{
Serial.println(" example.txt есть такой. ");
}
else
{
Serial.println(" example.txt нет. ");
}
}
void loop()
{
// после завершения настройки ничего не делать.
}
После загрузке в мониторе порта мы увидим вот такую информацию.
Сперва мы проверяем на существование файла, создаем файл. Проверяем еще раз, что файл создан. Удаляем файл. И проверяем, что файла больше нет на карте памяти.
Если нам не нужно удалять файл, можно закомментировать строку отвечающую за удаления и уведомления, что будем удалять файл тоже лучше закомментировать.
// удалить файл:
// Serial.println(" Удаляем example.txt... ");
// SD.remove("example.txt");
Сейчас наш файл создан и не удален. С ним можно работать.
Давайте создадим файл и запишем информацию в него. Код будит не очень сильно измене.
#include <SPI.h>
#include <SD.h>
File myFile;
// Измените это в соответствии с вашей платой расширения или модулем;
const int chipSelect = 4;
void setup()
{
// Открыть последовательное соединение и ждать открытия порта:
Serial.begin(9600);
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
// Открыть файл. Обратите внимание, что в какой-либо момент может быть открыт только один файл,
// поэтому вы должны закрыть один файл перед открытием следующего.
myFile = SD.open("test.txt", FILE_WRITE);
// если файл открыт, то записать в него:
if (myFile)
{
Serial.print(" Запись в файл test.txt... ");
myFile.println(" Текст: 1, 2, 3.");
// закрыть файл:
myFile.close();
Serial.println("Ok.");
}
else
{
// если файл не открыт, то вывести сообщение об ошибке:
Serial.println("ошибка открытия test.txt");
}
// снова открыть файл для чтения:
myFile = SD.open("test.txt");
if (myFile)
{
Serial.println("test.txt:");
// читать из файла, пока в нем ничего не останется:
while (myFile.available())
{
Serial.write(myFile.read());
}
// закрыть файл:
myFile.close();
}
else
{
// если файл не открыт, то вывести сообщение об ошибке:
Serial.println("ошибка открытия test.txt");
}
}
void loop()
{
// после завершения настройки ничего не делать.
}
В мониторе порта мы увидим, что файл создан и удачно сохранился наш текст.
Если перезагрузить Arduino. То текст запишется еще раз в файл.
Это отличное решение для сохранения показаний с датчика.
Файл на карте памяти выглядит вот так.
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока. И до встречи в следующем уроке.
Понравилась статья? Поделитесь ею с друзьями:
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.