0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用MCP23008扩展Netduino的IO端口

454398 来源:工程师吴畏 2019-08-02 09:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MCP23008 芯片是一个8位(8端口)数字I/O扩展器芯片,通过I2C进行通信。它提供八(8)个IP端口,可用于向Netduino添加额外的数字输入和输出端口。它还可以与多达七(7)个额外的MCP23008芯片组合,提供多达64个额外端口。

要连接MCP23008芯片,请参考下面的引脚数据表。

怎样用MCP23008扩展Netduino的IO端口

MCP23008的引脚映射

MCP23008是硬件领域的通用集成电路,是硬件的典型接口芯片,如I2C LCD。

Netduino.Foundation 是一个使用Netduino上的.NET MicroFramework快速轻松地构建连接内容的平台。由Wilderness Labs创建,它完全开源并由Netduino社区维护。

如果您是Netduino开发的新手,我建议您进入Netduino项目入门以正确设置你的开发环境。

第1步 - 组装电路

对于这个项目,按照Fritzing图中的说明连接你的面包板和Netduino:

MCP23008的电路图

注 - 所有三个地址引脚(芯片左侧的三条绿色跳线)都拉高。这指定了MCP23008的I2C地址 - 在这种情况下,地址为39。

步骤2 - 创建Netduino项目

在Visual Studio 2015 for Windows中创建Netduino项目最新的Visual Studio for Mac;将项目命名为 Blinky_MCP23008 。

步骤3 - 添加Netduino.Foundation NuGet包

Windows

右键单击 Blinky_MCP23008 项目,然后单击管理NuGet包。在“浏览”选项卡中,搜索Netduino.Foundation;它应该是第一个搜索结果。单击安装按钮。

添加Netduino.Foundation NuGet包

现在搜索 Netduino.Foundation.MCP23008 并将其添加到您的项目中。

macOS

在解决方案资源管理器中按住Alt键并单击 Blinky_MCP23008 项目,然后单击添加=》添加NuGet打包打开NuGet包窗口。搜索 Netduino.Foundation 包,然后单击添加包将其添加到项目中。

添加Netduino.Foundation NuGet包

现在搜索 Netduino.Foundation.MCP23008 并将其添加到您的项目中。

步骤4 - 编写MCP23008项目的代码

添加App类

对于这个项目,我们实现了一个管理所有外围设备的通用 App 软件模式主要逻辑。

在项目中添加一个新的 App 类,并粘贴以下代码:

using Microsoft.SPOT;

using Netduino.Foundation.ICs.IOExpanders.MCP23008;

using System.Threading;

namespace Blinky_MCP23008

{

public class App

{

static MCP23008 _mcp = null;

public App()

{

InitializePeripherals();

}

protected void InitializePeripherals()

{

_mcp = new MCP23008(39);

}

public void Run()

{

// create an array of ports

DigitalOutputPort[] ports = new DigitalOutputPort[8];

for (byte i = 0; i 《= 7; i++)

{

ports[i] = _mcp.CreateOutputPort(i, false);

}

while (true)

{

// count from 0 to 7 (8 leds)

for (int i = 0; i 《= 7; i++)

{

// turn on the LED that matches the count

for (byte j = 0; j 《= 7; j++)

{

ports[j].State = (i == j);

}

Debug.Print(“i: ” + i.ToString());

Thread.Sleep(250);

}

}

}

}

}

程序类

最后,创建一个新的 App 类对象并调用运行方法。您的代码应如下所示:

using System.Threading;

namespace Blinky_MCP23008

{

public class Program

{

public static void Main()

{

App app = new App();

app.Run();

Thread.Sleep(Timeout.Infinite);

}

}

}

步骤5 - 运行项目

单击Visual Studio中的运行按钮以查看LED指示灯亮起!它们将按顺序打开和关闭,由MCP23008上的GP端口控制。它应该看起来像以下gif:

MCP23008示例项目正在运行

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IO端口
    +关注

    关注

    0

    文章

    31

    浏览量

    11172
  • Netduino
    +关注

    关注

    0

    文章

    19

    浏览量

    3557
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索 OLIMEX MOD - IO2 扩展板:功能、设置与应用

    探索 OLIMEX MOD - IO2 扩展板:功能、设置与应用 在电子设计领域,扩展板是提升系统功能和灵活性的重要工具。今天,我们来深入了解 OLIMEX 公司推出的 MOD - IO
    的头像 发表于 06-10 10:40 247次阅读

    MCP23X08/17 GPIO 扩展器的独特特性与应用

    扩展器,包括支持 (I^{2} C^{TM}) 接口的 MCP23008 和支持 SPI 接口的 MCP23S08;MCP23X17 是 16 位 GPIO
    的头像 发表于 06-06 09:05 285次阅读

    MCP212X开发者子板:实现低成本无线红外端口的理想之选

    MCP212X开发者子板:实现低成本无线红外端口的理想之选 在电子设计领域,实现低成本无线红外(IR)端口一直是许多工程师关注的焦点。Microchip的MCP212X开发者子板为这一
    的头像 发表于 06-05 16:15 86次阅读

    深入了解MAX7324:强大的I2C端口扩展

    深入了解MAX7324:强大的I2C端口扩展器 在电子设计的领域中,端口扩展器是解决I/O端口不足问题的重要工具。今天我们就来详细探讨一下M
    的头像 发表于 05-11 17:10 449次阅读

    探索MAX7323:多功能I²C端口扩展器的深度剖析

    探索MAX7323:多功能I²C端口扩展器的深度剖析 在电子设计领域,端口扩展器是一种常见且实用的器件,它能够帮助工程师在有限的资源下扩展
    的头像 发表于 05-11 17:10 416次阅读

    MAX7312:2线接口16位I/O端口扩展器的全面解析

    MAX7312:2线接口16位I/O端口扩展器的全面解析 在电子设计领域,I/O端口扩展器是实现系统功能扩展和优化的重要组件。今天,我们将深
    的头像 发表于 05-11 17:00 451次阅读

    【新品】工业现场IO扩展难、响应慢?M31-U-CAT EtherCAT分布式IO主机来了

    还在为工业现场IO扩展受限烦恼?还在被信号干扰、数据不稳定困扰?还在找兼容强、易部署的分布式IO方案?产品简介针对工业自动化现场IO扩展不灵
    的头像 发表于 05-07 19:33 197次阅读
    【新品】工业现场<b class='flag-5'>IO</b><b class='flag-5'>扩展</b>难、响应慢?M31-U-CAT EtherCAT分布式<b class='flag-5'>IO</b>主机来了

    MAX7310:2线接口8位I/O端口扩展器的详细解析

    MAX7310:2线接口8位I/O端口扩展器的详细解析 在电子设备设计中,I/O端口扩展器是一种常见且重要的组件,它可以帮助系统增加可用的I/O端口
    的头像 发表于 02-04 15:20 416次阅读

    MCP2502X/5X CAN I/O 扩展器:功能特性与应用指南

    MCP2502X/5X CAN I/O 扩展器:功能特性与应用指南 在如今的电子系统设计中,CAN(Controller Area Network)总线凭借其高可靠性、实时性和抗干扰能力,在汽车
    的头像 发表于 01-19 15:45 502次阅读

    MCP2502X/5X:CAN I/O 扩展器的详细解析

    MCP2502X/5X:CAN I/O 扩展器的详细解析 在嵌入式系统的设计中,CAN(Controller Area Network)总线因其高可靠性、实时性和广泛的应用场景,成为了众多工程师
    的头像 发表于 01-18 17:20 1738次阅读

    MCP2502X/5X CAN I/O 扩展器:功能、应用与设计要点

    MCP2502X/5X CAN I/O 扩展器:功能、应用与设计要点 在当今的电子设计领域,CAN(Controller Area Network)总线因其高可靠性、实时性和抗干扰能力,被广泛应用
    的头像 发表于 12-28 17:25 1395次阅读

    揭秘MCP2502X/5X CAN I/O扩展器:特性、功能与应用全解析

    揭秘MCP2502X/5X CAN I/O扩展器:特性、功能与应用全解析 在电子工程领域,CAN(Controller Area Network)总线作为一种可靠的通信协议,广泛应用于汽车、工业
    的头像 发表于 12-28 15:40 858次阅读

    HTR3355 I2C和SMBus IO扩展器产品详解

          在现代电子系统设计中,IO端口资源不足是常见的设计瓶颈,而一款性能稳定、适配性强的IO扩展器能够有效突破这一限制。HTR3355作为一款集成I2C和SMBus双接口的
    的头像 发表于 12-18 16:40 952次阅读
    HTR3355 I2C和SMBus <b class='flag-5'>IO</b><b class='flag-5'>扩展</b>器产品详解

    MCP2502X/5X CAN I/O 扩展器:功能、特性与应用详解

    MCP2502X/5X CAN I/O 扩展器:功能、特性与应用详解 在当今的电子系统设计中,CAN(Controller Area Network)总线凭借其高可靠性、实时性和抗干扰能力,在汽车
    的头像 发表于 12-18 16:30 629次阅读

    MCP22350 USB Type-C™ PD 3.1端口控制器技术解析

    Microchip Technology MCP22350 USB Type-C™供电 (PD) 3.1端口控制器设计用作外部Microchip MCU/SoC的配套PD控制器。这些控制器符合USB
    的头像 发表于 09-30 15:26 1514次阅读
    <b class='flag-5'>MCP</b>22350 USB Type-C™ PD 3.1<b class='flag-5'>端口</b>控制器技术解析