步驟1:購物清單
要使此項目成功,您需要:
原型屏蔽
可堆疊插頭或引腳插頭
一些導線
,最重要的是某些
MCP23017芯片
步驟2:焊接
現在是焊接的時候了。
看一下引腳圖或完整的數據表
首先放置芯片(看圖片,看看引腳在哪里)
然后焊接接地(棕線):將引腳10接地,然后將引腳15、16、17設置為地址(通過選擇5v或gnd),如果打算添加,這次將它們全部接地。
然后焊接5v(橙色導線),最重要的一個是引腳9。圖中的其余導線通到LED用來供電,而另一端則從引腳21供電(以表明它可以工作)。
最重要的是將SDA(引腳13)連接到A4(在arduino uno上)和SCL (針腳12)至A5(arduino uno)。對于其他arduino板,請閱讀規格以找到SDA和SCL引腳。要添加的另一重要事項是SDA SCL和5v之間的兩個電阻值分別在4.7k和10k之間(請參見原理圖)。它不是必需的(因為arduino有一些上拉電阻,但不是很強),但是如果要使之可靠,我建議您添加它們。
現在您有16個額外的I/O(引腳1至8和21) 28)。
步驟3:編程時間
使用I2C需要線庫(包含在標準arduino中) ),但它不是很容易使用。為了使其更簡單,我使用IOsheld Library,它使易于使用的命令來控制您的項目。只需將其保存在庫類別中。
并加載示例代碼并完成。
//64shield庫的示例代碼
//在Arduino I2C端口上與Centipede Shield或MCP23017一起使用
#include
#include
/*可用命令
.digitalWrite([0 。.. 127],[LOW 。.. HIGH])-行為與普通digitalWrite
.digitalRead([0 。.. 127])-行為與普通digitalRead
.pinMode([0 。.. 127],[INPUT 。.. OUTPUT])-行為與普通pinMode
.portWrite ([0 。.. 7],[0 。.. 65535])-將16位值寫入一個端口(芯片)
.portRead([0 。.. 7])-從16位值讀取一個端口(芯片)
.portMode([0 。.. 7],[0 。.. 65535])-將I/O掩碼寫入一個端口(芯片)
.pinPullup([0 。.. 127],[LOW 。.. HIGH])-設置輸入引腳上的上拉
.portPullup([0 。.. 7],[0 。.. 65535])-設置一個端口(芯片)上的上拉
.init()-將所有寄存器設置為初始值
示例
IO.init();
IO.pinMode(0,OUTPUT);
IO.digitalWrite(0,HIGH);
int recpin = IO.digitalRead(0);
IO.portMo de(0,0b0111111001111110);//0 =輸出,1 =輸入
IO.portWrite(0,0b1000000110000001);//0 = LOW,1 = HIGH
int報表= IO.portRead(0);
IO.pinPullup(1,HIGH);
IO.portPullup(0,0b0111111001111110);//0 =無上拉,1 =上拉
*/
IOshield IO;//創建64shield對象
void setup()
{
Wire.begin();//啟動I2C
IO.initialize();//將所有寄存器設置為默認值
IO.portMode(0,0b0000000000000000);//將芯片0上的所有引腳設置為輸出
//TWBR = 12;//對于400KHz I2C取消注釋(在16MHz Arduino上)
}
void loop()
{
for(int i = 0; i 《15; i ++){
IO.digitalWrite( i,HIGH);
delay(10);
}
for(int i = 0; i 《15; i ++){
IO.digitalWrite(i,LOW);
delay (10);
}
}
如果您想要更多的銷釘,請查看我的啟動項目,以創建64個I/O Arduino屏蔽!是的,在正常大小的arduino防護罩上有64個額外的針腳……瘋狂。。
步驟4:在Kickstarter上支持我們
64個IO盾啟動突擊戰
-
引腳
+關注
關注
16文章
1197瀏覽量
50575 -
Arduino
+關注
關注
188文章
6471瀏覽量
187212
發布評論請先 登錄
相關推薦
評論