Два акселерометра ADXL362 по шине SPI
- Войдите на сайт для отправки комментариев
Пт, 30/07/2021 - 15:57
Подключил два акселерометра, проблема в том, что первый акселерометр влияет на значения второго(на графике), второй работает нормально, но рывками, при том что первый неподвижен, если двигать первый, значения второго становятся как у первого, а он даже не двигается, кто хорошо разбирается в SPI, подскажите.
#include <LowPower.h> #include <SPI.h> #include <ADXL362.h> ADXL362 x1; ADXL362 x2; int SS1 = 9; int SS2 = 8; int XData; int XData2; void setup() { Serial.begin(9600); x1.begin(SS1); // инициализация первого SPI.setDataMode(3); x1.beginMeasure(); x1.SPIwriteOneRegister(0x2C, 0x57); x2.begin(SS2); // инициализация второго SPI.setDataMode(3); x2.beginMeasure(); x2.SPIwriteOneRegister(0x2C, 0x57); Serial.print("XData XData2"); } void loop() { digitalWrite(SS1, LOW); // Чтение с первого SPI.transfer(0x0B); SPI.transfer(0x0E); XData = SPI.transfer(0x00); XData = XData + (SPI.transfer(0x00) << 8); digitalWrite(SS1, HIGH); delay(10); digitalWrite(SS2, LOW); // Чтение со второго SPI.transfer(0x0B); SPI.transfer(0x0E); XData2 = SPI.transfer(0x00); XData2 = XData + (SPI.transfer(0x00) << 8); digitalWrite(SS2, HIGH); Serial.print(XData); // Вывод значений Serial.print(" "); Serial.println(XData2); delay(10); }А вы точно увепены что а Setup не надо дергать SS1 и SS2?
забавный Вы мужик. У Вас же была уже эта тема ( http://arduino.ru/forum/programmirovanie/dve-nezavisimye-shiny-spi-dlya-sinkhronnoi-peredachi-dannykh ). Я задал Вам кучу вопросов. Вы на них наплевали и завели новую тему. Думаете здесь Вам что-то другое ответят? Без схемы? Без подробного описания проблемы?
Меня больше интересует, почему инициализация идёт через библиотеку, а дальше работа через SPI.
Почему такой запрос, а не :
x1.SPIreadOneRegister(0x0E);
Или
x1.SPIreadTwoRegister(0x0E);
?
В исходники библиотеки хотя бы заглядывать были попытки ?
Потому что очередной соединитель кодов.
Накой их соединять ?
Все есть в примерах библиотеки ...
На той, что не умеешь их читать и писать, вот и соединяешь. Ты, будто, первый день на форуме.
На той, что не умеешь их читать и писать, вот и соединяешь. Ты, будто, первый день на форуме.
Берешь пример из библиотеки и множишь сущности.
Сам такой был.
Что такое сущности? Напиши мне пример.
По поводу кода, это я уже изменял некоторые настройки для SPI, проблема то в том, почему показания первого влияют на второй.
А что получается, если физически отключить один или другой?
С тем же кодом, если ведущий отключить (который влияет), то второй нормально работает, так же как и при работе обоих если ведущим не двигать.
Как понял дело в самом железе, а именно в передаче сигналов. Есть кто прям шарит шарит?
С тем же кодом, если ведущий отключить (который влияет), то второй нормально работает, так же как и при работе обоих если ведущим не двигать.
Вообще-то полный ответ должен содержать 16 позиций, а не одну-две.