ESP8266-Arduino编程实例-MMA7660加速计驱动

MMA7660加速计驱动

1、MMA7660介绍

MMA7660FC 是一款数字输出 I²C、超低功耗、薄型电容式微加工加速度计,具有低通滤波器、零重力偏移和增益误差补偿以及用户可配置输出数据转换为六位数字值速度。 该器件可通过中断引脚 (INT) 用于传感器数据更改、产品方向和手势检测。 I2C 地址默认为 0x4c。

在这里插入图片描述

MMA7660有如下特性:

  • 数字输出 I²C
  • 3 毫米 x 3 毫米 x 0.9 毫米 DFN 封装
  • 低功耗电流消耗
    • 关闭模式:0.4 µA
    • 待机模式:2µA
    • 活动模式:可配置低至 47 µA
  • 低压操作:2.4 – 3.6 伏
  • 3 轴 ±1.5 g MEMS 传感器和 CMOS 接口控制器内置于一个封装中
  • 可配置的输出数据速率为每秒 1 到 120 个样本
  • 低功耗的自动唤醒/睡眠功能
  • 纵向/横向功能的倾斜方向检测
  • 手势检测,包括抖动和脉冲检测
  • 坚固的设计,高抗冲击能力(10,000g)

2、硬件准备

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

硬件接线如下:

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

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

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

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

4、代码实现

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

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
47
48
49
#include <Wire.h>
#include "MMA7660.h"
MMA7660 acc;

void setup()
{
acc.init();
pinMode(13, OUTPUT);
Serial.begin(115200);
}

void loop()
{

static long cnt = 0;
static long cntout = 0;
float ax,ay,az;
int8\_t x, y, z;

acc.getXYZ(&x,&y,&z);

Serial.print("x = ");
Serial.println(x);
Serial.print("y = ");
Serial.println(y);
Serial.print("z = ");
Serial.println(z);


if(acc.getAcceleration(&ax,&ay,&az))
{
Serial.print("get data ok: ");
}
else
{
Serial.print("tiem out: ");
}

Serial.println("accleration of X/Y/Z: ");
Serial.print(ax);
Serial.println(" g");
Serial.print(ay);
Serial.println(" g");
Serial.print(az);
Serial.println(" g");
Serial.println();
delay(50);
}

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