主要内容

使用MCP23017将数字I / O引脚添加到Raspberry PI硬件

此示例显示如何通过将MCP23017 I / O扩展器芯片连接到Raspberry PI™硬件来增加数字I / O引脚数。

介绍

Raspberry PI硬件具有有限数量的数字I / O引脚。您可以通过将MCP23017 I / O扩展器芯片连接到覆盆子PI硬件来添加16个数字I / O引脚。然后,使用I2C,您可以使用附加引脚作为数字输入或输出。

先决条件

完成以下示例是有帮助的

需要硬件

要运行此示例,您需要以下硬件:

  • 覆盆子PI硬件

  • 电源至少1A输出

  • 面包板和跳线电缆

  • MCP23017 I / O扩展器

  • 一个红色的LED

  • 330欧姆电阻。

MCP23017 I / O扩展器概述

MCP23017是一个带有I2C接口的16端口数字I / O扩展器。

MCP23017仅使用两个引脚与中央控制器通信,为您提供16个数字I / O引脚。这些数字I / O引脚可以配置为输入或输出,并与Raspberry PI硬件上的内置数字I / O端口类似。

连接MCP23017

连接MCP23017 I / O扩展器,如以下电路图所示。

要为MCP23017供电,请将VDD引脚连接到+ 5V电压轨,VSS引脚到地轨。将MCP23017的SCL和SDA引脚连接到覆盆子PI硬件上的I2C引脚。通过接地A0,A1,A2引脚将MCP23017的I2C设备地址设置为“0x20”。将RESET引脚连接到+ 5V电压轨。

由于MCP23017供电+ 5V,因此当它们设置为逻辑时,输出引脚显示+ 5V。+ 5V电压轨道上的覆盆子PI扩展标题不受50 mA限制的影响,就像+ 3.3V电压导轨一样,为功耗提供更多纬度。将SDA和SCL引脚直接连接到覆盆子PI硬件是安全的,因为覆盆子PI硬件上的电阻将这两个信号线拉到+ 3.3V。确保您不会将任何MCP23017输出引脚直接连接到Raspberry PI硬件。

测试MCP23017

将MCP23017连接到Raspberry PI硬件后,扫描I2C总线以获取其设备地址。

清除RPI.RPI = Raspi();为了i = 1:长度(rpi.availablei2cbuses)地址= scani2cbus(rpi,rpi.availablei2cbuses {i})结尾

Scani2cbus()方法扫描给定的I2C总线并返回总线上的设备地址的单元格数组。如果正确连接MCP23017,则输出应包括“0x20”的I2C设备地址。

连接LED.

要测试MCP23017 I / O扩展器的操作,请使用330欧姆电阻连接到GPA7引脚的红色LED。将LED的长腿直接连接到MCP23017的GPA7引脚,并将LED的短腿连接到330欧姆电阻的一个端子。将电阻的另一个端子连接到地轨。

眨眼

我们为MCP23017 I / O扩展器创建了一个示例Matlab类。您可以通过创建对象来控制MCP23017的数字I / O引脚,并使用ReadDigitalPin(),WritedIgitalPin()和Configurepin()方法。此示例类不实现MCP23017的所有可用功能。

通过在MATLAB提示符下执行以下命令来创建MCP23017对象。

清除MCP.MCP = Raski.internal.mcp23017(RPI,'0x20'的)

参数''是总线MCP23017附加到'I2C-0'或'I2C-1',具体取决于Raspberry PI硬件的修订。通过执行以下MATLAB命令闪烁LED。

为了i = 1:10 Writedigitalpin(MCP,7,1);暂停(0.5);WRITEDIGITALPIN(MCP,7,0);暂停(0.5);结尾

MCP23017 I / O膨胀机的引脚被分配0到15的数字值,其中0到7,对应于GPA7,通过GPA7和8到15对应于GPB0到GPB7。

概括

此示例显示了如何使用MCP23017 I / O扩展器芯片将数字I / O引脚添加到RaspberryPI®硬件。