Страница 1 из 1

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

Добавлено: 11 янв 2019, 10:59
Ingwar
Выгружаем содержимое заданного файла не в порт, а в переменную (string).
Подробнее в описании.
Тестил на Mega и NANO.
readSD_nano.flp
read_SD_(CODE).ubi

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

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

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

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

[spoiler]Скетч использует 7738 байт (25%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 835 байт (40%) динамической памяти, оставляя 1213 байт для локальных переменных. Максимум: 2048 байт.[/spoiler]

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

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

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

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

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

Добавлено: 12 фев 2019, 06:37
aska
Вот и я не программист. Понимаю, что нужно сделать, а как сделать не знаю. :D . Тоже подумаю.

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

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

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

Добавлено: 24 май 2020, 20:58
AlexCrane
[ref]mihail66[/ref], по максимуму 65536, на практике ограничены памятью контроллера (уно, нано - 2000 байт)

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

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

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

Добавлено: 03 июл 2020, 17:34
User8
Блок чтения построчно с sd карты, можно выбрать нужную строку.
В параметрах блока нужко указать пин подключения к sd карте.
getLine - при подаче единицы, будет искать нужную строку. (используйте через блок rTrig);
needLine - указать нужную строку, начиная с 0;
fileName - имя файла с расширением на sd карте;
Выход lineString - найденная строка;

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

Добавлено: 09 фев 2021, 18:38
vladimirle
User8 писал(а): 03 июл 2020, 17:34 Блок чтения построчно с sd карты, можно выбрать нужную строку.
В параметрах блока нужко указать пин подключения к sd карте.
getLine - при подаче единицы, будет искать нужную строку. (используйте через блок rTrig);
needLine - указать нужную строку, начиная с 0;
fileName - имя файла с расширением на sd карте;
Выход lineString - найденная строка;
Подскажите, пожалуйста, какое расширение файла допускается? И если есть возможность, то хотелось бы иметь описание данного ФБ :yes:

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

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

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

вроде разобрался. только .csv не читает

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

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