【问题标题】:which pins should i take for i2c on arduino uno我应该在 arduino uno 上为 i2c 使用哪些引脚
【发布时间】:2017-08-11 09:59:27
【问题描述】:

我正在尝试使用 arduino UNO 创建 i2c 通信总线。

i2c 需要 SDA 和 SDL 引脚。我在 arduino UNO 上看到有两次 SDA 和 SDL:

根据文档,USB 连接器的前 2 个引脚是 SDA/SCL。

并且文档说 A4 和 A5 引脚也可以是 SDA/SCL

所以我不明白我可以使用哪些别针。

谢谢

【问题讨论】:

  • 请注意,图中显示的 SDA/SCL 引脚(错误地)交换了。从 Tom 的答案中的图表和我的答案中的示意图可以看出,SDA 与 AREF 相邻,而不是 SCL。
  • 我想你的意思是 SCL 不是 SDL?

标签: arduino


【解决方案1】:

看完整图: http://pighixxx.com/unov3pdf.pdf

SDA 和 SCL 引脚是微控制器的 PC4 和 PC5 引脚(端口 C 的引脚 4 和 5)。引脚 A4 和 A5 也是 PC4 和 PC5。这意味着它们是连接在一起的。

所以你可以使用其中任何一个,没关系。

【讨论】:

  • 他们为什么要连接?
  • 例如,如果我同时在引脚 27-28 上使用 SDA/SCL,我可以使用模拟 IN A4/A5 吗?
  • 我不知道他们为什么连接。也许是为了简化 Arduino Shields 的设计。您不能同时使用模拟输入和 SDA/ADL。这个想法是微控制器 (MCU) 具有许多外围设备和功能(ADC、DAC、I2C、SPI、UART、USB、定时器等)。他们的包装上不仅仅有可用的引脚。因此,几个功能被映射到每个引脚。您在初始化引脚时选择该功能。 Arduino 代码封装了所有这些,因此很难看到。但基本上如果你想改变你使用的功能(ADC/I2C),你必须重新初始化引脚。
【解决方案2】:

早期版本的 Uno 没有单独的 SDA/SCL 引脚。然后当他们开始制作其他电路板(例如 Leonardo)时,出现了一个问题,Leonardo SDA/SCL 引脚不是 A4/A5(它们是 D2/D3)。

为了更容易制作使用 I2C 的屏蔽,制造商在已知位置添加了 SDA/SCL 引脚。对于两块板,它们都连接到该板的正确引脚。

类似的评论适用于更高版本的 Mega2560 板。

您可以使用任一引脚:标记为 SDA/SCL 的引脚或用于板手的适当引脚。它们连接在一起,因此您选择哪个都没有关系。


Uno 的部分示意图显示两组引脚位于同一个“网络”上,这意味着引脚是内部连接的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    相关资源
    最近更新 更多