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

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

3天内不再提示

怎样使用74HC595增加Arduino的数字引脚

454398 来源:wv 2019-10-22 17:26 次阅读

步骤1:制作该项目所需的条件

硬件

4个74HC595移位寄存器

4个16引脚DIP IC插座

16个1N4001二极管

1个40Pin接头连接器2.54mm

2个10K电阻

1330电阻

1个5mm LED

一个PCB,您可以从easyEDA订购不到5美元的软件

该软件:

Arduino IDE

MegaDAS_IOExtension库

步骤2:关于主要组件(74HC595)

硬件部分它非常简单,并且基于74HC595移位寄存器,因此是一种简便且经济的方法,可以增加开发板上的数字I/O引脚数量。这种集成电路本质上是数字的,就像Arduino上的数字引脚一样,这意味着它们只能读取或写入高或低逻辑电平,不应将其用于从模拟传感器或电位计读取数据。

我们可以找到许多基于这种移位寄存器的硬件和电路,例如Adafruit电机护罩,7段模块。该电路的使用非常方便,并且是多路复用的一种很好的动手方法,它是一种有效的技术,用于控制连接在一起的许多组件。

您可以在线订购5张74HC595图片,价格低于6 $:亚马逊

那么如何使用74HC595!

该电路提供了三个接口引脚,分别是SHIFT_CLOCK(SH_CP),LATCH_CLOCK(ST_CP)和数据引脚(DS)。

第一步是将数据存储在存储寄存器中,为此,我们需要将锁存器引脚设置为LOW以禁用输出,这样当我们向74HC595发送新数据时,输出引脚将保持不变。

下一步是通过对时钟引脚施加脉冲并从数据引脚发送新数据的每个字节,逐位串行发送数据。

最后一步是将闩锁引脚设置为高电平。这样,寄存器将更新(并行输出)。

您可以在其数据表中找到有关该集成电路的更多详细信息

我只是在解释如何移位寄存器可以工作,但是,我们将不做所有这些工作,因为我们将使用Arduino SPI库来控制整个过程,并且不要忘记您将拥有一个库来控制模块,而这只是有关移位寄存器的最后信息它具有8个并行输出(Q0-Q7)和一个串行输出(Q7‘)以进行级联。

步骤3:硬件设计(电路)

IOExtension模块基于四个移位寄存器(74HC595),可提供16个数字输入和16个数字输出,您只需在开发板上使用四个引脚即可控制模块,另外还需要Vcc和Gnd引脚

为了具有32个I/O引脚,我们将使用四个移位寄存器(74HC595),如图所示C。四个寄存器应具有同步的数据并同时更新所有输出和输入,这就是为什么我们应该将所有LATCH_CLOCK引脚以及所有SHIFT_CLOCK都连接在一起,但是第一个寄存器的Data引脚将连接到的原因您的Arduino开发板和其余寄存器将通过串行输出(Q7’)相互连接,这意味着将第一个移位寄存器的串行输出连接至下一个移位寄存器的数据引脚,依此类推。

我强烈推荐easyEDA网站制作您的PCB。

但是什么是easyEDA!

这是一个免费的在线电子设计自动化社区,允许创建,测试和编辑

在此处查找指向easyEDA平台的链接。

此在线程序在所有平台(甚至是android)上均受支持,借助easyEDA,您可以为文档制作Schematic Capture,电路仿真,在线PCB设计,可导入PCB和原理图文件,因此从这一点上我们可以理解,我们可以在此在线设计器中创建PCB,也可以仅使用其他软件来制造PCB,然后将gerber文件上传到easyEDA进行订购。

协同设计是最好的easyEDA的一部分,您可以使用公共或私人访问权限轻松协作并就设计发表评论。社区提供了完善的云开发,但这还不是全部,我们仍然拥有这个出色的Google chrome扩展,可以让您随时了解所有聊天伙伴和合作伙伴的活动。

登录后,开始一个新项目给它起个名字并选择其隐私权,别忘了简短的描述对您的合作伙伴总有好处,然后自动协助将指导您从选项和工具入手。在这个项目中,我们将使电路如图所示。 easyEDA库中有一些不可用的组件,例如74hc595移位寄存器,因此您应该在其他公共项目中进行搜索,只需写下标签并单击搜索,当找到它时,选择它,然后将其放在空白表中即可,但是您需要封装表示形式以完成PCB设计,因此请单击封装的空白区域并进行更新。

完成原理图后,您可以为文档下载漂亮的PDF或图像。关于PCB,单击“将项目转换为PCB”,您将获得适合您的电路的PCB,我在这个平台上真正喜欢的是它可以为您提供所需的组件,因此可以按您希望的方式放置它们。 easyEDA解决了手动路由的问题,使您只需单击一下即可制作自动路由器。

完成任务后,您可以添加一些选项,例如图像以改善外观,并添加一些指示器标签,然后如果要为PCB下订单,请单击制造输出按钮。我们的模块每5张图片不到30美元,这是一个不错的购买价格。

PCB收到很好

仅仅6天,我就收到了订单,给我留下了深刻的印象

第4步:软件(库)

IOGA扩展库是由MEGA DAS社区开发的,目的是促进使用同一社区制造的数字扩展模块(基于74HC595换档注册人)。

这是一个Github链接,用于下载该库。

此库包含所有必需的API,可以肯定地将这些库添加到您的libreries目录中,然后将它们用Arduino IDE编写的代码中使用。 。该软件包还包含示例文件,您可以在其中找到一些基本示例来演示如何将模块连接到开发板上以及如何利用API(例如DigitalRead和DigitalWrite示例),这些API表现出与Arduino digitalRead和digitalWrite API相同的行为。/p》

DigitalRead示例:

#include//包含MegaDAS_IOExtension头文件

const int SH_CP = 13;//13或ICSP-3(适用于Arduino Uno,Nano,Leonardo和101)52或//ICSP-3(适用于Arduino Mega2560和Mega1280)

const int DS = 11;//11或ICSP-4(适用于Arduino Uno,Nano,Leonardo和101)51或//ICSP-4(适用于Arduino Mega2560和Mega1280)

const int ST_CP = 3;

const int IN_P = 4;

const int LED = 13;

IOExtension myExt(SH_CP,DS,ST_CP,IN_P);//创建实例并命名为您想要的任何名称(在此示例中,实例为myExt)

void setup(){

pinMode(LED,OUTPUT);//将LED引脚配置为输出引脚

}

void loop(){

if(myExt.DigitalRead(1)== HIGH)//读取扩展模块digitalWrite(LED,HIGH)的第一个输入引脚//如果扩展输入为HIGH

else

digitalWrite(LED,LOW),则将LED输出设置为HIGH;//如果扩展输入为低,则将LED输出设置为低

}

DigitalWrite示例:

#include//包含MegaDAS_IOExtension头文件

const int SH_CP = 13;//13或ICSP-3(适用于Arduino Uno,Nano,Leonardo和101)52或//ICSP-3(适用于Arduino Mega2560和Mega1280)

const int DS = 11;//11或ICSP-4(用于Arduino Uno,Nano,Leonardo和101)51或

//ICSP-4(用于Arduino Mega2560和Mega1280)

const int ST_CP = 3;

const int IN_P = 4;

const int LED = 2;

IOExtension myExt(SH_CP,DS,ST_CP,IN_P);//创建实例并命名为所需名称(在此示例中,实例为myExt)

void setup(){pinMode(LED,OUTPUT);//将LED引脚配置为输出引脚}

void loop(){

myExt.DigitalWrite(LED,HIGH);//将第五个扩展模块引脚设置为HIGH

digitalWrite(LED,HIGH);//将第五个Arduino板引脚设置为HIGH

delay(1000);

myExt.DigitalWrite(LED,LOW);//将第五个扩展模块引脚设置为HIGH

digitalWrite(LED,LOW);//将第五个Arduino板引脚设置为HIGH

delay(1000);

}

我们试图确保您不会发现任何编码错误经过大量示例和不同用途组合测试后,由该库引起的。

该库允许用户编写最少的代码来控制所有输入和输出,因此仅使用两个简单的指令(例如DigitalRead(Pinx)或DigitalWrite(Pinx,value))就可以直接使模块运行并以肯定的方式确定MEGA DAS社区创建了这个Arduino库,以通过一些示例来解释该模块的使用。

步骤5:进行一些测试

按照上面的说明,我们得到了令人满意的结果,我们可以在没有任何问题的情况下使用新的GPIO引脚。

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

    关注

    16

    文章

    1195

    浏览量

    50429
  • 74HC595
    +关注

    关注

    7

    文章

    191

    浏览量

    30849
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    186981
收藏 人收藏

    评论

    相关推荐

    74hc244和74hc373功能区别是什么?

    要用74hc373做模拟并口,用于扩展io,leader说这个做输出可以,不能作为输入。说是74hc244可以做输入的,就是外部开关量作为输入,经过74hc再到mcu。 这俩是哪的区别导致的呢?一个貌似是总线驱动,一个是锁存。
    发表于 12-24 07:05

    CD74HC4046频率的公式是怎样的,怎么配置?

    CD74HC4046只看到规格书里有几个图,其求频率的公式是怎样的,怎么配置?
    发表于 11-11 06:43

    74hc595的功能及作用是什么

    74HC595是一款常用的8位串行输入、并行输出的移位寄存器,广泛应用于LED显示、驱动继电器、电机控制等领域。 74HC595的功能及作用 在数字电子领域,74HC595是一款非常受
    的头像 发表于 10-21 09:57 738次阅读

    74HC595常用移位寄存器芯片资料包

    在电子项目中,74HC595 是一款常用的移位寄存器芯片,它在很多领域都有着广泛的应用。 74HC595 具有多个显著的特点。首先,它可以实现串行输入并行输出,这意味着只需要很少的控制引脚就可以控制
    发表于 09-24 17:19 0次下载

    74HC595PW(nexperia)移位寄存器中文参数_功能图_引脚图_封装尺寸

    Nexperia的 74HC595PW 是一款性能卓越的8位串入/串或并出移位寄存器,适用于需要高效数据转换和存储的电子系统。此芯片广泛应用于计数器、移位寄存器等领域,凭借其灵活的设计和出色的性能
    的头像 发表于 09-10 14:37 480次阅读
    <b class='flag-5'>74HC595</b>PW(nexperia)移位寄存器中文参数_功能图_<b class='flag-5'>引脚</b>图_封装尺寸

    SM74HC595D高速CMOS器件规格书

    电子发烧友网站提供《SM74HC595D高速CMOS器件规格书.pdf》资料免费下载
    发表于 07-11 11:15 0次下载

    74HC595D/74HCT595D(nexperia)移位寄存器_中文参数_功能特点_工作原理

    74HC595D和74HCT595D是由Nexperia生产的高性能8位串入/串出或并出移位寄存器。这些器件集成了存储寄存器和三态输出,非常适用于多种电子控制和数据转换应用。它们的设计特点包括独立
    的头像 发表于 06-06 09:56 1179次阅读
    <b class='flag-5'>74HC595</b>D/<b class='flag-5'>74HCT595</b>D(nexperia)移位寄存器_中文参数_功能特点_工作原理

    SN74HC595-EP带3态输出寄存器的8位移位寄存器数据表

    电子发烧友网站提供《SN74HC595-EP带3态输出寄存器的8位移位寄存器数据表.pdf》资料免费下载
    发表于 06-04 11:11 0次下载
    SN<b class='flag-5'>74HC595</b>-EP带3态输出寄存器的8位移位寄存器数据表

    SN74HC74,SN54HC74二路D类上升沿触发器数据表

    电子发烧友网站提供《SN74HC74,SN54HC74二路D类上升沿触发器数据表.pdf》资料免费下载
    发表于 06-03 10:14 0次下载
    SN<b class='flag-5'>74HC74</b>,SN54<b class='flag-5'>HC74</b>二路D类上升沿触发器数据表

    采用三态输出寄存器的 8 位移位寄存器SN74HC595B数据表

    电子发烧友网站提供《采用三态输出寄存器的 8 位移位寄存器SN74HC595B数据表.pdf》资料免费下载
    发表于 05-31 09:25 0次下载
    采用三态输出寄存器的 8 位移位寄存器SN<b class='flag-5'>74HC595</b>B数据表

    高速CMOS LogicHex缓冲器CD54HC4049 CD74HC4049 CD54HC4050 CD74HC4050数据表

    电子发烧友网站提供《高速CMOS LogicHex缓冲器CD54HC4049 CD74HC4049 CD54HC4050 CD74HC4050数据表.pdf》资料免费下载
    发表于 05-17 10:46 0次下载
    高速CMOS LogicHex缓冲器CD54<b class='flag-5'>HC</b>4049 CD<b class='flag-5'>74HC</b>4049 CD54<b class='flag-5'>HC</b>4050 CD<b class='flag-5'>74HC</b>4050数据表

    stm8s-discovery驱动74hc595,管脚怎样连接?

    小白求助,stm8s-discovery驱动74hc595,管脚怎样连接?具体的程序原理是什么?
    发表于 05-13 08:46

    具有三态输出寄存器的CD74HC595 8位移位寄存器数据表

    电子发烧友网站提供《具有三态输出寄存器的CD74HC595 8位移位寄存器数据表.pdf》资料免费下载
    发表于 05-07 10:14 0次下载
    具有三态输出寄存器的CD<b class='flag-5'>74HC595</b> 8位移位寄存器数据表

    STM8如何控制HC595驱动8个LED?

    STM8如何控制HC595驱动8个LED,希望大神们能发个程序上来看一下,谢谢!
    发表于 04-25 07:56

    SPICONTROLE 4个HC595移位寄存器设置流水灯时,在SPIIINTIGRATIONED化了的时候,控制的HC595 LED跳了起来如何解决?

    采用 SPICONTROLE 4个HC595移位寄存器,在设置流水灯的时候了,SPICONTROLLES正常,但是在SPIIINTIGRATIONED化了的时候,控制的HC595的LED跳了起来。请问该如何解决。例子比如:初始化时装的时候全部,但是还有几个灯一直是亮的。
    发表于 01-29 08:06