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

    文章

    2092

    浏览量

    55148
  • 74HC595
    +关注

    关注

    7

    文章

    193

    浏览量

    32208
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195975
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索MC74HC595A与MC74HCT595A:8位移位寄存器的性能与应用解析

    在电子设计的领域中,移位寄存器是一种基础且关键的元件,它在数据传输和存储方面发挥着重要作用。今天,我们将深入探讨安森美(onsemi)的两款高性能8位串行输入/串行或并行输出移位寄存器——MC74HC595A和MC74HCT595A,了解它们的特性、参数以及应用场景。
    的头像 发表于 11-26 16:22 355次阅读
    探索MC<b class='flag-5'>74HC595</b>A与MC<b class='flag-5'>74HCT595</b>A:8位移位寄存器的性能与应用解析

    安世74HC138系列和74HC238系列3-8线解码器/多路信号分离器的国产替代型号推荐

    长晶科技作为国内领先的逻辑芯片制造商,现已成为安世74HC138系列和74HC238系列3-8线解码器/多路信号分离器的优质国产替代供应商。具体替代型号包括:CJ74HC
    的头像 发表于 11-18 16:14 294次阅读
    安世<b class='flag-5'>74HC</b>138系列和<b class='flag-5'>74HC</b>238系列3-8线解码器/多路信号分离器的国产替代型号推荐

    级联动态扫描显示数码管问题

    GD32F103C8T6 硬件SPI连接移位寄存器74HC595级联,动态扫描显示五位数码管 是否需要电平转换芯片TXB0104 数码管选择共阴极和共阳极区别是什么 若使用TXB0104,TXB0104的OE脚在代码书写时是否需要软件控制高低电平变化
    发表于 10-07 20:36

    Texas Instruments SN74AHC595/SN74AHC595-Q1计数器移位寄存器数据手册

    Texas Instruments SN74AHC595/SN74AHC595-Q1计数器移位寄存器包含一个8位串行输入、并行输出移位寄存器,提供一个8位D类存储寄存器。存储寄存器具有并行3态输出
    的头像 发表于 07-28 16:51 594次阅读
    Texas Instruments SN<b class='flag-5'>74AHC595</b>/SN<b class='flag-5'>74AHC595</b>-Q1计数器移位寄存器数据手册

    Texas Instruments SN74ACT595/SN74ACT595-Q1 SIPO移位寄存器特性/应用/功能图

    Texas Instruments SN74ACT595/SN74ACT595-Q1 8位串行输入并行输出 (SIPO) 移位寄存器,向8位D类存储寄存器馈送信号。存储寄存器具有并行输出。分别为存储
    的头像 发表于 07-07 15:27 571次阅读
    Texas Instruments SN<b class='flag-5'>74ACT595</b>/SN<b class='flag-5'>74ACT595</b>-Q1 SIPO移位寄存器特性/应用/功能图

    Texas Instruments SN74HC74/SN74HC74-Q1双路D型触发器特性/应用/框图

    Texas Instruments SN74HC74/SN74HC74-Q1双D型触发器包含两个独立的D型正边缘触发触发器,每个触发器均具有异步预设和清零引脚。这些设备具有2V至6V的宽工作电压范围
    的头像 发表于 07-03 15:06 695次阅读
    Texas Instruments SN<b class='flag-5'>74HC74</b>/SN<b class='flag-5'>74HC74</b>-Q1双路D型触发器特性/应用/框图

    飞凌嵌入式ElfBoard ELF 1板卡-LCD-IOMUX修改

    LCD数据引脚,做以下更改: 由于我们的LCD_PWREN是使用IO扩展芯片SN74HC595D: 而不是i.MX6ULL芯片的原生GPIO所以我们注释掉LCD_RST引脚: 当然也要将扩展
    发表于 06-07 10:58

    74VHC595;74VHCT595移位寄存器规格书

    电子发烧友网站提供《74VHC595;74VHCT595移位寄存器规格书.pdf》资料免费下载
    发表于 02-14 16:11 0次下载
    <b class='flag-5'>74VHC595</b>;<b class='flag-5'>74VHCT595</b>移位寄存器规格书

    74VHC595-Q100;74VHCT595-Q100移位寄存器规格书

    电子发烧友网站提供《74VHC595-Q100;74VHCT595-Q100移位寄存器规格书.pdf》资料免费下载
    发表于 02-14 15:13 0次下载
    <b class='flag-5'>74VHC595</b>-Q100;<b class='flag-5'>74VHCT595</b>-Q100移位寄存器规格书

    74HC74;74HCT74双D型触发器规格书

    电子发烧友网站提供《74HC74;74HCT74双D型触发器规格书.pdf》资料免费下载
    发表于 02-09 11:40 0次下载
    <b class='flag-5'>74HC74</b>;<b class='flag-5'>74HCT74</b>双D型触发器规格书

    74HC595-Q100;74HCT595-Q100移位寄存器规格书

    电子发烧友网站提供《74HC595-Q100;74HCT595-Q100移位寄存器规格书.pdf》资料免费下载
    发表于 02-08 17:26 0次下载
    <b class='flag-5'>74HC595</b>-Q100;<b class='flag-5'>74HCT595</b>-Q100移位寄存器规格书

    74HC595;74HCT595移位寄存器规格书

    电子发烧友网站提供《74HC595;74HCT595移位寄存器规格书.pdf》资料免费下载
    发表于 02-08 16:49 0次下载
    <b class='flag-5'>74HC595</b>;<b class='flag-5'>74HCT595</b>移位寄存器规格书

    74HC193;74HC7193二进制加减计数器规格书

    电子发烧友网站提供《74HC193;74HC7193二进制加减计数器规格书.pdf》资料免费下载
    发表于 02-07 16:28 0次下载
    <b class='flag-5'>74HC</b>193;<b class='flag-5'>74HC</b>7193二进制加减计数器规格书

    CD74HC244和SN74HC244有什么区别?

    TI的CD74HC244和SN74HC244有什么区别
    发表于 01-14 07:11

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

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