Skip to main content

Grove - 三轴数字加速度计 200g (ADXL372)

pir

您可以在我们的网站上找到各种三轴加速度计,以满足不同场景和需求。这次,我们为您带来了工业级、高稳定性、高精度和低功耗的 ADI ADXL 系列三轴加速度计。

Grove - 三轴数字加速度计 ±200g (ADXL372) 是一款超低功耗数字输出 MEMS 加速度计,它可以以 100 mg/LSB 的比例因子提供 12 位输出。该传感器最显著的特点是其超低功耗(测量模式下仅 22μA)和大测量范围(±200g)。所有数据通过 Grove I2C 接口输出,I2C 地址可更改。为了满足更广泛的测量需求,采样率可选择 400Hz/800Hz/1600Hz/3200Hz/6400Hz,带宽可选择 200Hz/400Hz/800Hz/1600Hz/3200Hz。除了用于加速度测量外,您还可以使用该模块进行冲击和震动检测。

ADI ADXL 系列加速度计包括四款产品,可满足您不同的测量范围和输出需求:

产品测量范围输出接口功耗
Grove - 三轴模拟加速度计 ±20g (ADXL356B)±10 / ±20g模拟测量模式:150 μA / 待机模式:21 μA
Grove - 三轴模拟加速度计 ±40g (ADXL356C)±10g / ±40g模拟测量模式:150 μA / 待机模式:21 μA
Grove - 三轴数字加速度计 ±40g (ADXL357)±10g@51200 LSB/g / ±20g@25600 LSB/g / ±40g@12800 LSB/g数字 I2C测量模式:200μA
Grove - 三轴数字加速度计 ±200g (ADXL372)±200g数字 I2C测量模式:22μA

pir

特性

  • 大量程测量:±200g
  • 超低功耗:3200 Hz ODR 时仅 22 μA
  • 可选的过采样比和带宽
  • 深度嵌入式 FIFO,最小化主处理器负载
  • 内置 12 位模数转换器 (ADC)

应用

  • 便携式物联网 (IoT) 边缘节点
  • 脑震荡和头部创伤检测
  • 冲击和震动检测
  • 资产健康评估

引脚图

pir

pir

规格

参数
供电电压3.3V / 5V
工作环境温度-40 – 125℃
XOUT、YOUT、ZOUT 的灵敏度 / (与 V1P8ANA 成比例)±50mg/°C(正常模式) / ±35mg/°C(低噪声模式)
温度引起的灵敏度变化±0.01%/°C (TA = −40°C 至 +125°C)
0g 偏移±1g(典型值)
输出接口数字

支持的平台

ArduinoRaspberry Pi

pir

pir

入门指南

使用 Arduino

所需材料

Seeeduino V4.2Base ShieldGrove 三轴加速度计 ADXL372

pir

pir

pir

立即购买立即购买立即购买

此外,您可以考虑我们的新产品 Seeeduino Lotus M0+,它相当于 Seeeduino V4.2 和 Base Shield 的组合。

note

1 请轻轻插入 USB 数据线,否则可能会损坏接口。请使用内部有 4 根线的 USB 数据线,2 根线的 USB 数据线无法传输数据。如果您不确定自己拥有的线缆,可以点击 这里 购买。

2 每个 Grove 模块在购买时都会附带一根 Grove 数据线。如果您丢失了 Grove 数据线,可以点击 这里 购买。

硬件连接

  • 步骤 1. 将 Grove - 三轴模拟加速度计 ±200g (ADXL372) 连接到 Base Shield 的 I2C 接口。

  • 步骤 2. 将 Grove - Base Shield 插入 Seeeduino。

  • 步骤 3. 使用 USB 数据线将 Seeeduino 连接到电脑。

pir

软件

note

如果这是您第一次使用 Arduino,我们强烈建议您在开始之前查看 Arduino 入门指南

  • 步骤 1. 从 Github 下载 Seeed_ADXL_372 库

  • 步骤 2. 参考 如何安装库 为 Arduino 安装库。

  • 步骤 3. 然后打开 example/ADXL_372/continuous_reading

pir

//continuous_reading.ino

#include "Wire.h"
#include "adxl372.h"

#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SERIALUSB
#define SYS_VOL 3.3
#else
#define SERIAL Serial
#define SYS_VOL 5
#endif


float cali_data[3];

#define CALI_BUF_LEN 15
#define CALI_INTERVAL_TIME 250

float cali_buf[3][CALI_BUF_LEN];


ADXL372 acc;
xyz_t xyz;

float deal_cali_buf(float *buf)
{
float cali_val = 0;

for(int i = 0;i < CALI_BUF_LEN;i++)
{
cali_val += buf[i];
}
cali_val = cali_val/CALI_BUF_LEN;
return (float)cali_val;
}


void calibration(void)
{
SERIAL.println("请将模块水平放置!");
delay(1000);
SERIAL.println("开始校准........");


for(int i=0;i<CALI_BUF_LEN;i++)
{
while (!(acc.status() & DATA_READY));
acc.read(&xyz);
cali_buf[0][i] = xyz.x;
cali_buf[1][i] = xyz.y;
cali_buf[2][i] = xyz.z;
delay(CALI_INTERVAL_TIME);
SERIAL.print('.');
}
SERIAL.println('.');
for(int i=0;i<3;i++)
{
cali_data[i] = deal_cali_buf(cali_buf[i]);
if(2 == i){

cali_data[i] -= 10;
}
SERIAL.println(cali_data[i]);
}
SERIAL.println("校准完成!!");
}


void setup() {
SERIAL.begin(115200);

acc.begin();

SERIAL.println(acc.id(), HEX);
acc.timing_ctrl(RATE_400);
acc.measurement_ctrl(BW_200, true);
acc.power_ctrl(MEASUREMENT_MODE);
acc.setActiveTime(10);

calibration();
}

void loop() {
if (acc.status() & DATA_READY) {
acc.read(&xyz);
SERIAL.print("X 轴加速度 = ");
SERIAL.print((xyz.x - cali_data[0]) / 10.0);
SERIAL.println(" g ");
SERIAL.print("Y 轴加速度 = ");
SERIAL.print((xyz.y - cali_data[1]) / 10.0);
SERIAL.println(" g ");
SERIAL.print("Z 轴加速度 = ");
SERIAL.print((xyz.z - cali_data[2]) / 10.0);
SERIAL.println(" mg ");
}
SERIAL.println(" ");
SERIAL.println(" ");
delay(1000);
}
  • 步骤 4. 上传示例代码。如果您不知道如何上传代码,请查看 如何上传代码

  • 步骤 5. 打开 Arduino IDE 的 串口监视器,点击 工具->串口监视器 或同时按下 ++ctrl+shift+m++ 键。将波特率设置为 115200

  • 步骤 6. 校准 等待校准,仅需几秒钟即可完成校准。

  • 步骤 7. 现在您可以使用此传感器,输出结果如下:

请将模块水平放置!
开始校准........
................
18.07
-10.73
-40.13
校准完成!!
X 轴加速度 = 0.09 g
Y 轴加速度 = 0.17 g
Z 轴加速度 = 1.31 mg


X 轴加速度 = -0.11 g
Y 轴加速度 = -0.03 g
Z 轴加速度 = 1.31 mg

在线原理图查看器

资源

技术支持与产品讨论

感谢您选择我们的产品!我们致力于为您提供多种支持,以确保您使用我们的产品时获得最佳体验。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...