如何将多个 i2c 接口设备连接到 Arduino 上的单个引脚 A4 (SDA) 和 A5 (SCL)?

电器工程 Arduino i2c
2022-01-04 06:47:58

我想在我的小项目中添加一个实时时钟模块。我想在现有的 i2c 2x16 LCD 模块上同时显示时间和日期。

i2c 接口实时时钟模块和 2x16 LCD 模块在 Arduino Uno 上使用相同的引脚 A4 (SDA) 和 A5 (SCL)。在网上搜索了几个小时后,i2c 总线实际上可以占用许多串行设备。这是可能的,因为每个设备都有自己唯一的地址。

我的问题是如何将两个 i2c 接口设备物理连接到一个 A4 和 A5 中?谢谢。

4个回答

有些人很难想象连接在一起的事物,所以这是一张图片:

(服务建议)

示意图

模拟这个电路- 使用CircuitLab I 2 C 创建的原理图是一条总线,因此类似名称的信号连接在一起。寻址方案允许微控制器选择它正在与之交谈的设备。在 Arduino 上,10kΩ 上拉电阻连接到VDD(通常为 +5V 或 +3.3V)。

对于 I2C,如果所有从设备的设备地址不同,则所有 SDA 引脚应连接在一起,所有 SCL 引脚应连接在一起。就这么简单。

当然,您还应该根据 I2C 的要求在两条线路上包括上拉电阻。如何选择电阻值已在此处讨论

将两个引脚 A4-sda 连接到 A5-scl(在两个板上 uno-uno 上)并从每个相应的 sda-​​scl 线连接来自 5v 的电阻器。

在此处输入图像描述

您还应该检查上拉电阻。如果您使用已经制作好的电路板,而不仅仅是芯片,该电路板通常在总线和 vcc 之间有上拉电阻。因此,当您将所有东西并联时,电阻器也是并联的,因此总电阻器值下降并且您的通信可能会失败。