电子说
步骤1:购物清单
要使此项目成功,您需要:
原型屏蔽
可堆叠插头或引脚插头
一些导线
电阻器和LEDs
,最重要的是某些
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盾启动突击战
全部0条评论
快来发表一下你的评论吧 !