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

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

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

Сообщение Ingwar »

Выгружаем содержимое заданного файла не в порт, а в переменную (string).
Подробнее в описании.
Тестил на Mega и NANO.
readSD_nano.flp
read_SD_(CODE).ubi
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

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

Сообщение Alias »

Не удалось проверить на Нано вживую, тк памяти мало. Проверил на пустом проектике, где только две булевых переменных и одна строковая:
[spoiler]Скетч использует 10156 байт (33%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 860 байт (41%) динамической памяти, оставляя 1188 байт для локальных переменных. Максимум: 2048 байт.[/spoiler]
Это библиотеки столько жрут?
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

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

Сообщение Ingwar »

Alias писал(а): 11 янв 2019, 13:12Это библиотеки столько жрут?
Ага.
Пустой проект со стандартным блоком выгрузки файла с SD

[spoiler]Скетч использует 7738 байт (25%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 835 байт (40%) динамической памяти, оставляя 1213 байт для локальных переменных. Максимум: 2048 байт.[/spoiler]
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
aska
Рядовой
Сообщения: 23
Зарегистрирован: 06 фев 2019, 10:57
Имя: Андрей

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

Сообщение aska »

Блок безусловно полезный. Я так понимаю он считывает файл пакетом т.е. все строки разом. Сколько бы их там не было, хоть 10 000.
А возможно ли считывать по одной строке. Что бы информацию каждой строки можно было обработать и перейти на следующую.
Например.
P1000
P2000
P3000
и т.д.
Допустим, что 1000, 2000, 3000 это милисекунды. Счетчик отсчитал, читаем следующую строку и т.д. :smile37:
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

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

Сообщение Ingwar »

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

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

Сообщение aska »

Вот и я не программист. Понимаю, что нужно сделать, а как сделать не знаю. :D . Тоже подумаю.
mihail66
Рядовой
Сообщения: 47
Зарегистрирован: 03 окт 2019, 10:19
Имя: Михаил

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

Сообщение mihail66 »

Всем привет! У меня вопрос не про чтение, а про запись данных на SD карту. Но поскольку такой темы нет, то поинтересуюсь в этой.
Вот такой у меня вопрос, во встроенном блоке "Запись переменной на SD карту" какой максимальной длины можно записать комментарий по входу "Comment"?
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]mihail66[/ref], по максимуму 65536, на практике ограничены памятью контроллера (уно, нано - 2000 байт)
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
mihail66
Рядовой
Сообщения: 47
Зарегистрирован: 03 окт 2019, 10:19
Имя: Михаил

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

Сообщение mihail66 »

У меня по входу "Comment" пишется максимум 13 символов (на картинке это столбец E). А мне нужно записать 15 знакомест. Но вместо этого пишется просто пустота. Определил экспериментально.
13-комментов.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

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

Сообщение User8 »

Блок чтения построчно с sd карты, можно выбрать нужную строку.
В параметрах блока нужко указать пин подключения к sd карте.
getLine - при подаче единицы, будет искать нужную строку. (используйте через блок rTrig);
needLine - указать нужную строку, начиная с 0;
fileName - имя файла с расширением на sd карте;
Выход lineString - найденная строка;
У вас нет необходимых прав для просмотра вложений в этом сообщении.
vladimirle
Рядовой
Сообщения: 16
Зарегистрирован: 27 дек 2015, 19:25
Откуда: Москва
Имя: Владимир

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

Сообщение vladimirle »

User8 писал(а): 03 июл 2020, 17:34 Блок чтения построчно с sd карты, можно выбрать нужную строку.
В параметрах блока нужко указать пин подключения к sd карте.
getLine - при подаче единицы, будет искать нужную строку. (используйте через блок rTrig);
needLine - указать нужную строку, начиная с 0;
fileName - имя файла с расширением на sd карте;
Выход lineString - найденная строка;
Подскажите, пожалуйста, какое расширение файла допускается? И если есть возможность, то хотелось бы иметь описание данного ФБ :yes:
Serhio44
Рядовой
Сообщения: 22
Зарегистрирован: 12 окт 2020, 16:21
Откуда: Шизино
Имя: Сергей
Благодарил (а): 3 раза

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

Сообщение Serhio44 »

User8 писал(а): 03 июл 2020, 17:34 Блок чтения построчно с sd карты
Уважаемый User8,
Могли бы вы немножко расширить функционал данного блока? :smile453:
Все тоже самое, только вместо вывода битов выводить значения (Integer). Исходный файл аналогичен файлу загрузки для стандартного блока "коммандоаппарат" с расширением ххх.csv
Использование массива коммандоаппарата в процессоре (ограничено объемом памяти) не позволяет использовать большие-большие массивы, ну и крайне неудобно в коммандоаппарате заменять массив, поскольку при замене массива происходит отключение всех выходов и приходится каждый раз при этом муторно переподключать все выходы коммандоаппарата.

заранее благодарен

вроде разобрался. только .csv не читает
uglerod
Рядовой
Сообщения: 78
Зарегистрирован: 27 ноя 2016, 18:32

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

Сообщение uglerod »

Здравствуйте! Вопрос к знатокам в этой теме- стоит задача записи чисел (integer) на SD карту по имени файла , а при чтении выбранного файла вывести в переменную последнее записанное значение. Буду очень благодарен за помощь.
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя