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

    文章

    1042

    浏览量

    48952
  • 74HC595
    +关注

    关注

    7

    文章

    189

    浏览量

    30509
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184822
收藏 人收藏

    评论

    相关推荐

    描述74hc595芯片的引脚功能

    74HC595是一款8位移位寄存器芯片,拥有广泛的应用领域。它具有多种引脚功能,下面将详细介绍每个引脚的功能及其用途。 引脚1 (SER): 串行数据输入 SER
    的头像 发表于 12-18 17:17 1357次阅读

    使用74HC595驱动LED流水灯实验

    74HC595的连接方式为PC6->DS, PC7->STCP, PC8->SHCP,采用两片74HC595极联,共用DS,STCP,SHCP引脚,实验所使用的下载器为STLINK 2V1版本,自带一个串口。
    的头像 发表于 11-29 16:20 624次阅读
    使用<b class='flag-5'>74HC595</b>驱动LED流水灯实验

    51单片机的超声波测距,并用74HC595驱动数码管显示超声波测距的距离

    个人是小白,实在不会写,麻烦大佬们帮忙写一个程序,实现51单片机的超声波测距,并用74HC595驱动数码管显示超声波测距的距离!!!
    发表于 11-23 15:19

    74hc595和max7219驱动的点阵在驱动方式有什么不同?

    74hc595和max7219驱动的点阵在驱动方式有什么不同
    发表于 11-09 06:45

    74HC595芯片的工作原理和用法简单介绍

    74HC59574hc164一样是在单片机系统中常用的芯片之一他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片, 使用74HC595可以节约单片机mcu的io口资源
    的头像 发表于 11-01 12:27 6849次阅读
    <b class='flag-5'>74HC595</b>芯片的工作原理和用法简单介绍

    74HC573和74HC595有什么区别?

    我们在控制点阵屏的时候为什么都用74HC595
    发表于 10-10 07:07

    74hc595单片机程序里DS=CY这个语句是什么意思?

    DS=CY;这个语句是在reg51.h中定义的,我不太明白这个语句是什么意思,请大佬帮忙解读一下 /@@*名称:74HC595串入并出芯片应用 说明:74HC595是具有一个8位串入并出的移位寄存器
    发表于 10-08 06:34

    HD74HC595 数据表

    HD74HC595 数据表
    发表于 06-27 19:03 0次下载
    HD<b class='flag-5'>74HC595</b> 数据表

    Arduino 74hc595移位寄存器

    电子发烧友网站提供《Arduino 74hc595移位寄存器.zip》资料免费下载
    发表于 06-14 10:03 3次下载
    <b class='flag-5'>Arduino</b> <b class='flag-5'>74hc595</b>移位寄存器

    74hc595的功能及作用

    74hc595是一种串行输入并行输出的移位寄存器,是TTL逻辑门的CMOS版本,具有低功耗、高速度、低噪声等优点,因此被广泛应用于数字电路设计中。下面介绍74hc595的功能及作用。
    的头像 发表于 06-07 18:13 8322次阅读
    <b class='flag-5'>74hc595</b>的功能及作用

    数据需要如何格式化才能发送到74HC595移位寄存器?

    定义的引脚可以工作,我可以打开一些继电器。我不明白的是数据需要如何格式化才能发送到 74HC595 移位寄存器。例如,根据我首先触发的中继,我得到不同的结果,这可能对我说我发送了太多数据并溢出到下一个
    发表于 06-02 08:30

    HD74HC595 数据表

    HD74HC595 数据表
    发表于 05-08 19:23 0次下载
    HD<b class='flag-5'>74HC595</b> 数据表

    基于AT89C51单片机用74HC59574LS154设计的点阵屏

    基于AT89C51单片机用74HC59574LS154设计的16×16点阵屏Proteus仿真及程序
    发表于 05-05 10:07 8次下载

    基于AT89C51单片机74HC595串入并出芯片应用

    基于AT89C51单片机74HC595串入并出芯片应用Proteus仿真及程序
    发表于 05-04 15:24 2次下载

    74HC595级联驱动多路继电器

    项目使用8片74HC595级联控制64个继电器动作,每片74HC595控制8个继电器。 74HC595的级联电路如下:
    发表于 04-27 14:18 31次下载
    <b class='flag-5'>74HC595</b>级联驱动多路继电器