MCP23008 芯片是一個8位(8端口)數字I/O擴展器芯片,通過I2C進行通信。它提供八(8)個IP端口,可用于向Netduino添加額外的數字輸入和輸出端口。它還可以與多達七(7)個額外的MCP23008芯片組合,提供多達64個額外端口。
要連接MCP23008芯片,請參考下面的引腳數據表。
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瀏覽量
10745 -
Netduino
+關注
關注
0文章
19瀏覽量
3450
發布評論請先 登錄
相關推薦
納祥科技NX2069,國產I2C總線8位IO擴展器,遠程 I/O口擴展,替代PCF8574
![納祥科技NX2069,國產I2C總線8位<b class='flag-5'>IO</b><b class='flag-5'>擴展</b>器,遠程 I/O口<b class='flag-5'>擴展</b>,替代PCF8574](https://file1.elecfans.com/web3/M00/07/68/wKgZO2elakCAHWfpAACbF6Z_s1c610.png)
具有中斷功能的16位I 2C和SMBus IO擴展器
![具有中斷功能的16位I 2C和SMBus <b class='flag-5'>IO</b><b class='flag-5'>擴展</b>器](https://file1.elecfans.com/web2/M00/0C/18/wKgZomc-q4WASsWvAAIwbKBUO_k718.png)
需要選擇一顆并行io擴展器件,擴展16個io連接到外設io\'上,CD74HC4067滿足要求嗎?
OPA735加OPA333,怎樣用TINA TI去仿真?
AiP82C55通用可編程I/O端口擴展芯片產品介紹
![AiP82C55通<b class='flag-5'>用</b>可編程I/O<b class='flag-5'>端口</b><b class='flag-5'>擴展</b>芯片產品介紹](https://file1.elecfans.com/web2/M00/FF/A0/wKgaomajZ6CAdF7KAAAa2UZq9UQ843.png)
stm32f100怎樣用重映射功能?
在嵌入式設計中擴展串行端口的入門知識
![在嵌入式設計中<b class='flag-5'>擴展</b>串行<b class='flag-5'>端口</b>的入門知識](https://file1.elecfans.com/web2/M00/D2/45/wKgaomYjGnmAQF-3AADqKe7Rp-Y977.png)
評論