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

    浏览量

    11068
  • Netduino
    +关注

    关注

    0

    文章

    19

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    最新MCP规范解读,看这篇就够了!

    一、MCP是什么? 为什么需要它? 想象一下,你正在开发一个 AI 编程助手,它需要: 读取和修改项目文件 查询数据库Schema 搜索代码仓库 执行Git操作 传统做法是为每个数据源写一套专用代码
    的头像 发表于 11-12 16:29 953次阅读
    最新<b class='flag-5'>MCP</b>规范解读,看这篇就够了!

    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 610次阅读
    <b class='flag-5'>MCP</b>22350 USB Type-C™ PD 3.1<b class='flag-5'>端口</b>控制器技术解析

    【内测活动同步开启】这么小?这么强?新一代大模型MCP开发板来啦!

    ,将碰撞出怎样的智能火花?关注并私信获得内测资格! 视频: 「Arcs-Mini」聆思打造全新大模型MCP开发板小巧机身,蕴含强大能量 实现真人般自然对话体验,会感知、会表达、会表情、懂共情,独家人声滤
    发表于 09-25 11:47

    TCAL6416 I²C总线IO扩展器技术解析与应用指南

    Texas Instruments TCAL6416 I^2^C总线/SMBus I/O扩展器支持两线双向I^2^C总线(或SMBus)协议通用并行输入/输出 (I/O) 扩展解决方案
    的头像 发表于 09-07 15:59 788次阅读
    TCAL6416 I²C总线<b class='flag-5'>IO</b><b class='flag-5'>扩展</b>器技术解析与应用指南

    MAX7301 4线接口、2.5V至5.5V、20端口或28端口输入/输出扩展器技术手册

    MAX7301是一款紧凑型、串行接口、I/O扩展器(或通用I/O (GPIO)外设),为微处理器提供最多28个端口。每个端口都可独立地由用户配置为逻辑输入或逻辑输出。 每个端口
    的头像 发表于 05-26 14:07 718次阅读
    MAX7301 4线接口、2.5V至5.5V、20<b class='flag-5'>端口</b>或28<b class='flag-5'>端口</b>输入/输出<b class='flag-5'>扩展</b>器技术手册

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

    作者:算力魔方创始人/英特尔创新大使刘力很多读者反馈:通过 《MCP将百度地图能力轻松接入DeepSeek》 和 《如何用DeepSeek+MCP实现AutoGLM沉思的能力?》 的实战,真真切切
    的头像 发表于 05-07 16:07 2445次阅读
    如何用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次下载

    一文详解MCP传输机制

    MCP 传输机制(Transport)是 MCP 客户端与 MCP 服务器通信的一个桥梁,定义了客户端与服务器通信的细节,帮助客户端和服务器交换消息。
    的头像 发表于 04-14 14:03 2962次阅读
    一文详解<b class='flag-5'>MCP</b>传输机制

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

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

    如何构建MCP客户端

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

    设计者怎样根据DSP的规格书来确定哪根IO口可以当做LCD的时钟信号呢?

    这个是主控IO口说明,LCD的时钟频率要求40MHZ,这里AA12当做LCD时钟信号。那么设计者怎样根据DSP的规格书来确定哪根IO口可以当做 LCD的时钟信号呢?
    发表于 03-06 06:58

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

    NX2069 IO扩展芯片内含8个准双向I/O口(P0-P7),每个端口既可以作为输出端口驱动外部负载,也可以作为输入端口读取外部设备的状态
    的头像 发表于 02-05 17:29 1481次阅读
    纳祥科技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 1139次阅读

    XTR108 Vo端可以输出0.5-2.5V电压,而Io端口却无法输出4-20mA电流,为什么?

    使用万表可以测到Vo端子的电压正常,但Io端口无法输出正常电压,Io接的负载电阻为150Ω,断电时测得电阻40Ω,应该是芯片内部有电阻与其并联,即电阻应该是正常的。不知道是什么问题
    发表于 01-08 07:44