用 Arduino Uno 和 1Sheeld 构建 4x4x4 LED 立方体 - 互动音乐可视化项目
元器件清单
| 元器件 | 数量 | 备注 |
|---|---|---|
| Android 设备 | 1 | 运行 1Sheeld App 的智能手机 |
| 220Ω 电阻 | 16 | 列控制限流电阻 |
| LED 灯 (通用) | 64 | 构建 4x4x4 立方体 |
| Arduino UNO | 1 | 主控板 |
| 1Sheeld 扩展板 | 1 | 连接手机与 Arduino |
| 跳线 | 20 | 连接立方体与控制板 |
| 焊接工具 | 1 | 电烙铁、焊锡等 |
项目简介
这是一个令人惊叹的 4x4x4 LED 立方体,通过 1Sheeld 和 Arduino Uno 与智能手机连接。利用手机麦克风捕捉声音,让音乐控制 LED 立方体的灯光效果,实现声光同步的互动体验。




立方体构建指南
请参考 Instructables 教程 的步骤 3、4、5 进行立方体焊接组装。需要具备基本的焊接技能。注意:该教程中的元器件清单仅供参考,实际所需元件请以本项目清单为准。
工作原理
若为每个 LED 单独引线控制阳极,显然不切实际。解决方案是将立方体分为 4 层,每层包含 16 个 LED:
- 同一垂直列的所有 LED 共用一个阳极 (+)
- 同一水平层的所有 LED 共用一个阴极 (-)
点亮特定 LED 时,只需给该层提供低电平 (GND),给该列提供高电平 (5V)。通过快速扫描各层,利用视觉暂留效应实现全立方体控制。
接线说明
组装完成后,你将得到 16 个列控制引脚和 4 个层控制引脚:
- 列控制引脚:每个引脚串联一个 220Ω 电阻,另一端连接到覆盖在 Arduino 上的 1Sheeld。引脚顺序对应 Arduino 数字引脚 13~0 和模拟引脚 A4、A5(参考原理图)。各列连接顺序可自由组合,代码中会对应控制。
- 层控制引脚:连接到模拟引脚 A0、A1、A2、A3。根据代码逻辑,最底层接 A0,依次向上为 A1、A2、A3(最顶层)。
接线完成后上传代码,通过 1Sheeld App 连接手机即可运行。1Sheeld 入门教程可帮助初学者快速上手。
核心代码
/* 使用 1Sheeld 和 Arduino Uno 控制 4x4x4 LED 矩阵,通过手机麦克风实现声控
* 电路:64 个 LED 组成 4x4x4 立方体,连接 1Sheeld 和 Arduino
* 列控制引脚:数字引脚 0-13、模拟引脚 A4、A5
* 层控制引脚:模拟引脚 A0-A3
* 作者:Hassan Ibrahim */
#define CUSTOM_SETTINGS
#define INCLUDE_PUSH_BUTTON_SHIELD
#define INCLUDE_MIC_SHIELD
#include
// 定义列引脚
int col[16] = {13,12,11,10,9,8,7,6,5,4,3,2,1,0,A4,A5};
// 定义层引脚(A0 最底层,A3 最顶层)
int layer[4] = {A0, A1, A2, A3};
int counter;
void setup() {
OneSheeld.begin();
Serial.begin(115200);
// 初始化所有引脚为输出
for (int i=0; i<16; i++) pinMode(col[i], OUTPUT);
for (int i=0; i<4; i++) pinMode(layer[i], OUTPUT);
}
void loop() {
// 所有列拉高 (5V)
for (int i=0; i<16; i++) digitalWrite(col[i], HIGH);
delay(30);
// 根据麦克风音量控制各层拉低 (GND)
// 阈值需根据手机麦克风灵敏度校准
int micVal = Mic.getValue();
if (micVal > 70) { digitalWrite(layer[0], LOW); delay(50); } else digitalWrite(layer[0], HIGH);
if (micVal > 76) { digitalWrite(layer[1], LOW); delay(50); } else digitalWrite(layer[1], HIGH);
if (micVal > 82) { digitalWrite(layer[2], LOW); delay(50); } else digitalWrite(layer[2], HIGH);
if (micVal > 88) { digitalWrite(layer[3], LOW); delay(50); } else digitalWrite(layer[3], HIGH);
}
原理图

提示:原理图中未画出列控制电阻,实际焊接时务必串联 220Ω 电阻保护 LED 和驱动引脚。
制造工艺
- 树莓派 + Arduino UNO + 三星 SAMI 极速构建火灾检测系统
- 自制LUMAZOID:基于Arduino的音乐可视化灯光控制器
- Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
- 自制 Arduino 伊斯兰祷告时间实时时钟
- DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
- 基于 1Sheeld 与 Arduino 的盲聋人士沟通辅助系统
- Unopad:基于 Arduino 的无缝 Ableton Live MIDI 控制器
- Arduino + DHT11 + 以太网盾板温湿度数据记录仪
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- 自制简易红外避障传感器:IR LED + 光电二极管 + Arduino
- Windows 10 Cortana 蓝牙控制 Arduino LED:UWP 应用开发全流程
- Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示