主要内容

使用raspberry pi i2c接口连接到设备

此示例显示如何创建与I2C设备的连接,将数据写入设备,以及从设备读取数据。

警告

电压和电流过高会损坏Raspberry PI™硬件。遵守制造商的处理覆盆子PI硬件并将其连接到其他设备的预防措施。有关更多信息,请参阅https://www.raspberypi.org/technical-help-and-resource-documents.

使用使用的与Raspberry PI硬件建立连接raspi.

mypi = raspi
Mypi = Raspi具有属性:DeviceAddress:'RaspberryPi-ComputerName'端口:18725 BoardName:'raspberry Pi模型B Rev 2'avableableLeds:{'LED0'}可用性帖:[4 7 8 9 10 11 14 15 18 22 23 24 25 27 30 31]可用性等:{}可用性:{'i2c-0''i2c-1'}I2CBUSSPEED:100000金宝app支持的外围设备

默认的I2C总线速度为每秒100000位。

你可以重新播放可用性2cbus.I2CBUSSPEED特性。

mypi.availablei2cbuses mypi.i2cbusspeed
ANS ='I2C-0''I2C-1'ANS = 100000

显示GPIO标题上I2C引脚的位置。

Showpins(Mypi)

针映射显示,对于此模型和董事会的修订,I2C-1GPIO标头销上有公共汽车I2C1_SDA(GPIO 2)I2C1_SCL(GPIO 3)

覆盆子PI硬件使用+ 3.3V。请勿将覆盆子PI硬件直接连接到提供更高电压的设备。

在继续之前,制造商的专业研究duct information to determine which settings the I2C device supports. Then, connect the Raspberry Pi board to the I2C device.

例如,使用MCP4725 12位DAC,CONNECT:

  • I2C1_SDA(GPIO2)在DAC上的覆盆子PI板上的销钉。

  • I2C1_SCL(GPIO3)在覆盆子PI板上的别针到DAC上的SCL引脚。

  • GND.在覆盆子pi板上到了GND.别针在DAC上。

  • + 3.3V.在覆盆子pi板上到了vdd.别针在DAC上。

  • vout.销在DAC上的电压表上的正极。

  • GND.在电压表上的负极铅。

获取连接到I2C总线的I2C设备的地址,'i2c-1'

Scani2cbus(Mypi,'i2c-1'的)
ans ='0x62'

创建与I2C DAC的连接'0x62'并分配与句柄的连接,I2CDAC.

i2cdac = i2cdev(mypi,'i2c-1''0x62'的)
I2CDAC = I2CDEV具有属性:总线:'I2C-1'地址:'0x62'

将值写入I2C设备。

写(i2cdac,4092)

从I2C传感器读取值,物理连接传感器,使用Scani2cbus.获取地址,使用I2CDEV.创建与设备的连接。然后,使用获得价值。

addr = scani2cbus(mypi,'i2c-1')i2csensor = i2cdev(mypi,'i2c-1',char(addr))读取(i2csensor,1)

如果您未使用I2C,则禁用I2C以进行额外的GPIO引脚。

笔记

在禁用I2C之前,清除I2CDEV.对象,如果创建。例如,清除(i2csensor)

Disablei2c(Mypi)

再次使用I2C时,启用I2C。

enableI2c(mypi)

要更改I2C总线速度,mypi.i2cbusspeed, 采用enablei2c.与之I2CBUSSPEED争论。

Disablei2c(mypi)enablei2c(mypi,400000)mypi.i2cbusspeed
ans = 40000.