1.2.3.6.1.19 ADXL345(加速度传感器)

优质
小牛编辑
124浏览
2023-12-01

更新时间:2018-09-17 12:24:57

功能说明

加速度传感器驱动。adxl345 是一款具有数字加速度计功能低功耗传感器,分辨率可以达到13bit,测量范围在16g,通过 I2C 或 SPI 协议进行数据交互.

硬件资源

DevelopKit 上有 I2C 的外扩端口,同时也需要额外的 adxl345 模块,所需的硬件资源如图1所示:

menu.saveimg.savepath20180521170714.jpg | left | 407x442

图1

DevelopKit 外扩的 I2C 各个引脚定义如上图1所示,两者之间的接线是:

  • ADXL345 模块的 VCC 连接 DevelopKit 的 VCC 引脚;

  • ADXL345 模块的 GND 连接 DevelopKit 的 GND 引脚;

  • ADXL345 模块的 SCL 连接 DevelopKit 的 SCL 引脚;

  • ADXL345 模块的 SDA 连接 DevelopKit 的 SDA 引脚;

软件设计

根据 adxl345 的数据手册,加速度计的x、y、z轴的值分别存放在寄存器 0x32、0x34、0x36中,寄存器 0x2D、0x31、0x2C 和配置及使能相关,在初始化传感器的时候要对其进行配置;

驱动配置

开发板板级管脚配置(board.json) 示范:</span>

  "adxl345":{
    "type":"I2C",
    "port":2,
    "address_width":7,
    "freq":200000,
    "mode":1,
    "dev_addr":166
  }

应用示例

  1. 在嵌入式 JS 开发工作台上,创建测试工程并导入驱动模块 adxl345。
  2. 编写测试 index.js 文件。
var adxl345 = require('adxl345');
var handle = new adxl345('adxl345');
var adxl345_val=[0,0,0];
var t1 = setInterval(function() {

    var accVal = handle.getAcc();
    if((adxl345_val[0]==accVal[0])&&(adxl345_val[1]==accVal[1])&&(adxl345_val[2]==accVal[2])){
        return; 
    }
    console.log('xacc:'+accVal[0] + 'yacc:'+accVal[1] + 'zacc:'+accVal[2]);
    adxl345_val[0] = accVal[0];
    adxl345_val[1] = accVal[1];
    adxl345_val[2] = accVal[2];
}, 1000);

运行验证

每隔一秒 从 adx1345 加速度传感器读取数据,并打印出来。