Уважаемые пользователи! Наш сайт и форум содержится на средства полученные от рекламы. Если вы хотите и дальше продолжать общаться, скачивать, и т.п. пожалуйста отключите блокировку рекламы для нашего сайта/форума. Можно и покликать по рекламным ссылкам, так будут больше выплаты. Спасибо за понимание!

Чтение данных с SD в ардуино

Пользовательские блоки дающие дополнительные возможности при работе с EEPROM и SD картами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Ingwar
Капитан
Сообщения: 941
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 47
Откуда: Ленобласть
Имя: Игорь

Чтение данных с SD в ардуино

#1

Сообщение Ingwar » 11.01.2019{, 10:59}

Выгружаем содержимое заданного файла не в порт, а в переменную (string).
Подробнее в описании.
Тестил на Mega и NANO.
readSD_nano.flp
(83.97 КБ) 140 скачиваний
read_SD_(CODE).ubi
(41.72 КБ) 120 скачиваний
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
Alias
Лейтенант
Сообщения: 446
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 34
Откуда: Rus44
Имя: Michael
Контактная информация:

Чтение данных с SD в ардуино

#2

Сообщение Alias » 11.01.2019{, 13:12}

Не удалось проверить на Нано вживую, тк памяти мало. Проверил на пустом проектике, где только две булевых переменных и одна строковая:
СпойлерПоказать
Скетч использует 10156 байт (33%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 860 байт (41%) динамической памяти, оставляя 1188 байт для локальных переменных. Максимум: 2048 байт.
Это библиотеки столько жрут?

Ingwar
Капитан
Сообщения: 941
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 47
Откуда: Ленобласть
Имя: Игорь

Чтение данных с SD в ардуино

#3

Сообщение Ingwar » 11.01.2019{, 14:08}

Alias писал(а):
11.01.2019{, 13:12}
Это библиотеки столько жрут?
Ага.
Пустой проект со стандартным блоком выгрузки файла с SD
СпойлерПоказать
Скетч использует 7738 байт (25%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 835 байт (40%) динамической памяти, оставляя 1213 байт для локальных переменных. Максимум: 2048 байт.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

aska
Рядовой
Сообщения: 23
Зарегистрирован: 06.02.2019{, 10:57}
Репутация: 2
Имя: Андрей

Чтение данных с SD в ардуино

#4

Сообщение aska » 11.02.2019{, 21:05}

Блок безусловно полезный. Я так понимаю он считывает файл пакетом т.е. все строки разом. Сколько бы их там не было, хоть 10 000.
А возможно ли считывать по одной строке. Что бы информацию каждой строки можно было обработать и перейти на следующую.
Например.
P1000
P2000
P3000
и т.д.
Допустим, что 1000, 2000, 3000 это милисекунды. Счетчик отсчитал, читаем следующую строку и т.д. :smile37:

Ingwar
Капитан
Сообщения: 941
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 47
Откуда: Ленобласть
Имя: Игорь

Чтение данных с SD в ардуино

#5

Сообщение Ingwar » 11.02.2019{, 23:08}

aska писал(а):
11.02.2019{, 21:05}
Что бы информацию каждой строки можно было обработать и перейти на следующую.
Например.
P1000
P2000
P3000
и т.д.
Допустим, что 1000, 2000, 3000 это милисекунды. Счетчик отсчитал, читаем следующую строку и т.д.
Ну если только для этого алгоритма, то можно парсить данные написанные в одну строку другим ПБ viewtopic.php?f=85&t=4778, а уже потом их применять.
В принципе
aska писал(а):
11.02.2019{, 21:05}
А возможно ли считывать по одной строке.
возможно. Нужно в блоке добавить условие и читать пока не встретите какой-то признак по которому следует прекратить чтение (например перенос строки). Но я не программист. Вдруг кто то из знающих модифицирует/сделает другой ПБ. Или как появится время попробую прикрутить сам.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

aska
Рядовой
Сообщения: 23
Зарегистрирован: 06.02.2019{, 10:57}
Репутация: 2
Имя: Андрей

Чтение данных с SD в ардуино

#6

Сообщение aska » 12.02.2019{, 06:37}

Вот и я не программист. Понимаю, что нужно сделать, а как сделать не знаю. :D . Тоже подумаю.

mihail66
Рядовой
Сообщения: 44
Зарегистрирован: 03.10.2019{, 10:19}
Репутация: 0
Имя: Михаил

Чтение данных с SD в ардуино

#7

Сообщение mihail66 » 24.05.2020{, 19:20}

Всем привет! У меня вопрос не про чтение, а про запись данных на SD карту. Но поскольку такой темы нет, то поинтересуюсь в этой.
Вот такой у меня вопрос, во встроенном блоке "Запись переменной на SD карту" какой максимальной длины можно записать комментарий по входу "Comment"?

Аватара пользователя
AlexCrane
Лейтенант
Сообщения: 364
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 75
Откуда: Ульяновск
Имя: Александр

Чтение данных с SD в ардуино

#8

Сообщение AlexCrane » 24.05.2020{, 20:58}

mihail66, по максимуму 65536, на практике ограничены памятью контроллера (уно, нано - 2000 байт)
Если не знаю, то не скажу. Если скажу, то сначала проверю...

mihail66
Рядовой
Сообщения: 44
Зарегистрирован: 03.10.2019{, 10:19}
Репутация: 0
Имя: Михаил

Чтение данных с SD в ардуино

#9

Сообщение mihail66 » 24.05.2020{, 21:07}

У меня по входу "Comment" пишется максимум 13 символов (на картинке это столбец E). А мне нужно записать 15 знакомест. Но вместо этого пишется просто пустота. Определил экспериментально.
13-комментов.png

User8
Лейтенант
Сообщения: 336
Зарегистрирован: 12.06.2017{, 14:44}
Репутация: 86
Имя: Евгений

Чтение данных с SD в ардуино

#10

Сообщение User8 » Вчера{, 17:34}

Блок чтения построчно с sd карты, можно выбрать нужную строку.
В параметрах блока нужко указать пин подключения к sd карте.
getLine - при подаче единицы, будет искать нужную строку. (используйте через блок rTrig);
needLine - указать нужную строку, начиная с 0;
fileName - имя файла на sd карте;
Выход lineString - найденная строка;
Вложения
SD_Card_Read_v1.5_(CODE).ubi
(24.57 КБ) 6 скачиваний

Ответить

Вернуться в «EEPROM и SD карты»