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

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

3天内不再提示

使用两个74HC595移位寄存器的Arduino 16 LED

454398 来源:网络整理 作者:网络整理 2019-11-11 17:00 次阅读

第1步:组件

-Arduino UNO (x1)

-74HC595移位寄存器( x2)

-LEDs (x16)

-220omh电阻器(x16)

-多根导线

-两个面包(一个带有400针,另一个带有830)

-电位器,用于控制亮度(可选)

第2步:电路

使用两个74HC595移位寄存器的Arduino 16 LED

进行电路(见上文)并按如下方式连接第一个移位寄存器:

-GND(引脚8)接地

-Vcc(引脚16)到5V

-OE(引脚13)接地

- MR(引脚10)至5V

-DS(引脚14)至Arduino引脚11

-SH_CP(引脚11)至Arduino引脚12

-ST_CP (引脚12)到Arduino引脚8

连接第二个移位寄存器完全相同,但是将DS(引脚14)连接到第一个寄存器引脚9。之后,将引脚:从两个寄存器连接到LED的1、2、3、4、5、6、7和15。这种连接使所有引脚始终处于活动状态且可寻址,但是当Arduino通电时,某些LED可能会打开。解决方案是将MR(引脚10)和OE(引脚13)直接连接到Arduino,但是这样一来,您必须牺牲2个Aurduino引脚。

要添加更多的移位寄存器,就像第二个一样寄存器。始终将MR和OE引脚直接连接到Arduino,将DS引脚直接连接到先前的寄存器。

如果要调节LED的亮度,请按照上图所示连接电位计以控制所有LED的电阻

第3步:代码

现有代码旨在用于有限数量的移位寄存器和没有通用的功能/方法可以做到这一点。作为软件开发人员,这对我来说是不可接受的,并且我习惯于使所有内容尽可能地动态,没有限制。我重新设计了现有代码示例,以允许您使用无限数量的移位寄存器。参见下面的代码:

int numOfRegisters = 2;

byte * registerState;

void setup(){

//初始化数组

registerState =新字节[numOfRegisters];

for(size_t i = 0; i

registerState [i] = 0;

}

//。.. setup

}

void regWrite(int pin,bool state){

//确定寄存器int reg = pin/8;

//确定实际寄存器的

int actualPin = pin-(8 * reg);

//开始会话

digitalWrite(latchPin,LOW);

for(int i = 0; i

//获取寄存器的实际状态

字节*状态=®isterState[i];

//更新状态

if(i == reg){

bitWrite(* states,ActualPin,state);

}

//写入

shiftem(dataPin,clockPin,MSBFIRST,* sta TES);

}

//结束会话

digitalWrite(latchPin ,HIGH);

}

第4步:最终代码

我将完整的源代码发布在github上,因为这里不可读:

https://github.com/jr2002008/Arduino-74HC595-shift-registers/blob/master/ArduinoLEDsWithShiftRegisters/ArduinoLEDsWithShiftRegisters.ino

在最终代码中,我为这16个LED添加了几种效果。上面的视频演示了这些效果。如果要添加更多的LED,请按照前面所述连接更多的寄存器,并在代码中更改 numOfRegisters 的值(还可以调整效果的逻辑)。

您也可以使用此代码不仅仅用于LED,如果您只是想为Arduino使用更多引脚,请使用 regWrite(int引脚,布尔状态)函数为任何引脚写入状态,并且没有限制多少移位寄存器您正在使用,只需更改 numOfRegisters 的值,其他所有操作都会自动执行。
责任编辑:wv

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

    关注

    237

    文章

    22416

    浏览量

    645762
  • 移位寄存器
    +关注

    关注

    2

    文章

    179

    浏览量

    22008
  • 74HC595
    +关注

    关注

    7

    文章

    189

    浏览量

    30505
  • Arduino
    +关注

    关注

    184

    文章

    6425

    浏览量

    184767
收藏 人收藏

    评论

    相关推荐

    带输出寄存器的8位移位寄存器74LVC594A产品数据表

    电子发烧友网站提供《带输出寄存器的8位移位寄存器74LVC594A产品数据表.pdf》资料免费下载
    发表于 02-25 09:37 0次下载
    带输出<b class='flag-5'>寄存器</b>的8位<b class='flag-5'>移位寄存器</b><b class='flag-5'>74</b>LVC594A产品数据表

    8位串行输入/串行输出或并行输出移位寄存器74LVC595A产品数据表

    电子发烧友网站提供《8位串行输入/串行输出或并行输出移位寄存器74LVC595A产品数据表.pdf》资料免费下载
    发表于 02-25 09:22 0次下载
    8位串行输入/串行输出或并行输出<b class='flag-5'>移位寄存器</b><b class='flag-5'>74LVC595</b>A产品数据表

    移位寄存器可降低LED设计的尺寸和成本

    在使用 LED 的设计中,移位寄存器非常有用。例如,如果系统包括七段显示器、单个指示器或形成网格或面板的 LED 阵列,则可以使用标准 8 位移位寄存器来允许低引脚数微控制器驱动多个
    发表于 01-30 15:14 123次阅读
    <b class='flag-5'>移位寄存器</b>可降低<b class='flag-5'>LED</b>设计的尺寸和成本

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

    采用 SPICONTROLE 4HC595移位寄存器,在设置流水灯的时候了,SPICONTROLLES正常,但是在SPIIINTIGRATIONED化了的时候,控制的HC595
    发表于 01-29 08:06

    移位寄存器的工作原理 移位寄存器左移和右移怎么算

    移位寄存器是一种用于在数字电路中实现数据移位操作的基本电路元件。它由多个触发器以及相关控制电路组成,具有存储、接受和移动数据的功能。移位寄存器可以分为两种类型:串行移位寄存器和并行
    的头像 发表于 01-18 10:52 1339次阅读

    labview移位寄存器如何清零

    LabVIEW中的移位寄存器(Shift Register)是一种用于存储和移动数据的功能性块。它类似于传统计算机中的寄存器,可以用于在循环中保留变量的状态。但与传统寄存器不同的是,移位寄存器
    的头像 发表于 01-05 13:49 697次阅读

    描述74hc595芯片的引脚功能

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

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

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

    移位寄存器连接方法及类型

    移位寄存器在一条线上接收传输的4位和8位信号,并一一发送出去。反之亦然,它的作用是将海量的数据分拣到每一位,进行转换和传输数据,移位寄存器允许高速传输大量信号而无需大量布线。在本文中将解释此类移位寄存器
    的头像 发表于 07-07 10:50 1630次阅读

    什么是移位寄存器移位寄存器的用途是什么?

    移位寄存器是数字电子学中的常见构建模块,用于存储和移动位,例如,从串行数据转换为并行数据,反之亦然。
    的头像 发表于 06-29 11:21 4678次阅读
    什么是<b class='flag-5'>移位寄存器</b>?<b class='flag-5'>移位寄存器</b>的用途是什么?

    Arduino 74hc595移位寄存器

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

    74hc595的功能及作用

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

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

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

    如何使用74HC595移位寄存器和ESP8266与PWM进行快速多路复用?

    大家好,我想使用 74HC595 移位寄存器和 ESP8266 与 PWM 进行快速多路复用。我非常想运行 6 位 7 段显示,每个段都可以单独调光。我设法使用具有 5 亮度级别的
    发表于 05-15 07:56

    74HC595级联驱动多路继电器

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