Arduino Nano 级联 4 片 74HC595 驱动 32 个 LED:新手入门指南
元件与物料
| Arduino Nano R3 | ×1 |
| Texas Instruments 74HC595 移位寄存器 (串并转换) | ×4 |
| 全尺寸免焊面包板 | ×1 |
| LED (按喜好颜色) | ×32 |
| 100Ω 电阻 (视 LED 型号选型) | ×32 |
| 杜邦线 (大量) | ×1 |
软件
- Arduino IDE
项目简介
面向初学者与“ArduiNOOBS”的分步图文教程,讲解 74HC595 8 位移位寄存器基础、级联 (菊花链) 扩展输出、以及 HC595 库的使用。作者在调试中遇到部分寄存器工作异常,疑似供电不足,供读者参考。
必备参考链接
- HC595 库:GitHub - j-bellavance/HC595
- 数据手册:TI SN74HC595
- 进阶教程:使用 74HC595 与 Arduino Uno
- For 循环迭代:Arduino 官方教程
接线原理图

关键连接:
• 所有 74HC595 的 SH_CP (Pin 11) 并联接 Arduino D3 (时钟)
• 所有 ST_CP (Pin 12) 并联接 Arduino D4 (锁存)
• 首片 DS (Pin 14) 接 Arduino D2 (数据)
• 后续各片 DS 接前一片 Q7' (Pin 9) 实现串行级联
• 每片 Q0-Q7 接 LED 阳极 (经限流电阻),阴极接地
• VCC 接 5V,GND 接地,OE (Pin 13) 接地常使能,MR (Pin 10) 接 5V 禁止复位
面包板实物布线参考









示例代码 (基于 HC595 库修改)
#include <HC595.h>
const int chipCount = 4; // 级联 4 片 74HC595 (最多支持 8 片)
const int latchPin = 4; // ST_CP (Pin 12)
const int clockPin = 3; // SH_CP (Pin 11)
const int dataPin = 2; // DS (Pin 14)
HC595 ledArray(chipCount, latchPin, clockPin, dataPin);
int delayMs = 30;
int lastPin = ledArray.lastPin(); // 31
void setup() {
ledArray.reset(); // 全部熄灭
}
void loop() {
// 顺序点亮
for (int i = 0; i <= lastPin; i++) {
ledArray.setPin(i, ON);
delay(delayMs);
}
// 逆序熄灭
for (int i = lastPin; i >= 0; i--) {
ledArray.setPin(i, OFF);
delay(delayMs);
}
// 逆序翻转
for (int i = lastPin; i >= 0; i--) {
ledArray.setPin(i, TOGGLE);
delay(delayMs);
}
// 顺序翻转
for (int i = 0; i <= lastPin; i++) {
ledArray.setPin(i, TOGGLE);
delay(delayMs);
}
}
库文件封装了移位、锁存等底层操作,极大简化代码。若不使用库,需手动实现 shiftOut() 与锁存脉冲。
常见问题排查
- 部分 LED 不亮/闪烁: 检查面包板接触、电阻值、级联数据线 (Q7'→DS) 是否可靠。
- 供电不足: 4 片 74HC595 + 32 个 LED 可能超出 USB 供电能力,建议外接 5V 电源并共地。
- 时序错误: 确保锁存脉冲在数据移入完成后产生,库已处理好时序。
扩展思路
掌握级联后,可驱动 LED 矩阵、七段数码管阵列、甚至作为 GPIO 扩展口控制更多外设。HC595 库支持最多 8 片级联 (64 位输出)。
制造工艺
- DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- 通过树莓派用 Alexa 控制 LED - 简单分步指南
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 打造功能完整的 Arduino 驱动 3D 打印机械臂:分步指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino + TEA5767 打造 FM 收音机:Nokia 5110 显频谱/信号强度/立体声
- Arduino 101 计步器:集成 DHT11 温湿度 + LCD 显示步数/距离/卡路里
- Arduino RGB 颜色混合器 – 分步制作教程