0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何添加ArduinoUno的额外I/O引脚

454398 来源:wv 2019-09-23 08:44 次阅读

步骤1:购物清单

如何添加ArduinoUno的额外I/O引脚

要使此项目成功,您需要:

原型屏蔽

可堆叠插头或引脚插头

一些导线

电阻器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盾启动突击战

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 引脚
    +关注

    关注

    16

    文章

    1042

    浏览量

    48947
  • Arduino
    +关注

    关注

    184

    文章

    6426

    浏览量

    184800
收藏 人收藏

    评论

    相关推荐

    鸿蒙原生应用开发-ArkTS语言基础类库多线程I/O密集型任务开发

    使用异步并发可以解决单次I/O任务阻塞的问题,但是如果遇到I/O密集型任务,同样会阻塞线程中其它任务的执行,这时需要使用多线程并发能力来进行解决。
    发表于 03-21 14:57

    求助,关于CX3上未使用的I/O引脚的简单问题

    这是一个关于 CX3 上未使用的 I/O 引脚的简单问题。CYUSB306X 数据表(第 20 页)建议 \" 应使用内部上拉电阻 \" 将所有未使用的 I/
    发表于 02-22 06:55

    HighTec怎么添加.o文件?

    请问大神HighTec怎么添加.o文件,我现在有个软件包,其中几个函数没有源码,软件包里提供的是.o文件里面包含了这几个函数,该怎么添加到编译器里才能编译通过呢?
    发表于 02-18 07:16

    应用方案:MCU通用I/O引脚扩展

    MCU通用I/O引脚扩展 低端MCU由于I/O口数量不足导致部分功能无法实现,用户需要使用数字集成芯片进行扩展,如74LS系列移位寄存器,但
    发表于 01-08 09:35

    为什么无法改变单片机I/O输出电平?

    请问一下我在使用51最小系统板做流水灯的时候通过程序无法改变I/O输出电平是怎么回事,I/O持续输出5V高电平,但是把芯片换到另一个基座就可以改变,请问哪里可能出问题了
    发表于 09-27 07:38

    keil逻辑分析仪不能添加引脚

    keil逻辑分析仪不能添加引脚? Keil逻辑分析仪是一种常用的电子测试工具,可以用于分析和监测数字电路的信号。它可以测量并记录数字信号的电压、时序、频率等参数,并将结果以图形或数字形式显示出来
    的头像 发表于 09-19 17:15 1090次阅读

    I/ O检测时如何使用SysTick进行计数

    应用程序 : 当 I/ O 检测时, 请使用 SysTick 进行计数。 如果在一段时间之间发生反弹, 请不要响应以避免噪音 。 BSP 版本: NUC123系列 BSP CMSIS
    发表于 08-30 08:03

    请问NucleiStdio里面如何添加自己额外的C函数库并成功编译?

    我现在从fftw官网下载了Windows下的库函数安装包,想要在蜂鸟e203上编程调用fftw来计算FFT。目前不清楚应该把fftw的函数库添加到哪里,同时请问调用这种额外的库编程和普通C程序编译有什么不同呢? 下面是程序编译的错误:
    发表于 08-11 11:35

    请问如何透过PinView确认I/O是否有漏电流?

    如何透过PinView确认I/O是否有漏电流?
    发表于 06-26 07:08

    NUC123 SPI如何使用Dual I/O功能?

    所使用的板子:NuTiny_NUC123 x 2 功能描述: 當我們使用SPI Flash的時候, 為了加快讀/寫速度, 有支援Dual I/O或是Quad I/O功能的型號
    发表于 06-21 07:13

    如何在Arduino和ESP上构建按钮输入的提示?

    7 个 IO 引脚。 我正在使用二进制编码。这意味着我可以在 2 个 I/O 引脚上使用 3 个按钮,在 3 个 I/
    发表于 05-25 08:15

    为ESP8266制作了一个“通用I/O桥的疑问求解

    我为 ESP8266 制作了一个“通用 I/O 桥”。它最初是另一个透明串行桥,但我添加了其他几个功能,如 GPIO 和 I2C,所以我猜“基本透明桥”这个名字不再合适,我重命名了这个
    发表于 05-12 08:09

    PCA***未使用的I/O端口的原因?

    您好,PCA***上未使用的I/O端口应该如何端接?这些可以悬空/不连接还是应该上拉/下拉?谢谢!
    发表于 05-09 06:07

    如何将额外数据从lwip传输到ESP8266WiFiSTA?

    dhcp.h 中,并扩展了 dhcp.c 中的功能以在请求中传输额外的选项号。我还扩展了解析器以寻找其他选项,但这是事情开始崩溃的地方。 我计划扩展 Arduino IDE 库以添加获取这些附加选项值的函数
    发表于 05-08 06:08

    MBDT 1.3.0支持100引脚MaxQFP中的S32K312吗?

    发行说明列出了对 172 引脚 MaxQFP 中的 S32K312 和 100 引脚 MaxQFP 中的 S32K311 的支持,但不支持 100 引脚封装中的 \'312。 有没有快速的方法来
    发表于 04-28 06:00