Во втором уроке просвещенном работе с SD картой . Научимся создавать и удалять файлы с помощью Arduino. Также запишем информацию в файл и считаем её. Как получить информацию о карте памяти и файлах хоронящихся на карте смотрите в предыдущем уроке: Урок13. Библиотека SD Arduino. Выводим информацию о SD карте.
Для
роботы нам понадобится
библиотека SD.h
которую можно установить через менеджер
библиотек.
Для урока нам понадобиться:
1. Arduino UNO или Arduino NANO
2. Модуль SD карты .
3. Беспаечная макетная плата .
Подключаем 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. То текст запишется еще раз в файл.
Это отличное решение для сохранения показаний с датчика.
Файл на карте памяти выглядит вот так.
Понравилась статья? Поделитесь ею с друзьями:
Вернуться в раздел: Уроки Arduino: Подключение датчиков и модулей к Arduino Дата публикации 10 октября , 2019
Читайте также
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.