ESP8266-Arduino编程实例-L3GD20三轴角速率传感器驱动

L3GD20三轴角速率传感器驱动

1、L3GD20介绍

L3GD20 是一款低功耗三轴角速率传感器。 它包括一个传感元件和一个 I2C 接口,能够通过数字接口 (I2C/SPI) 向外部世界提供测量的角速率。传感元件采用意法半导体开发的专用微加工工艺制造,用于在硅晶片上生产惯性传感器和执行器。IC 接口采用 CMOS 工艺制造,允许高集成度设计专用电路,该电路经过修整以更好地匹配传感元件特性。 L3GD20 的满量程为 ±250/±500/±2000 dps,并且能够以用户可选的带宽测量速率。

L3GD20 采用塑料焊盘网格阵列 (LGA) 封装,可在 -40 °C 至 +85 °C 的温度范围内工作。
在这里插入图片描述

L3GD20的特性如下:

  • 三个可选满量程 (250/500/2000 dps)
  • I2C/SPI数字输出接口
  • 16位速率值数据输出
  • 8位温度数据输出
  • 两条数字输出线(中断和数据就绪)
  • 具有用户可选带宽的集成低通和高通滤波器
  • 宽电源电压:2.4 V 至 3.6 V
  • 低电压兼容 IO (1.8 V)
  • 嵌入式断电和睡眠模式
  • 嵌入式温度传感器
  • 嵌入式先进先出
  • 高抗冲击能力
  • 扩展的工作温度范围(-40 °C 至 +85 °C)

2、硬件准备

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

硬件接线如下:

在这里插入图片描述

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

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

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

4、代码实现

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

1)导入依赖库头文件

1
2
3
4
5
6
#include <Wire.h>
#include <L3G.h>

// 创建L3G2D设备对象
L3G gyro;

2)设备初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void setup() {
// 串口初始化
Serial.begin(9600);
// I2C总线初始化
Wire.begin();
// L3GD20设备初始化
if (!gyro.init())
{
Serial.println("Failed to autodetect gyro type!");
while (1);
}
// 全能L3GD20设备
gyro.enableDefault();
}

3)数据采集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void loop() {
gyro.read();

Serial.print("G ");
Serial.print("X: ");
Serial.print((int)gyro.g.x);
Serial.print(" Y: ");
Serial.print((int)gyro.g.y);
Serial.print(" Z: ");
Serial.println((int)gyro.g.z);

delay(100);
}

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