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

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

Добавлено: 11.01.2019{, 10:59}
Ingwar
Выгружаем содержимое заданного файла не в порт, а в переменную (string).
Подробнее в описании.
Тестил на Mega и NANO.
readSD_nano.flp
(83.97 КБ) 316 скачиваний
read_SD_(CODE).ubi
(41.72 КБ) 275 скачиваний

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 24.05.2020{, 20:58}
AlexCrane
mihail66, по максимуму 65536, на практике ограничены памятью контроллера (уно, нано - 2000 байт)

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

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

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

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

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

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

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

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

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

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

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

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