在这个项目中,我将谈论移位寄存器,一个流行的移位寄存器集成电路- 74HC595,最后如何使用74HC595移位寄存器与Arduino和这个接口的好处。
简介
通常情况下,考虑一个小应用程序,其中您希望在Arduino(或任何微控制器)的帮助下驱动8个led。这个应用程序,虽然是一个非常基本和简单的一个,将需要您使用Arduino板的8个可用的输入/输出引脚:每个LED一个。
现在考虑一个稍微高级一点的项目,其中您的需求是驱动相同的8个led,还需要做其他事情,比如在16×2 LCD显示器或蓝牙设备上显示消息或任何信息,通过智能手机控制led !!
这种类型的大型项目将消耗你的Arduino板上的大量I/O引脚,可能没有足够的引脚来连接其他设备。
现在轮到移位寄存器IC来拯救我们了。
什么是移位寄存器?
移位寄存器基本上是一个串行到并行转换器IC,它通过一个单引脚(技术上你至少需要3个引脚,我将在后面讨论)将串行输入转换成8位并行输出,从而有效地减少了微控制器和它的输出设备之间的接口引脚数量。
还有其他类型的移位寄存器,如串行IN并行输出(我们感兴趣的),串行IN串行输出,并行IN串行输出和并行IN并行输出。有关移位寄存器的更多信息,请访问移位寄存器类型和应用程序.
在这个项目中,我将使用串行In和并行OUT类型的移位寄存器IC称为74HC595。
74HC595移位寄存器IC
如前所述,74HC595 IC是一个8位串行IN并行OUT移位寄存器。它是16针IC可用的广泛的封装,如DIP, SOIC, SSOP和TSSOP。
74HC595移位寄存器引脚图
下图是74HC595移位寄存器的引脚图。
74HC595移位寄存器引脚说明
下表简要描述了74HC595移位寄存器的引脚。
密码 | 销的名字 | 描述 |
15日1 - 7 | Qa, qb - qh | QA - QH(8)输出引脚 |
8 | 接地 | 地面销 |
9 | 这么多的 | 这么多的输出 |
10 | SRCLR” | 复位输入 |
11 | SRCLK | 时钟输入 |
12 | RCLK | 存储寄存器时钟输入 |
13 | OE的 | 允许输出 |
14 | 爵士 | 串行输入 |
16 | VCC | 电源电压 |
注意:74HC595移位寄存器IC有几家制造商,每个制造商的命名约定可能不同。请根据制造商的数据表核对。以上引脚名称来自德州仪器提供的数据表。
如何在Arduino上使用74HC595移位寄存器?
让我建立一个简单的电路,我将只使用Arduino UNO的三个引脚,并控制8个led。这将是可能的使用74HC595移位寄存器与Arduino。
移位寄存器中需要连接到Arduino的三个引脚分别是引脚11(时钟输入)、引脚12(存储寄存器时钟输入或简单地说闩锁输入)和引脚14(数据输入)。
所有8个led将连接到移位寄存器IC。(更多细节在电路设计部分)。
线路图
下图是74HC595移位寄存器与Arduino UNO接口的电路图。
组件的要求
- Arduino UNO
- 移位寄存器IC
- 电路试验板
- 8 X发光二极管
- 8 X 1KΩ电阻
- 5 v电源
- 连接电线
电路设计
首先,将74HC595移位寄存器的Serial Input Pin连接到Arduino的Pin 4上。然后将74HC595的11和12引脚分别连接到Arduino的6和5引脚上。
现在,将8个带有单独限流1KΩ电阻的led连接到74HC595 IC的8个输出引脚上。来到电源,将一个单独的5V电源连接到74HC595 IC,并将公共GND连接到Arduino,而不是从Arduino供电5V。
代码
下面是按顺序打开led的简单代码。
工作
现在让我们试着理解这个项目的工作原理。最初,当字节变量LED设置为0时,所有LED都是OFF的。现在,使用" bitSet "函数将每个位设置为1,并使用" shiftOut "函数将其移出。
相应的,每个LED将以相同的顺序打开。如果你想关闭LED,你可以使用“bitClear”功能。
应用程序
74HC595移位寄存器IC或任何类似的移位寄存器可用于以下应用:
- 领导控制
- 网络交换机
- 服务器
- 电力基础设施
- 工业控制
- 电子电器
- 简单串行到并行数据转换
- 捕获和保持逻辑