ESP8266-Arduino编程实例-BMA400加速度传感器驱动

BMA400加速度传感器驱动

1、BMA400介绍

BMA400 是第一款真正的超低功耗加速度传感器,不会影响性能。 BMA400 具有 12 位数字分辨率、连续测量和定义的可选带宽以及超低功耗,允许对三个垂直轴上的加速度进行低噪声测量。 因此,BMA400 可以感应倾斜、方向、标签/双标签,并通过活动识别实现即插即用计步,特别适用于需要较长电池寿命的可穿戴设备。

由于连续测量原理和始终定义的带宽,BMA400 是智能家居应用的理想解决方案,例如智能室内气候系统和智能家居安防系统。 在后者中,BMA400 可以区分真实的警报情况,例如碎玻璃和来自随机振动的错误信号。 因此,新的加速度传感器避免了误报。

在这里插入图片描述

BMA400具有如下特性:

  • 测量范围:±2 g, ±4 g, ±8 g, ±16 g
  • 数字分辨率:12bit
  • 输出数据速率 (ODR) :12.5 Hz 至 800 Hz
  • 低路径滤波器带宽:可选 0.48xODR 或 0.24xODR
  • 电流消耗(由于连续测量而与 ODR 无关):

最大限度。 性能:14.5μA
典型用例:5.8 μA
低功耗用例:3.5μA

  • 噪声密度:

最大限度。 性能:180 μg/√Hz (Z: x 1.45)
典型用例:300 μg/√Hz (Z: x 1.45)
低功耗:415 μg/√Hz (Z: x 1.45)

  • 超低功耗/自动唤醒模式: 800 nA @ 25 Hz ODR

  • 嵌入式功能:

    • 计步器(总体 < 4 μA)
    • 活动识别(走路、跑步、站立)
    • 活动变化
    • 方向
    • 制表符/双制表符(总体 < 8 μA)
    • 通用中断 1 和 2(可通过阈值、定时器、逻辑 AND/OR 操作进行编程)
    • 1 KB 先进先出
  • 偏移: ±80 毫克

  • 总拥有成本: ±1 mg/K

  • 接口 SPI & I²C & 2 个中断引脚

  • 电源电压 :1.71 V 至 3.6 V

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • BMA400传感器模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

传感器引脚 ESP8266开发板引脚
Vin 5v
Gnd Gnd
SCL D1
SDA D2

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次使用的驱动库如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "BMA400.h"

float x = 0, y = 0, z = 0;
int16\_t temp = 0;

void setup(void)
{
Wire.begin();

Serial.begin(115200);
while(!Serial);
Serial.println("BMA400 Raw Data");

while(1)
{
if(bma400.isConnection())
{
bma400.initialize();
Serial.println("BMA400 is connected");
break;
}
else Serial.println("BMA400 is not connected");

delay(2000);
}
}

void loop(void)
{
bma400.getAcceleration(&x, &y, &z);
temp = bma400.getTemperature();

Serial.print(x);
Serial.print(",");
Serial.print(y);
Serial.print(",");
Serial.print(z);
Serial.print(",");

Serial.print(temp);

Serial.println();

delay(50);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126805336