freedomhit

ADXL345硬件连接及数据输出

0
阅读(19536)

      ADXL345是一款三轴加速度计,能够检测到三个方向上的三个加速度计。初始化之后,上电之后在各个寄存器之中就有十六进制的数组,每个方向是两个寄存器存储数据,通过SPI或者I2C两种方式对其进行提取。该数组前两位为符号位,如果为00,这表示正方向,如果为FF则表示为负方向,所以我们只要对其数组中的数提取出来并进行移位,对于不同寄存器提取出来的数移动的数位不同,那么在把这些数给组合成一个数组,由最高的前两位表示符号,那么就可以用液晶显示屏上显示出该加速度的三个方向的加速度计。检测出的数组是和和3.9成正比的,所以没增加一个数字量,就会有3.9的增加量,这样我们可以根据这后六位的数来算出加速度的大小。根据正负判断方向,根据数值指示各个方向上的加速度。当然也可以用别的方法表示方向,可以根据符号位来判断方位,可以显示前后左右上下,这样就能检测出三个自由度了,而根据各个方向加速度的大小进行比较,比较得出是偏左还是偏右这样。ADXL345的SPI和I2C的连接方式是不同的,对于I2C是要接上拉电阻的,其连接图是 这样的:


 
      这里一定要注意cs一定要接高电平。对于ALT ADDRESS(SDO)一般是可连接也可以不连接的(我试过的,都好使)。如果有其他器件连接到同一I2C总线,这些器件的额定工作电压电平不能高于VDD I/O 0.3V以上。I2C正确操作需要外接上拉电阻RP(其实不接也没问题,直接接到高电平就行了,我就是这么干的,不过有可能会烧坏)。SPI就简单了,不过我用的是I2C的,还是顺便提一下SPI的吧!接线图如下: