极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 27639|回复: 13

arduino用I2C通信并接多个ADXL345加速度传感器时读数变大的问题

[复制链接]
发表于 2015-2-1 21:20:28 | 显示全部楼层 |阅读模式
连线及代码都来自:http://www.geek-workshop.com/forum.php?mod=viewthread&tid=80
感谢弘毅 老师哈

我在这基础上通过改变ADXL345的CS口电平来实现只和一个加速度传感器通信
因为ADXL345 CS口必须置低才能进行I2C通信,我将不需通信的一个用IO口动态置高
(原本可以通过改变SD0口电平选择地址,不过不知怎么的我无论给它置高置低地址用I2C扫描代码得到的都是0x53,所以放弃了这个方法)

但这样的话读数x、y、z会达到9.0~15.0

我只连接一个ADXL345 得到的正常情况应该是 -1.0~1.0  不进行加速移动 绝对值不会超过1.0

困扰我将近半个月了... 谢谢大家
回复

使用道具 举报

发表于 2015-2-2 10:26:49 | 显示全部楼层
本帖最后由 林定祥 于 2015-2-2 10:32 编辑

      CS引脚拉高至VDD I/O,ADXL345处于I2C模式,需要简单2线式连接。ADXL345支持单个或多个字节的读取/写入。ALT ADDRESS引脚处于高电平,器件的7位I2C地址是0x1D,随后为R/W位。这转化为0x3A写入,0x3B读取。通过ALT ADDRESS引脚(引脚12)接地,可以选择备用I2C地址0x53(随后为R/W位)。这转化为0xA6写入,0xA7读取。

      对于任何不使用的引脚,没有内部上拉或下拉电阻,因此,CS引脚或ALT ADDRESS引脚悬空或不连接时,任何已知状态或默认状态不存在。使用I2C时, CS引脚必须连接至VDD I/O,ALT ADDRESS引脚必须连接至任一VDD I/O或接地。

摘自DataSheet
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-2 15:13:42 | 显示全部楼层
林定祥 发表于 2015-2-2 10:26
CS引脚拉高至VDD I/O,ADXL345处于I2C模式,需要简单2线式连接。ADXL345支持单个或多个字节的读取/写 ...

对我懂这个。
可是不能解决我的问题额{:3_58:}
回复 支持 反对

使用道具 举报

发表于 2015-2-2 16:07:42 | 显示全部楼层
UerRob 发表于 2015-2-2 15:13
对我懂这个。
可是不能解决我的问题额

你现在是如何接线的呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-2 17:13:14 | 显示全部楼层
林定祥 发表于 2015-2-2 16:07
你现在是如何接线的呢?



这个基础上再并接一个加速度传感器
将它们俩的CS口置在 D3口和D4口
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-8 10:53:19 | 显示全部楼层
没人么
回复 支持 反对

使用道具 举报

发表于 2015-2-28 22:27:31 | 显示全部楼层
CS口不是置低进行I2C通讯,而是CS引脚拉高至VDD I/O才进行I2C通讯,如果你把CS口置低电平就变成SPI通讯模式了,CS为串行端口使能线,由SPI主机控制,此线必须在传输起点变为低电平,传输终点变为高电平。我想可能是这个原因。
回复 支持 反对

使用道具 举报

发表于 2015-12-12 11:03:25 | 显示全部楼层
ADXL345有地址编程引脚的。一条总线上最多可以挂载8个ADXL345,但是如果你买的是模块的话,因为地址都是一样的,也就导致只能识别一个ADXL345,IIC正是通过识别不同的子器件地址而识别的
http://zhidao.baidu.com/link?url=msprNVzc4tHKcZsqRx6nBek4ZZC6sS2chD9irRrvflmCF8rECRmkpuN6Z_8BAv9d8Afd0hIhlRcC1xL3ouO5rWT8_9HYENML5bOeu2K_YjK
回复 支持 反对

使用道具 举报

发表于 2015-12-12 12:07:47 | 显示全部楼层
用CD4053模拟单刀双掷开关来实现与多个ADXL345的通讯。
http://www.geek-workshop.com/thread-14984-1-1.html
回复 支持 反对

使用道具 举报

发表于 2016-1-6 14:46:10 | 显示全部楼层
楼主解决了吗  就分享方法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-4 16:57:21 | 显示全部楼层
zongshiwujie 发表于 2015-12-12 12:07
用CD4053模拟单刀双掷开关来实现与多个ADXL345的通讯。
http://www.geek-workshop.com/thread-14984-1-1.h ...

呵呵 这个帖子就是我发的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-4 16:57:35 | 显示全部楼层
慕雅流芳 发表于 2016-1-6 14:46
楼主解决了吗  就分享方法

已经解决了。可以看看9楼的帖子
回复 支持 反对

使用道具 举报

发表于 2018-4-9 16:22:42 | 显示全部楼层
有没有连线图以及程序代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 12:14 , Processed in 0.042514 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表