Arduino I2C 通信引脚
对于I2C通信,Arduino的不同电路板具有不同的引脚专用于SDA和SCL引脚。下面的列表显示了不同电路板中的这些引脚号。
- 在Arduino UNO中,引脚A4 = SDA,引脚A5 = SCL
- 对于Arduino Mega2560,引脚20 = SDA,引脚21 = SCL
- 在Arduino Leonardo中,引脚2 = SDA,引脚3 = SCL
- 对于Arduino Due,引脚20 = SDA,引脚21 = SCL,SDA1,SCL1
下图显示了 Arduino UNO 中的 SDA 和 SCL 引脚,它们将在本文中使用。
Arduino I2C 通信库
“有线”库用于Arduino中的I2C通信。以下是此库的重要功能。
Wire.begin(address)
使用此命令启动导线库,并将 I2C 总线作为主总线或从总线连接。地址是可选的。此地址由从器件的七位组成。如果未指定;设备以主设备身份加入总线。
Wire.requestFrom(地址、数量)
主设备使用此命令从设备请求字节。“Available ()” and “read ()” 函数可用于在之后收集这些字节。“地址”是要从其发出请求的特定从设备的地址,“数量”指定要请求的字节数。
Wire.beginTransmission(address)
此命令使用给定地址的从属设备启动字节的传输。之后,要传输的字节使用 write () 函数排队,这些字节使用 endTransmission() 函数进行传输。
Wire.endTransmission()
使用此命令结束使用 wire.beginTransmission() 函数启动的字节的传输。
此函数接受参数。如果参数为 TRUE,则在传输字节后发送 stop 命令,并且 I2C 总线不受限制。
如果参数为 FALSE,它将在传输字节后发送重新启动命令,并且总线不能幸免,并且它阻止另一个主设备在消息之间传输。
Wire.Write ()
此命令一次执行 2 个功能之一。
- 当主设备发出请求时,该函数从从设备写入数据。
- 在对 beginTransmission () 函数和 endTransmission () 函数的调用之间,此命令用于对字节进行传输的队列。
Wire.read ()
请求后从()命令,从从设备传输到主设备或主设备到从设备传输的字节;使用此命令读取。
Wire.available()
此函数返回调用 read () 函数后可用于检索的字节数。在主设备中,它是在 requestFrom() 函数之