使用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硬件例子。
需要硬件
要运行此示例,您需要以下硬件:
覆盆子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'的)
参数'
为了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®硬件。