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

    浏览量

    10939
  • Netduino
    +关注

    关注

    0

    文章

    19

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何用FastMCP快速开发自己的MCP Server?

    作者:算力魔方创始人/英特尔创新大使刘力很多读者反馈:通过 《MCP将百度地图能力轻松接入DeepSeek》 和 《如何用DeepSeek+MCP实现AutoGLM沉思的能力?》 的实战,真真切切
    的头像 发表于 05-07 16:07 ?1508次阅读
    如何用FastMCP快速开发自己的<b class='flag-5'>MCP</b> Server?

    HTR33xx具有中断功能的16位I2C和SMBus IO扩展器中文手册

    ? ? ? HTR33xx是一款I2C和SMBus ?IO扩展器2.2V~5.5V电源供电。16个IO端口中的任何一个都可以单独配置为输入或输出。此外,任一I0可驱动LED。? ? ?
    发表于 04-14 16:25 ?0次下载

    算力魔方IO扩展模块介绍 网络篇1

    一,算力魔方简介 算力魔方?AIPC是目前市面上唯一的模块化迷你电脑,在巴掌大小的空间提供强大的AI算力!主机分为两个模块:第一层计算模块与第二层IO扩展模块,而选择不同的IO扩展模块
    的头像 发表于 04-09 14:33 ?365次阅读
    算力魔方<b class='flag-5'>IO</b><b class='flag-5'>扩展</b>模块介绍 网络篇1

    如何构建MCP客户端

    Anthropic开源了一套MCP协议,它为连接AI系统与数据源提供了一个通用的、开放的标准,单一协议取代了碎片化的集成方式。本文教你从零打造一个MCP客户端。
    的头像 发表于 03-20 09:32 ?1589次阅读
    如何构建<b class='flag-5'>MCP</b>客户端

    纳祥科技NX2069,国产I2C总线8位IO扩展器,远程 I/O口扩展,替代PCF8574

    NX2069 IO扩展芯片内含8个准双向I/O口(P0-P7),每个端口既可以作为输出端口驱动外部负载,也可以作为输入端口读取外部设备的状态
    的头像 发表于 02-05 17:29 ?867次阅读
    纳祥科技NX2069,国产I2C总线8位<b class='flag-5'>IO</b><b class='flag-5'>扩展</b>器,远程 I/O口<b class='flag-5'>扩展</b>,替代PCF8574

    ADS1118IO端口模拟ISP接口通讯无法获得数据是怎么回事?

    求助 ADS1118IO端口模拟ISP接口通讯无法获得数据
    发表于 02-05 08:03

    远程IO模块怎么

    在工业自动化和物联网(IoT)领域,远程IO(输入/输出)采集模块扮演着至关重要的角色,允许系统远程监控和控制各种设备状态,从而实现更高效、灵活的数据采集和控制流程。 远程IO模块是一种硬件设备
    的头像 发表于 01-21 16:55 ?666次阅读

    具有中断功能的16位I 2C和SMBus IO扩展

    HTR33xx是一款I2C和 SMBus IO扩展器, 2.2V~5.5V电源供电。16个IO端口中的任何一个都可以单独配置为输入或输出。此外,任一
    的头像 发表于 11-21 11:57 ?541次阅读
    具有中断功能的16位I 2C和SMBus <b class='flag-5'>IO</b><b class='flag-5'>扩展</b>器

    Jacinto7 EVM四端口以太网扩展板用户指南

    电子发烧友网站提供《Jacinto7 EVM四端口以太网扩展板用户指南.pdf》资料免费下载
    发表于 11-14 13:47 ?0次下载
    Jacinto7 EVM四<b class='flag-5'>端口</b>以太网<b class='flag-5'>扩展</b>板用户指南

    多个TLV320AIC3254一路I2C总线对其配置可行吗?

    一片CPU3片TLV320AIC3254做音频处理,想用一路I2C总线对其配置可行吗? 地址好像是唯一的 0011000没法设置,手册中又提到可使用10位地址但是没找到说明怎样用,哪位大侠用过
    发表于 10-22 07:54

    MCU IO口的作用和特点

    MCU(微控制器)的IO口(Input/Output Port,输入输出端口)是单片机与外界进行信息交互的关键接口。这些IO口在微控制器的功能实现中扮演着至关重要的角色,它们不仅负责数据的输入和输出,还承载着电平转换、中断处理、
    的头像 发表于 09-30 11:52 ?3010次阅读

    【教程】比Modbus控制更简单!S7 200 SMART利用Profinet网关扩展IO

    PLC自带IO方法控制扩展IO。一配置Profinet网关首先导入Profinet网关的GSD文件,用于STEP7-MicroWINSMART组态软件配置Profi
    的头像 发表于 09-20 08:07 ?1354次阅读
    【教程】比Modbus控制更简单!S7 200 SMART利用Profinet网关<b class='flag-5'>扩展</b><b class='flag-5'>IO</b>

    怎样用THS3201实现输出功率可调?

    怎样用THS3201实现输出功率可调?
    发表于 08-26 08:28

    需要选择一颗并行io扩展器件,扩展16个io连接到外设io\'上,CD74HC4067满足要求吗?

    需要选择一颗并行io扩展器件,扩展16个io连接到外设io\'上,那么CD74HC4067是满足这个基本功能要求把?看着名字怎么叫模拟多路
    发表于 08-26 06:59

    CMOS可编程I/O端口扩展电路AiP82C55

    CMOS可编程I/O端口扩展电路AiP82C55
    的头像 发表于 08-09 09:55 ?721次阅读
    CMOS可编程I/O<b class='flag-5'>端口</b><b class='flag-5'>扩展</b>电路AiP82C55