1.2.3.6.1.19 ADXL345(加速度传感器)
优质
小牛编辑
122浏览
2023-12-01
更新时间:2018-09-17 12:24:57
功能说明
加速度传感器驱动。adxl345 是一款具有数字加速度计功能低功耗传感器,分辨率可以达到13bit,测量范围在16g,通过 I2C 或 SPI 协议进行数据交互.
硬件资源
DevelopKit 上有 I2C 的外扩端口,同时也需要额外的 adxl345 模块,所需的硬件资源如图1所示:
图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
}
应用示例
- 在嵌入式 JS 开发工作台上,创建测试工程并导入驱动模块 adxl345。
- 编写测试 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 加速度传感器读取数据,并打印出来。