在ARDUINO中,我们有20个I / O引脚,因此我们可以对20个UNO引脚进行编程,以用作输入或输出。尽管ATMEGA328P控制器上的引脚比UNO上的引脚多,这是因为在设计电路板时,某些引脚是默认的。
现在,对于某些应用程序,我们需要30多个引脚,也就是说,如果我们要设计5x5x5 LED CUBE,那么为此,我们需要5x5 + 5 = 30pins。对于这种情况,我们使用串行到并行转换器芯片或移位寄存器。移位寄存器芯片以串行方式从UNO板上获取数据,并以8位并行配置提供输出。
所需组件
硬件: Arduino uno板,连接引脚,220Ω电阻,LED(八个),74HC595 IC,面包板。
Sofware:每晚的Arduino
电路图和工作说明
在这里,我们将通过单个通道将八位数据发送到移位寄存器。移位寄存器串行获取数据并将该数据存储在其存储器中。控制器发送完数据后,我们将发送一个命令到移位寄存器以在输出处显示数据,通过此命令,移位寄存器可以并行输出数据。
该输出由连接在输出处的八个LED表示。
对于移位寄存器连接的Arduino UNO我们需要做两件事情:
|
首先,我们需要将UNO的任意三个引脚设置为输出。然后我们需要将数字引脚,时钟引脚和锁存引脚连接到这三个输出引脚。之后,我们需要告诉UNO哪个芯片引脚连接到UNO板引脚。这可以通过简单地在命令“
shiftOut(dataPin, clockPin, data);
”中编写来完成。此处的数据可以是二进制,十进制或十六进制。代替“数据”写入需要发送的八位信息。
发送的数据按以下方式完成:
禁用闩锁,这告诉芯片暂时不显示输出。
我们将连续八次发送带有时钟的数据,因此时钟高,数据低,时钟低,依此类推。
使能锁存器,这告诉芯片显示八位数据。
在下面给出的C代码中逐步说明了ARDUINO与SHIFT REGISTER的工作: