KE2040 keyes brick ADXL345加速度传感器(焊盘孔) 防反插白色端子

ke2040-1-1

1.概述

这是一个常用的加速度传感器,它采用ADXL345BCCZ芯片。ADXL345BCCZ是一款小而薄的低功耗3轴加速度计,分辨率高(13位),测量范围达±16g。它数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。该传感器非常适合移动设备应用。它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(4mg/LSB),能够测量不到1.0°的倾斜角度变化。

为了方面接线,我们还配送1根4pin线,线的一端为白色防反插接口(和传感器上防反插白色端子匹配),另一端为4pin杜邦线母头接口。

传感器兼容各种单片机控制板,如arduino系列单片机。使用时,我们可以在单片机上堆叠一个传感器扩展板。传感器和自带导线连接,然后连接在传感器扩展板上,简单方便。同时,传感器自带4个直径为3mm的定位孔,方便你将传感器固定在其他设备。

2.规格参数

导线长度:200mm

工作电压:DC 5V

接口:间距为2.54mm 4pin防反接口

超低功耗:测量模式下 40uA 电流损耗,待机模式下0.1uA

定位孔大小:直径为3mm

通讯方式:I2C通讯

尺寸:30*27*9mm

重量:2.6g

3.连接图

KE2040-3

4.测试代码

#include <Wire.h>

// Registers for ADXL345

#define ADXL345_ADDRESS (0xA6 >> 1) // address for device is 8 bit but shift to the

// right by 1 bit to make it 7 bit because the

// wire library only takes in 7 bit addresses

#define ADXL345_REGISTER_XLSB (0x32)

int accelerometer_data[3];

// void because this only tells the cip to send data to its output register

// writes data to the slave’s buffer

void i2c_write(int address, byte reg, byte data) {

// Send output register address

Wire.beginTransmission(address);

// Connect to device

Wire.write(reg);

// Send data

Wire.write(data); //low byte

Wire.endTransmission();

}

// void because using pointers

// microcontroller reads data from the sensor’s input register

void i2c_read(int address, byte reg, int count, byte* data) {

// Used to read the number of data received

int i = 0;

// Send input register address

Wire.beginTransmission(address);

// Connect to device

Wire.write(reg);

Wire.endTransmission();

// Connect to device

Wire.beginTransmission(address);

// Request data from slave

// Count stands for number of bytes to request

Wire.requestFrom(address, count);

while(Wire.available()) // slave may send less than requested

{

char c = Wire.read(); // receive a byte as character

data[i] = c;

i++;

}

Wire.endTransmission();

}

void init_adxl345() {

byte data = 0;

i2c_write(ADXL345_ADDRESS, 0x31, 0x0B); // 13-bit mode +_ 16g

i2c_write(ADXL345_ADDRESS, 0x2D, 0x08); // Power register

i2c_write(ADXL345_ADDRESS, 0x1E, 0x00); // x

i2c_write(ADXL345_ADDRESS, 0x1F, 0x00); // Y

i2c_write(ADXL345_ADDRESS, 0x20, 0x05); // Z

// Check to see if it worked!

i2c_read(ADXL345_ADDRESS, 0X00, 1, &data);

if(data==0xE5)

Serial.println(“it work Success”);

else

Serial.println(“it work Fail”);

}

void read_adxl345() {

byte bytes[6];

memset(bytes,0,6);

// Read 6 bytes from the ADXL345

i2c_read(ADXL345_ADDRESS, ADXL345_REGISTER_XLSB, 6, bytes);

// Unpack data

for (int i=0;i<3;++i) {

accelerometer_data[i] = (int)bytes[2*i] + (((int)bytes[2*i + 1]) << 8);

}

}

// initialise and start everything

void setup() {

Wire.begin();

Serial.begin(9600);

for(int i=0; i<3; ++i) {

accelerometer_data[i] = 0;

}

init_adxl345();

}

void loop() {

read_adxl345();

Serial.print(“ACCEL: “);

Serial.print(float(accelerometer_data[0])*3.9/1000);//3.9mg/LSB scale factor in 13-bit mode

Serial.print(“\t”);

Serial.print(float(accelerometer_data[1])*3.9/1000);

Serial.print(“\t”);

Serial.print(float(accelerometer_data[2])*3.9/1000);

Serial.print(“\n”);

delay(100);

}

5.测试结果

烧录好测试代码,按照接线图连接好线;利用USB接口上电后,进入串口监视器,设置波特率为9600。串口监视器显示模块X Y Z方向的加速度数值,当模块水平放置时,模块Z方向的加速度数值为1g,如下图。