Запись данных с нескольких датчиков в пакетном режиме в ардуино

Мне нужна помощь в разработке простого скетч, который может одновременно считывать данные с 3 аналоговых акселерометров и отправлять их в "пакетном режиме" для хранения на SD-карте, чтобы уменьшить эффект задержки.

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

Ваша помощь будет очень ценна.

То, что я имела в виду, когда режим серийной съемки состоит в том, что ускорение данные из всех трех датчиков, подключенных к Arduino должны быть сохранены в файл на SD-карте (временную меру, как я должен отправить эти данные через Bluetooth к базовой станции, как я строю систему, чтобы иметь возможность получать больше данных с нескольких ардуино).

Хотя между каждым считыванием данных с трех датчиков будет задержка примерно в 1/10 секунды, идея заключается в том, чтобы иметь возможность считывать и записывать данные в этом упомянутом одновременном пакетном режиме с высокой частотой дискретизации (она будет отрегулирована с помощью осциллографа на более позднем этапе), чтобы предотвратить потерю или разбиение данных.

Вот ссылка на таблицу данных по запросу.

, 👍1

Обсуждение

Нам действительно нужно больше информации здесь - что означает пакетный режим? Не могли бы вы добавить ссылку на таблицу данных акселерометра? Пожалуйста, сделайте это, отредактировав исходный ответ, а не добавив комментарий, так как это затрудняет чтение вопроса., @stefandz

Не знаю, в чем тут трудность. Вы читаете некоторые датчики, собираете данные, а затем записываете строку текста в файл, верно?, @Nick Gammon

Да, это основная идея. Но я обнаружил, что начал терять данные, когда добавил в скетч дополнительные датчики MMA7361, поэтому совет, который я получил, состоял в том, чтобы отредактировать свой скетч, чтобы я мог отправлять каждый набор данных "пакетами" до того, как текущие данные будут считаны, тем самым опустошая память от любых данных, чтобы избежать ошибок, возникающих в результате накопления данных. Я использовал функцию задержки, чтобы гарантировать, что все данные будут прочитаны и отправлены до того, как новый набор будет прочитан снова, но увеличение частоты дискретизации платы приводит к тому, что в текущем состоянии скетча большие куски данных теряются в течение определенного периода, @dragondada


1 ответ


1

Вместо этого вам нужно объявить буфер массива типа данных, который вам нужно отправить, и отправить его по последовательному каналу. Буфер массива может быть любой длины по вашему выбору, затем вы повторяете цикл for до тех пор, пока не будет считано все содержимое буфера, что, по сути, является требуемым режимом пакетной обработки.

,