Меню

Как подключить mini card reader модуль к ардуино mega

Как подключить mini card reader модуль к ардуино mega

При постройке на базе Arduino разнообразных проектов, часто возникает необходимость записывать какие то данные в память. Например имеется «умный дом» и нужно записывать показания различных датчиков или имеется летательный аппарат, который должен записывать координаты GPS в память. Использовать для этих целей внутреннюю память Arduino не получится, её очень мало, но можно подключить внешнюю память, в качестве которой может выступать SD карта.

Модуль для SD карты может быть в формате SD.

Ничего сложно в модуле нет, несколько резисторов и стабилизатор напряжения AMS1117-3.3. SD карта питается от 3,3В, поэтому стабилизатор AMS1117-3.3 служит для понижения напряжения питания с 4,5 — 5В до 3,3,В.

Питание SD-модуля.

На некоторых SD модулях присутствуют контакты с двумя напряжениями (+5, +3,3). В таком случае, к контакту «+3,3» можно подключать стабилизированное напряжение 3,3В, которое будет напрямую поступать на карту памяти. Если нет такого напряжения, тогда к контакту «+5» можно подавать напряжение от 4,5 до 5В, которое будет через стабилизатор преобразовываться в 3,3В и поступать на карту. Не рекомендуется к контакту «+3,3» подавать большее напряжение, это может привести к выходу со строя SD карточки.

На тех модулях где присутствует только контакт «VCC», к нему нужно подключать напряжение только от 4,5 до 5В.

Если использовать для питания SD модуля соответствующие контакты на плате Arduino UNO или Mega 2560 нужно понимать, что с контакта «+5» можно получить ток до 800 мА, а с контакта «+3,3» всего до 50 мА. Сама же карта при записи данных может потреблять до 100 мА, поэтому если брать с ардуино питание 3,3 вольта, эти контакты могут не обеспечить нужный ток. В таком случае нужно использовать отдельный источник.

На плате Arduino DUE имеются так же контакты «3.3V» и «5V», от которых можно питать различные модули и датчики. Максимально выходной ток на этих выводах 800 мА.

Логические уровни.

Помимо питания в 3,3 вольта, картам памяти требуется и такое же напряжение на логических уровнях. Поскольку мы будем подключать карту к Ардуино, напрямую их логические уровни соединять нельзя. Почему? В Arduino используется микроконтроллер Atmega, который питается от 5 вольт, соответственно его логические уровни тоже 5 вольт (от какого напряжения питается контроллер, такое напряжение присутствует у него на логических уровнях). Это значит что логическая единица равна 5 вольт. Логические же уровни SD карты 3, 3 вольта, поскольку питание у карты такое же. Для подключение Arduino и SD модуля нужно согласовать их уровни. Для согласования уровней могут использоваться резисторы или специальные микросхемы, иногда могут использоваться транзисторы.

В моём случае, модуль под карту microSD содержит преобразователь уровней на микросхеме LVC125A.

Внимание! Платформа Arduino DUE работает с логическими уровнями 3,3В и для работы с SD картой не требуется согласование уровней. Подключать SD карту к данной платформе нужно напрямую к SPI интерфейсу, минуя резисторы, транзисторы и микросхемы, которые принимают участие в согласовании уровней.

Подключение к Arduino.

Подключать SD модуль к Arduino будем по SPI интерфейсу. Для этого нам понадобятся выводы SCK, MISO, MOSI и CS.
В начале подключу модуль в формате SD к своему китайскому алалогу Arduino UNO.
Каждый вывод на модуле представлен двумя параллельными пинами, можно подключать к любому.

Для SPI-интерфейса у ардуино имеются специально отведённые пины, у UNO, Pro mini и Nano они одинаковые, у MEGA другие:

Пины на MEGA SPI выводы 10 53 CS 11 51 MOSI 12 50 MISO 13 52 SCK

Вывод CS можно закрепить за любым свободным пином, но тогда это изменение нужно внести в скетч. Традиционно используют пины, указанные в таблице.

Читайте также:  Как в css подключить нестандартный шрифт

На платах UNO, Nano и MEGA пины SPI-интерфейса продублированы в виде отдельного 6-контактного разъёма ISCP, можно подключаться и к нему.На плате Arduino DUE это единственные контакты SPI, к ним и нужно подключать модуль.

Подключим SD-модуль к Arduino UNO по следующей схеме. SD карту нужно отформатировать на компьютере в формате FAT16 или FAT32.

Пример 1

Библиотека «SD» и образцы скетчей, для работы с картой памяти, включены в состав Arduino IDE.

Данный скетч попробует опознать карту и если она исправна, правильно подключена и правильно отформатирована,то выдаст по ней информацию. По-умолчанию контакты SPI интерфейса сконфигурированы для Arduino UNO, для MEGA нужно будет менять номера пинов SCK, MISO и MOSI.

Обратим внимание на строку «const int chipSelect = 4;«, по-умолчанию пин CS в скетче закреплён за 4 пином на плате ардуино. Поскольку вывод CS я подключил к 10 пину, четвёрку сменю на 10.
Загружаем скетч, открываем монитор последовательного порта.

В моём случае наблюдаем надпись «. initialization failed«, это значит что возникла ошибка при инициализации карты. В подобном случае нужно проверить правильна ли вставлена карта, правильна ли SD модуль подключен к Arduino, соответствует ли номер CS пина в скетче, с номером пина на плате. В моём случае я забыл сменить в скетче номер пина CS на 10, меняем и пробуем вновь залить скетч.

Пример 2

Давайте теперь попробуем создать на SD карте текстовый файл, записать в него какую то информацию, а затем прочитать эту информацию на компьютере. Откроем скетч «ReadWrite«, из того же стандартного набора скетчей, откуда загружали скетч «CardInfo».

Что бы в этом убедится, откроем карту памяти на компьютере. На ней будет созданный файл с соответствующим содержанием.

Пример 3

С помощью скетча «ReadWrite» можно не только записывать данные в файл, но и считывать данные из файла.

Создадим через компьютер на карте памяти текстовый файл. В примере назвал его «radiolis.txt«. Библиотека для работы с SD картами не чувствительна к регистру, поэтому имя файла «radiolis.txt» и «RADIOLIS.PP.UA» это одно и то же. В созданный файл поместим какую то текстовую информацию, в данном примере я вписал имя своего сайта.

Открываем монитор последовательного порта и видим что содержимое файла «radiolis.txt» содержит текстовую информацию «radiolis.pp.ua«.

Пример 4

Давайте теперь поработаем с файлами на карте памяти через Arduino. Для этого загрузим скетч «listfiles«, с того же стандартного набора, входящего в библиотеку для работы с SD картами.

Запускаем монитор последовательного порта и видим список всех файлов, которые находятся на SD карте, в данном примере это «test.txt» и «radiolis.txt«. Цифры напротив файла это их объём.

Если на карте памяти имеются папки, то они так же будут отображаться со своим содержимым. В примере добавил с компьютера папку «primer«, а в неё поместил текстовый файл «primer_1.txt«, как видим всё отобразилось.

Источник

Подключаем SD-карту к нашему Ардуино

В большинстве проектов с Ардуино необходимо устанавливать вспомогательное хранилище для медиафайлов, будь это видео или аудио. Если возникает необходимость хранить и обрабатывать информацию, а стоковой флеш-памяти плат вам не хватает, то есть несколько решений.

Можно докупить специальную плату, обеспечивающую быстрый доступ к данным, но и стоящую не малых денег. Если же у вас нет желания тратиться, то расширить стоковую память платы можно и с arduino card SD, дабы не было проблем с записью и стиранием стоковых утилит с чипов. Однако далеко не все новички знают, как правильно подключать флешку к чипу и что для этого нужно. Давайте разберёмся во всех нюансах и узнаем, какие подводные камни такого решения вас поджидают.

Читайте также:  Как подключить пс3 к обычному телевизору

Что необходимо знать при подключении SD card к Arduino

Прежде чем подсоединять что-либо, следует изучить нюансы, которые будут подстерегать вас на каждом шагу. Первое, с чем вам придётся столкнуться, это вольтаж карт памяти, ведь они рассчитаны на 3.3 В, что является стандартом.

Неудобство заключается в том, что для записи данных необходима и соответствующая сила тока, вплоть до 100 мА, если речь о действительно больших массивах информации. Соответственно, необходимо обеспечить всю систему хорошим источником питания, но основная проблема заключается в том, что карты крайне привередливы. Если вы будете пользоваться резисторами и длинными проводниками, то скорость записи и чтения может упасть в разы ниже средних показателей, поэтому следует обзавестись небольшими коннекторами и убрать, по возможности, всё сопротивление из цепочки для питания логики.

Чтобы не сжечь всю плату, достаточно прикупить преобразователи переменного и постоянного тока, лучше всего подойдут приборы под HEF4050 и 74FHC125 базу.

Далее, учтите, что система предоставляет несколько режимов записи данных. У вас в распоряжении:

Учитывайте и формат карты, он не влияет ровным счётом ни на что, кроме размера вашей конечной поделки. Если необходимо серьёзно урезать габариты, то хорошим выбором станет microSD.

Сама по себе флешка – это небольшой чип со специально выделенными секторами, а соответственно, структур, обязательных к использованию, вы здесь не найдёте. Такой подход удобен для быстрого форматирования и сохранения данных в подходящей файловой системе.

Большинство устройств на сегодняшний день пользуются форматами NTFS, FAT32 и FAT16. Но чем сложнее система, тем больше памяти для работы arduino SD придётся выделить, что чревато последствиями в виде подлагиваний и плохой скорости отклика.

Схема подключения SD card к Arduino

Предварительно отформатировав карту памяти, приступайте к её подключению.

Платы расширений облегчат задачу, ведь они позволят урегулировать напряжение до необходимых нам 3.3 В, а контроллеры уровня преобразуют питание логики в подходящие для флешки.

Плата расширений потребуется под микроконтроллеры до 5 В, учитывайте это при её выборе. Главное достоинство Ардуино – простота, и подключение вспомогательных модулей не стало исключением. Лучшим выбором станет именно структура запуска через hardware SPI пины, дабы не усложнять новичкам жизнь. Нам потребуются 13, 12 и 11 цифровые пины, а также четвёртые, чтобы наладить «chip\slave select» цепь. Под это, зачастую, берётся 10 пин, но если вы знаете, что делаете, можете выбрать и более подходящий.

Распиновка подключения Arduino Uno к SD

Обратите внимание на то, что в зависимости от форм-фактора и типа платы Ардуино, точки подключения могут варьироваться. Например, для меги необходимо соединить цепь с 50, 51, 52 и 53 слотом.

Модуль SD card Arduino Uno Arduino Mega
VCC 3.3V или 5V (проверьте описание платы) 3.3V или 5V (проверьте описание платы)
CS 4 53
MOSI 11 51
CLK 13 52
MISO 12 50
GND GND GND

В последующие разы вы можете поэкспериментировать с последними пинами на обеих картах, но поначалу лучше выбрать именно те, что указаны выше. Так вы сможете отработать код, избавившись от нежелательных поломок и осечек, что значительно упростит задачу в будущем. Оставшиеся 5 В и GND подсоединяйте к соответствующим портам, здесь никаких особых инструкций нет.

Еще один вариант наглядной схемы:

В конце процедуры необходимо замкнуть CD в заземление, так система не сможет инициализировать карту памяти. Но, в случае необходимости, всегда можно применить резисторы в 10 кОм и вспомогательные порты, однако мы не будем останавливаться на этом пине, так как сейчас он нам не нужен.

Читайте также:  Как подключить видеокарту nvidia geforce gts 250 к компьютеру

Загрузка библиотек и запуск SD card на Arduino

Чтобы подсоединиться к SD карте и свободно передавать на неё данные, потребуется написать немало кода, однако здесь нам поможет встроенная библиотека SD.

Открыв подменю «образцов», найдите заготовку «cardinfo», именно её мы не будем использовать в качестве прописной функции при загрузке информации. Скетч пригодится лишь для проверки, опознаётся ли дополнительная память на устройстве. Проверяйте chipSelect, учитывая, что подключение идёт через 10 пин.

Если всё прошло удачно, то на экран выведется информация о типе файловой системы и объёме вашей SD-карты. Если же производитель подсунул вам не лучший продукт, могут возникнуть ошибки. Здесь проще купить новую флешку, чем бороться с ошибками файловой системы, изначально заложенными в девайс.

Когда вы получите отклик от системы, можете начинать подгружать библиотеки и нужные вам файлы. SD-карта полностью работает и подключена, однако не забудьте протестировать несколько типов файловых систем, дабы подобрать оптимальный вариант по скорости и потреблению ресурсов. В каждом конкретном случае эти параметры будут разными, поэтому не бойтесь экспериментировать.

Заключение

SD-карта – необходимый элемент любой системы, в которой вы собираетесь использовать медиафайлы. Это будет хорошим решением как для приборов под «умный дом», так и для самодельных плееров. Однако не забывайте, что качество конечного продукта приравнивается к качеству его худшего компонента, и не стоит экономить на SD-картах.

Источник

Подключение и работа с флеш картой на Arduino

Общие сведения:

Trema-модуль адаптер microSD — адаптер карт памяти microSD, который вы можете использовать для записи значений аналоговых и цифровых выводов Arduino.

Видео:

Спецификация:

Подключение:

Для удобства подключения к Arduino воспользуйтесь Trema Shield, Trema Power Shield, Motor Shield или Trema Set Shield.

Выводы Trema SD Выводы Piranha Uno/Arduino Uno Выводы Arduino Mega Выводы Arduino Leonardo
MISO 12 50 ICSP_MISO
MOSI 11 51 ICSP_MOSI
SCK 13 52 ICSP_SCK
SS(SC) 10 53 ICSP_SS
INS Любой вывод Любой вывод Любой вывод
GND GND GND GND
Vcc 5V 5V 5V

Модуль удобно подключать 5 способами, в зависимости от ситуации:

Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha UNO

Модуль можно подключить к любому из входов Trema Set Shield ( при использовании программного последовательного порта )

Используя провода «Папа — Мама», подключаем напрямую к контроллеру Arduino Mega

Используя 4 провода «Папа — Мама» и 3 провода «Мама — Мама», подключаем напрямую к контроллеру Arduino Leonardo

Питание:

Данный модуль питается от источника постоянного напряжения 5В.

Подробнее о модуле:

Модуль поддерживает карты microSD. Для работы с библиотекой Arduino карта должна быть отформатирована в формате FAT16 или FAT32.

У модуля есть возможность снизить энергопотребление путём отключения индикаторных светодиодов. Это производится посредством удаления двух напаянных джамперов на нижней стороне платы:

На модуле имеется вывод «INS«, определяющий наличие карты.

Примеры:

Внимание: во избежание потери данных рекомендуем извлекать microSD карту во время загрузки скетча в микроконтроллер.

Инициализация карты, создание и запись файла

Чтение из файла в последовательный порт

Чтение из файла в переменные и удаление файла

Информация о карте и листинг файлов, используя утилитные функции библиотеки SD

Листинг файлов без использования утилитных функций

Создание лог-файла с использованием часов реального времени и датчика звука.

Описание функций библиотеки:

На заметку: Библиотека SD входит в стандартный набор библиотек Arduino

Источник