MCP23008 芯片是一個(gè)8位(8端口)數(shù)字I/O擴(kuò)展器芯片,通過I2C進(jìn)行通信。它提供八(8)個(gè)IP端口,可用于向Netduino添加額外的數(shù)字輸入和輸出端口。它還可以與多達(dá)七(7)個(gè)額外的MCP23008芯片組合,提供多達(dá)64個(gè)額外端口。
要連接MCP23008芯片,請(qǐng)參考下面的引腳數(shù)據(jù)表。
MCP23008的引腳映射
MCP23008是硬件領(lǐng)域的通用集成電路,是硬件的典型接口芯片,如I2C LCD。
Netduino.Foundation 是一個(gè)使用Netduino上的.NET MicroFramework快速輕松地構(gòu)建連接內(nèi)容的平臺(tái)。由Wilderness Labs創(chuàng)建,它完全開源并由Netduino社區(qū)維護(hù)。
如果您是Netduino開發(fā)的新手,我建議您進(jìn)入Netduino項(xiàng)目入門以正確設(shè)置你的開發(fā)環(huán)境。
第1步 - 組裝電路
對(duì)于這個(gè)項(xiàng)目,按照Fritzing圖中的說(shuō)明連接你的面包板和Netduino:
MCP23008的電路圖
注 - 所有三個(gè)地址引腳(芯片左側(cè)的三條綠色跳線)都拉高。這指定了MCP23008的I2C地址 - 在這種情況下,地址為39。
步驟2 - 創(chuàng)建Netduino項(xiàng)目
在Visual Studio 2015 for Windows中創(chuàng)建Netduino項(xiàng)目最新的Visual Studio for Mac;將項(xiàng)目命名為 Blinky_MCP23008 。
步驟3 - 添加Netduino.Foundation NuGet包
Windows
右鍵單擊 Blinky_MCP23008 項(xiàng)目,然后單擊管理NuGet包。在“瀏覽”選項(xiàng)卡中,搜索Netduino.Foundation;它應(yīng)該是第一個(gè)搜索結(jié)果。單擊安裝按鈕。
添加Netduino.Foundation NuGet包
現(xiàn)在搜索 Netduino.Foundation.MCP23008 并將其添加到您的項(xiàng)目中。
macOS
在解決方案資源管理器中按住Alt鍵并單擊 Blinky_MCP23008 項(xiàng)目,然后單擊添加=》添加NuGet打包打開NuGet包窗口。搜索 Netduino.Foundation 包,然后單擊添加包將其添加到項(xiàng)目中。
添加Netduino.Foundation NuGet包
現(xiàn)在搜索 Netduino.Foundation.MCP23008 并將其添加到您的項(xiàng)目中。
步驟4 - 編寫MCP23008項(xiàng)目的代碼
添加App類
對(duì)于這個(gè)項(xiàng)目,我們實(shí)現(xiàn)了一個(gè)管理所有外圍設(shè)備的通用 App 軟件模式主要邏輯。
在項(xiàng)目中添加一個(gè)新的 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);
}
}
}
}
}
程序類
最后,創(chuàng)建一個(gè)新的 App 類對(duì)象并調(diào)用運(yùn)行方法。您的代碼應(yīng)如下所示:
using System.Threading;
namespace Blinky_MCP23008
{
public class Program
{
public static void Main()
{
App app = new App();
app.Run();
Thread.Sleep(Timeout.Infinite);
}
}
}
步驟5 - 運(yùn)行項(xiàng)目
單擊Visual Studio中的運(yùn)行按鈕以查看LED指示燈亮起!它們將按順序打開和關(guān)閉,由MCP23008上的GP端口控制。它應(yīng)該看起來(lái)像以下gif:
MCP23008示例項(xiàng)目正在運(yùn)行
-
IO端口
+關(guān)注
關(guān)注
0文章
31瀏覽量
10675 -
Netduino
+關(guān)注
關(guān)注
0文章
19瀏覽量
3432
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論