Два акселерометра по шине SPI
- Войдите на сайт для отправки комментариев
Сб, 10/07/2021 - 11:44
Здравствуйте, имеются два акселерометра ADXL362, как их обоих подключить, для синхронной передачи данных измерений, шина SPI, пытался сделать из примера SimpleRead для ADXL362, т.к. вообще не разбираюсь. Можно ли на один канал передавать измерения с обоих датчиков? Как переназначать пины для SPI? И как вообще подключить, пробовал последовательную и параллельную схему. Читал про настройку регистров вообще не понимаю. В общем не знаю как подключить аппаратно и программно оба. Заранее спасибо.
Читай про SPI и особенно про ногу SS (Slave Select), для чего она нужна, как ты думаешь?
Я читал про то, что его надо в LOW ставить, для открытия, но просто так оно почему то не делается, в библиотеке ADXL362 есть специальная функция begin, я пробовал писать код для обоих акс-ов с разными переменными, но почему то не хочет так работать, а с помощью digitalWrite(10,LOW) к примеру, не хочет вообще работать.
Ну, ни схемы, ни кода я не видел, поэтому ХЗ
я пробовал писать код для обоих акс-ов с разными переменными, но почему то не хочет так работать, а с помощью digitalWrite(10,LOW) к примеру, не хочет вообще работать.
потому что надо не с " разными переменными", а разными пинами! Поэтому неудивительно, что просто digitalWrite(10,LOW) не работает.
Вам посоветовали прочитать про SPI, похоже вы ничего не поняли, читайте еще.
С разными пинами для каждого делал, но дело в том, что при команде digitalWrite не работает совсем.
И можно, пожалуйста, подсказать по самой SPI, можно ли передавать данные от двух датчиков синхронно по одному каналу MISO, c разными каналами SS, или же надо наоборот, так как, по идее, SlaveSelect можно же один использовать, если данные нужны с обоих одновременно?
Я читал про то, что его надо в LOW ставить
Нихера ты не читал, самому его в LOW ставить не надо, это делает за тебя библиотека.
Я знаю, что делает сама библиотека, я же и говорю, что еще пробовал вручную, для двоих по очереди, думал так можно.
Они и так трехосевые. Если ты собрался больше одного в устройстве использовать, то 99 ты что-то делаешь не так.
Через библиотеку это делается с помощью begin(номер пина), я писал две таких команды с разными переменными для каждого акселя (указано в коде), я думаю, я просто неправильно обращаюсь к акселерометру, так как при двух функциях begin, прога использует только последнюю.
Два акселерометра необходимы для измерения разности фаз при их ускорении.
Хорошо. Где
в твоём коде?
Ты сначала попробуй с одного даччика чонить правильное прочитать, потом второй лепить будешь
x1.begin(10)
x2.begin(9)
Взято из примера SimpleRead для ADXL362
измерения разности фаз при их ускорении.
Что бы этот набор слов мог значить?
С одного все хорошо, но вот с двумя не получается, сейчас еще как нибудь попробую.
Ну типа два тела, между ними сила трения, если ускорение одновременно у двух тел, значит разность фаз 0, если одно тело относительно другого сместилось, то будет разность фаз, датчики на каждом теле.
Вы правда думаете, что кто-то будет это читать?
Может таки окажете нам милость, вставите код правильно?
x1.begin(10)
x2.begin(9)
Взято из примера SimpleRead для ADXL362
как ты думаешь, без инициализации самой шины SPI, на ней будет работать хоть одно устройство?
С одного все хорошо, но вот с двумя не получается, сейчас еще как нибудь попробую.
Вывсёврёти!!!
Эх горе, горькое. Как же так. Объявляется х1 а в программе xl. Это так задумано? Как же компилируется то? А впрочем и digitalWrite отсутствует, хотя перед обращением для читаемого надо писать LOW а для не читаемого НIGH. И наоборот.
Фух, подключил, но значения кривоватые, думаю, далее с регистрами надо разбираться, как настраивать и т.д. Спасибо.