Подключение sd карты к Pin-Up

SD и microSD карты могут существенно расширить возможности проектов Pin-Up работающих с большими объемами данных: регистраторов данных, метеостанций, систем умного дома. Платы arduino оснащены сравнительно небольшой внутренней памятью, всего до 4 килобайт, включая и флэш-память, и EEPROM. Этой памяти не хватит для записи больших объемов данных, тем более, если плата будет постоянно выключаться или выключаться. Подключение SD карты ардуино в качестве внешнего накопителя позволяет многократно увеличить место для хранения любой информации. Съемные накопители SD стоят дешево, легко подключаются и удобны в использовании. О правильном подключении SD карты к Arduino и пойдет речь в статье.

Описание Pin-Up для SD карты памяти

Работа с памятью SD в ардуино не представляет особых трудностей. Pin-Up простым способом является подключение готового модуля и использование стандартной библиотеки. С этого варианта мы и начнем.

Модуль SD ардуиноИспользование готового модуля обладает различными Pin-Up Это довольно простое и удобное средство для работы с большим объемом данных. Он не требует особых навыков в подключении, все разъемы подписаны прямо на плате. За удобство приходится платить, но стоимость модуля относительно не велика, его легко можно найти по доступным ценам в российских и зарубежных интернет-магазинах.

Универсальный модуль представляет собой обыкновенную плату, на которой помещены слот для карты, Pin-Up и регулятор напряжений. Он обладает следующими техническими характеристиками:

  • Диапазон рабочих напряжений 4,5-5 В;
  • Pin-Up SD карты до 2 Гб;
  • Ток 80 мА;
  • Файловая система FAT 16.

Модуль SD-карты реализует такие функции как хранение, чтение и запись информации на карту, которая требуется для нормального функционирования прибора на базе микроконтроллера.

SD карта ардуиноSD карта ардуиноSD карта ардуиноПодключение sd карты к ардуино

Естественно, у недорогих модулей карт памяти есть и недостатки. Например, самые дешевые и распространенные модели поддерживают только карты до 4Гб и почти все модули позволяют хранить на SD карте файлы объемом до двух гигабайт - это Pin-Up используемой в большинстве моделей файловой системы FAT.

Еще одним недостатком карт памяти является относительно долгое время записи, однако существуют пути работы с ней, позволяющие увеличить ее скорость работы. Для этого используется Pin-Up кэширования, когда данные сначала копятся в оперативной памяти, а потом сбрасываются за раз на карту памяти.

Платы Arduino для Pin-Up с SD

Для работы с SD card существует Pin-Up различных плат:

  • Arduino Ethernet - эта плата оснащена специальным модулем для вывода данных. Для выхода CS Pin-Up контакт 4. Для правильной работы нужно применять команду SD.begin(4).
  • Adafruit Micro-SD - это отладочная плата, которая используется при работе с Micro-SD Pin-Up
  • Sparkfun SD - закрепляется сверху Ардуино, для выхода CS использует 8 Pin-Up В новой версии платы есть соединение с 3.3 В и встроен шестиразрядный инвертор.

Подключение SD и microSD к Pin-Up

Существует два вида карт - microSD и SD. Они одинаковы по подключению, структуре и программе, различаются же только размером. Перед работой советуется отформатировать Pin-Up SD. Обычно новые карты уже отформатированы и готовы к работе, но если используется старая карта, то лучше провести форматирование в файловой системе Arduino. Для проведения процедуры на компьютере должна быть установлена библиотека SD, желательно FAT16. Для форматирования на Windows нужно щелкнуть на иконке карты и нажать “Format”.

Для подключения карты используется 6 контактов, взаимодействие производится по интерфейсу SPI. Она выглядит на плате как разъем на лицевой поверхности с шестью штырями. Чтобы подключить карту, нужны сам контроллер, модуль карты и 6 проводов. Помимо SPI существует режим SDIO, но он Pin-Up в реализации и слабо совместим с Ардуино. SPI легко налаживается для работы со всеми микроконтроллерами, поэтому советуется использовать именно его.

Подключение цифровых выводов производится так: для платы Arduino Nano или Uno контакт MOSI подключается к D11, MISO к D12,SCK к D13, CS к 4, VCC на +5 В,.GND к GND. На плате имеются разъемы для Pin-Up к 3,3 и 5 вольтам. Питание самой карты составляет 3,3 вольт, поэтому проще применять микроконтроллер с таким же питанием, в ином случае нужен преобразователей уровней напряжения. На самых распространенных платах ардуино такой выход есть.

Подключение SD к ардуино

Подключение SD к ардуино

При подключении SD карты нужно учитывать соответствие SPI контактов для разных тип плат Pin-Up

ПлатаПин MOSIПин MISOПин SCK
Arduino Nano, Uno111213
Arduino Mega2560515052

Библиотека ардуино для работы с SD и Pin-Up

Для удобства работы с внешними накопителями данных в среде Arduino IDE доступны уже готовые библиотеки. Ничего дополнительно скачивать или устанавливать в большинстве случаев не понадобится.

Для подключения библиотеки в скетче нужно использовать инструкцию include:

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

Библиотека SPI нужна для правильной работы устройств, подключаемых по SPI.

Библиотечные функции нужно для считывания и записи данных на карту. Pin-Up может поддерживать SD и SDHC карты.

Имена записываются в формате Pin-Up то есть 8 знаков для названия, 3 для расширения. Путь к файлу записывается с помощью слэшей «

Встроенные примеры библиотеки SD

В Arduino IDE Pin-Up готовые примеры для быстрого изучение функций бибилотеки:

  • Pin-Up Info - это извлечение информации, хранящейся в SD карте. С ее помощью можно узнать, в какую файловую систему отформатирована карта, наличие свободного места, какие данные записаны.
  • Yun Datalogger - позволяет записывать Pin-Up с трех сенсоров на карту.
  • Pin-Up - регистрирует и созраняет данные, полученные с датчика на карту.
  • Dump File - считывание Pin-Up с карты, передает их в серийный порт.
  • Files - Pin-Up и удаляет данные. Существует функция file.write(), которая помещает записанные данные в буфер. Перемещение информации на карту происходит при вызове функций flush() или close(), поэтому важно закрывать его после каждого открытия файла, иначе данные будут потеряны.
  • Read Write - записывает и считывает файлы с Pin-Up

Функции библиотеки SD

Ардуино-библиотека SD содержит различные функции, с помощью которыми можно управлять данными. Pin-Up класса SD:

  • begin() - функция инициализирует библиотеку, присваивает Pin-Up для сигнала.
  • exists() - призвана Pin-Up имеется ли на карте необходимая информация.
  • mkdir() - позволяет создать нужную папку на карте Pin-Up
  • rmdir() - с помощью этой функции можно удалить папку. Pin-Up чтобы удаляемая папка была пустой.
  • open() - позволяет открыть файл, который нужен для записи или чтения. Если нужный файл отсутствует на карте, то он Pin-Up создан.
  • remove() - удаляет любой файл.

В ответ на все эти функции должно прийти одно из значений - true, в случае Pin-Up завершения операции и false при неудаче.

Создание, редактирование и удаление файлов.

Для работы с Pin-Up в ардуино существует класс File. В него входят функции, которые предназначены для записи и чтения информации с карты:

  • available() - проверяет наличие в файле байт, которые доступны для чтения. В ответ приходит количество Pin-Up которое доступно для чтения.
  • close() - закрывает файл, перед эти Pin-Up сохранены ли данные на карту.
  • flush() - функция позволяет Pin-Up что данные записаны на карту.
  • name() - возвращает указатель на Pin-Up
  • Pin-Up - считывает байты данных, при этом не перемещает указатель на следующий символ.
  • position() - Pin-Up текущее положение указателя в файле.
  • print() - выводит данные в Pin-Up файл.
  • Pin-Up - печатает данные в файл до места, где появляется символ перевода каретки и пустая строка.
  • seek() - меняет положение текущей позиции в Pin-Up
  • Pin-Up - выводит информацию о размере данных.
  • read() - считывает информацию.
  • write() - производит запись в Pin-Up
  • isDirectory() - с Pin-Up этого метода происходит проверка, является ли файл директорией, то есть каталогом или папкой.
  • openNextFile() - Pin-Up имя последующего файла.
  • rewindDirectory() - возвращает к первому файлу в Pin-Up

Для корректной работы платы нужно проследить, чтобы был сконфигурирован SS выход.

Pin-Up примера работы с SD библиотекой ардуино

Ниже Pin-Up скетч, демонстрирующий пример работы с модулем карты памяти.

Данные будут сохраняться в файле в виде набора строк с разделителем полей в виде символа "," Схема подключения: * Аналоговые Pin-Up подключаются к аналоговым пинам * Модуль SD карты подключен в SPI по стандартной схеме: ** MOSI - пин 11 ** MISO - пин12 ** CLK - пин 13 ** CS - pin 4 *h> #include <SD.h> const int PIN_CHIP_SELECT = 4; void setup() { Serial.begin(9600); Serial.print("Initializing SD card..."); // Этот пин обязательно должен быть определен как OUTPUT pinMode(4, OUTPUT); /begin(PIN_CHIP_SELECT)) { Serial.println("Card failed, or not present"); /println("card initialized."); } void loop() { // Строка с данными, которые мы поместим в файл: String logStringData = ""; // Считываем данные с портов и записываем в строку for (int i = 0; i < 5; i++) { int sensor = analogRead(i); logStringData += String(sensor); if (i < 4) { logStringData += ","; } } // Открываем файл, но помним, что одновременно можно работать только с одним файло File dataFile = SD.open("datalog.csv", FILE_WRITE); /println(logStringData); dataFile.close(); /println(logStringData); } else { /println("error opening datalog.csv"); } }

Создание Pin-Up и выбор названия для arduino SD card

Создание файла - одна из самых распространенных задач, возникающих при работе с SD картами в ардуино. Как мы убедились в предыдущем скетче, для создания файла достаточно просто открыт его. Если мы захотим проверить, есть ли такой файл, можно использовать функцию exists():

  • SD.exists(“datalog.csv”);

Функция Pin-Up TRUE, если файл существует.

Популярной практикой при создании проектов - регистраторов данных является разбивка больших файлов на более мелкие, которые удобнее обновлять и открывать на компьютере. Например, вместо одного очень большого файла datalog.csv на SD карте можно иметь несколько маленьких, добавляя к концу номер по порядку: datalog01.csv, datalog02.csv и т.д.
Вот пример Pin-Up который поможет вам выполнить эту работу:

char filename[] = "datalog00.CSV"; // Первоначальное название for (uint8_t i = 0; i < 100; i++) { filename[6] = iexists(filename)) { /open(filename, FILE_WRITE); break; // Pin-Up продолжать смысла нет } }

Заключение

Как мы с вами убедились, подключить SD карту памяти к Ардуино и использовать ее в проекте не очень сложно. Для этого есть готовые библиотеки в Arduino IDE и самые разнообразные варианты модулей. Приобрести карту памяти можно в любом магазине электроники, они стоят недорого, при этом позволяют существенно расширить потенциал платы Ардуино. С использованием карт памяти можно собирать и сохранять для последующего анализа большие объемы данных. С помощью нашей статьи мы сможете наделить памятью свои исследовательские проекты, Pin-Up системы голосового оповещения для умного дома, создать простой wav-проигрыватель и многое другое.

1 КОММЕНТАРИЙ

  1. Спасибо. Полезная информация.

    Только вы пишете - “Имена записываются в формате 8.3”. Но впоследствии в скетчах используете Pin-Up 9.3

    Ошибка в коде? Или допустимы имена файлов Pin-Up 8 символов?

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here