首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Ardunio MKR更改ADXL355的输出数据速率(I2C)

如何使用Ardunio MKR更改ADXL355的输出数据速率(I2C)
EN

Stack Overflow用户
提问于 2019-06-12 07:08:27
回答 1查看 1.1K关注 0票数 1

我在测试中使用了1-4 ADXL355三轴加速度计(https://www.analog.com/media/en/technical-documentation/data-sheets/adxl354_355.pdf)和Arduino MKR WIFI1010。理想情况下,我希望采样频率接近500 Hz,无论是使用1个传感器还是使用TCA9548A I2C多路复用器测试4个传感器。目前,我正在收集大约200赫兹与1个传感器或50赫兹与所有4个传感器(不同的代码用于此设置)。ADXL355的默认频率是500 Hz,这使得我无法以该速率采样更奇怪。

我试着把我的波特率从9600提高到128000。我尝试使用Wire.setClock()来最大化I2C速度,使传感器和Arduino可以在3.4 the的最大频率下工作。虽然我的大部分测试都是在串行监视器上进行的,但我也曾一度尝试过使用屏蔽将其保存到micro SD。我更改了控制输出速率的Wire.write(),但是即使我将其设置为4 4kHz设置(Wire.write(0x00)),我仍然以~200 am进行采样。

代码语言:javascript
复制
#include <Wire.h>
#define ADXL 0x1D                                       //Datasheet pages 4 and 7 have info that will be necessary for future development. 

void setup() {
  Wire.begin();                                         // initiate the accelerometer   
  Wire.setClock(3400000L);
  Serial.begin(128000);                                   // initiate the serial monitor  
  delay(100);   
  Wire.beginTransmission(ADXL);                         //set STBY bit 0 to low / turn on MEASURE mode 
  Wire.write(0x2D);   
  Wire.write(0x00);   
  Wire.endTransmission();  
  delay(100); 
  Wire.beginTransmission(ADXL);                         //set RANGE to +/- 2g  pg. 37 of data sheet
  Wire.write(0x2C);   
  Wire.write(0x01);   
  Wire.endTransmission(); 
  delay(100);
  Wire.beginTransmission(ADXL);                         //set data rate to 4000HZ page 37 
  Wire.write(0x28);
  Wire.write(0x00);
  Wire.endTransmission();
  delay(100);
}

我希望得到500 am (或4000 am,就像我现在的代码),但我得到了200 am,并且改变设置的数据速率似乎不会影响结果。任何帮助提高我的样本数据率的人都将不胜感激!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-11-13 16:07:29

关于I2C波特率,您使用的是数据表中允许的最大值,但您必须将寄存器0x2c的第8位设置为1。

关于odr,您使用的寄存器和值是正确的,并且在我的设置(esp32-wrover + micropython)中可以正常工作。如果我是你,我会尝试将odr设置为可能的最低值(3.906 Hz),看看它是否工作,例如读取fifo中的所有值,然后检查它重新填充的速度,然后随着频率的增长而增长。

考虑到在我的经验中,我不能使用I2C超过2 4kHz (我只在波特率最大值较低的ADXL345上尝试):为了达到4 4kHz,我会使用SPI,即使这样,代码也必须非常优化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56552717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档