Модуль SD-карт

Рассмотрим работу с SD-картами. В этом нам поможет вот такой модуль:

sd module

Как вы видите, подключается он по интерфейсу SPI (контакты SCK, MISO, MOSI). Питать его можно как от 3,3 вольт, так и от 5. Также, нужно подключить контакт CS к одному из портов. На Arduino UNO SCK выведен на 13 пин, MISO на 12 и MOSI на 11. CS подключим к 4 порту и запитаем все от 5 вольт.

arduino_sd_module_connection

Для программирования воспользуемся встроенной библиотекой SD. Для начала получим информацию по карточке и список файлов на ней. Для этого откройте примеры -> SD -> CardInfo.

Загрузите скетч и откройте монитор последовательного порта. По моей карте выдается такая информация:

cardinfo

Файловая система FAT32, размер 1 ГБ, есть файл 1.TXT, 4 файла WAV, 2 системных файла и еще один файл TXT с именем на русском языке.

Код примера CardInfo:

Теперь создайте текстовый файл (например, с помощью блокнота) на вашей карте и впишите туда цифры 12345.

Напишем программу для считывания файла и вывода информации в последовательный порт.

Если все сделано правильно, то в мониторе порта вы увидите 12345.

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

Подключим 5 светодиодов к портам 5,6,7,8,9. Запишите любую последовательность этих цифр в текстовом файле. Не ставьте пробелы, «энтеры» и другие символы, только данные цифры. Для считывания символа используется команда myFile.read() и сохраняется он как символ, нам же нужно получать их как целые числа. Если мы выведем символ как int, то увидим его код в таблице ASCII.

Картинки по запросу ASCII

Колонка Char — это символ, а Decimal и Hex — коды в десятичной и шестнадцатиричной системе соответственно. Так, цифре 0 соответствует код 48, 1 — 49 и т.д. Чтобы получить цифру мы можем из кода вычитать 48. После чего будем зажигать светодиод на полученном порту на 1 секунду, а дальше считывать следующий символ.

Код программы:

Теперь светодиоды моргают в последовательности, которую мы задали в текстовом файле.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *