ESP8266-Arduino编程实例-LIS2DH 三轴线性加速度计驱动

LIS2DH 三轴线性加速度计驱动

1、LIS2DH介绍

LIS2DH 是一款超低功耗高性能三轴线性加速度计,属于“femto”系列,具有数字 I2C/SPI 串行接口标准输出。

LIS2DH 具有±2g/±4g/±8g/±16g 的动态用户可选满量程,它能够测量输出数据速率为 1 Hz 至 5.3 kHz 的加速度。

自检功能允许用户在最终应用中检查传感器的功能。

该设备可以配置为通过两个独立的惯性唤醒/自由落体事件以及设备本身的位置来生成中断信号。

LIS2DH 采用小型薄塑料焊盘网格阵列封装 (LGA),保证在 -40 °C 至 +85 °C 的扩展温度范围内工作。

在这里插入图片描述

LIS2DH具有如下特性:

  • 宽电源电压,1.71 V 至 3.6 V
  • 独立 IO 电源 (1.8 V) 和电源电压兼容
  • 低至 2 µA 的超低功耗模式消耗
  • ±2g/±4g/±8g/±16g 动态可选满量程
  • I2C/SPI 数字输出接口
  • 2 个独立的可编程中断发生器,用于自由落体和运动检测
  • 6D/4D方向检测
  • “睡眠唤醒”和“返回睡眠”功能
  • 自由落体检测
  • 运动检测
  • 嵌入式温度传感器
  • 嵌入式先进先出

2、硬件准备

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

硬件接线如下:

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

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

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

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

4、代码实现

本次实例使用的LIS2DH驱动库如下:

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 <Wire.h>
#include <DFRobot\_LIS2DH12.h>


DFRobot_LIS2DH12 LIS; //Accelerometer

void setup(){
Wire.begin();
Serial.begin(115200);
while(!Serial);
delay(100);

// Set measurement range
// Ga: LIS2DH12\_RANGE\_2GA
// Ga: LIS2DH12\_RANGE\_4GA
// Ga: LIS2DH12\_RANGE\_8GA
// Ga: LIS2DH12\_RANGE\_16GA
while(LIS.init(LIS2DH12_RANGE_16GA) == -1){ //Equipment connection exception or I2C address error
Serial.println("No I2C devices found");
delay(1000);
}
}

void loop(){
acceleration();
}

/\*!
\* @brief Print the position result.
\*/
void acceleration(void)
{
int16\_t x, y, z;

delay(100);
LIS.readXYZ(x, y, z);
LIS.mgScale(x, y, z);
Serial.print("Acceleration x: "); //print acceleration
Serial.print(x);
Serial.print(" mg \ty: ");
Serial.print(y);
Serial.print(" mg \tz: ");
Serial.print(z);
Serial.println(" mg");
}

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