如何在Arduino上使用I2C设备?


12

我有一些有用的I2C组件,例如16位端口扩展器(MCP23017),我想在各种项目中使用它。

我需要做什么才能使它们与Arduino一起使用?它可以与任何Arduino一起使用,还是需要特定的板子或屏蔽板?

Answers:


9

Arduino具有与I2C进行通信的电线库

该库使您可以与I2C / TWI设备进行通信。在具有R3布局(1.0引脚)的Arduino板上,SDA(数据线)和SCL(时钟线)位于靠近AREF引脚的引脚接头上。Arduino Due有两个I2C / TWI接口,SDA1和SCL1靠近AREF引脚,另外一个位于引脚20和21。作为参考,下表显示了TWI引脚在各种Arduino板上的位置。

板载I2C / TWI引脚

  • Uno,以太网A4(SDA),A5(SCL)
  • Mega2560 20(SDA),21(SCL)
  • 莱昂纳多2(SDA),3(SCL)
  • 到期20(SDA),21(SCL),SDA1,SCL1

您可以看一下这个示例。

就像@TheDoctor所说的那样:

I2C数据线均需要3.3V的电阻。如果禁用它们,则可以防止它们漂移。安迪电阻值应该可以,但建议使用10k欧姆至47k欧姆之间的电阻。


1
不要忘记I2C线路上的上拉电阻
TheDoctor

1
为了扩展这一点,i2c数据线都需要5v的电阻。如果禁用它们,则可以防止它们漂移。安迪电阻值应该可以工作,但建议使用10k欧姆至47k欧姆之间的电阻
TheDoctor 2014年

应该说,如果您在Arduino Due上使用5V上拉电阻(在答案中已命名),则会损坏电路板。Arduino Due使用3.3V逻辑,并且不需要5V上拉电阻,而且SDA和SCL也已经在内部由板上拉高。
约翰


2

对于将来的读者:使用Adafruit_MCP23017库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.