亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino + Excel 驱动 8×8 与 16×16 WS2812 RGB 矩阵动画编程

零部件与物料

零部件数量备注
Arduino UNO1
WS2812 8×8 RGB LED 矩阵1
公/母杜邦线3黑-GND、红-5V、绿-DATA
9V 电池1
9V 转 DC 插头1
5Pin 公排针1仅用 3 脚

所需工具

项目简介

WS2812 8×8 矩阵并非传统 XY 寻址,而是 64 颗灯串联成 8 行 8 列的蛇形链路。改造 Kevin Darrah 的 16×16 Excel 工具,使其支持 8×8 矩阵,无需外部库即可编程动画。更新后的 LED_Utility.xlsm 支持:

硬件组装

5Pin 排针连接矩阵与 UNO:

  1. DIN → D8
  2. +5V → 5V
  3. GND → GND
Arduino + Excel 驱动 8×8 与 16×16 WS2812 RGB 矩阵动画编程

坐标 (0,0) 为矩阵左上角。

Excel 工具详解

打开 LED_Utility.xlsm,含三张表:

默认只读,生成代码后 另存为 保留设计。

Arduino + Excel 驱动 8×8 与 16×16 WS2812 RGB 矩阵动画编程

Eight 表关键功能按钮:

每个按钮生成一段 C++ 代码块,复制进 Arduino 草图,配合自定义 mapLEDXY() 函数将 XY 坐标转为串联索引。

Arduino 核心草图

// 引脚定义
#define WS2812_pin 8
// 总灯数
#define numberOfLEDs 64
// RGB 缓冲区 (3字节/灯)
byte RGB[192];

// 前向声明
void RGB_update(int LED, byte RED, byte GREEN, byte BLUE);
void mapLEDXY(int x, int y, byte RED, byte GREEN, byte BLUE);
void clearLEDs();

mapLEDXY() 处理蛇形布线的索引映射。将生成代码粘贴到 loop() 上传即见效。

项目 1:静态红色方块

在 (2,2) 到 (4,4) 画 3×3 红方块。Excel 对应格设 R=255,G=B=0,生成代码粘贴第 40 行:

mapLEDXY(2,2,255,0,0);mapLEDXY(2,3,255,0,0);mapLEDXY(2,4,255,0,0);
mapLEDXY(3,2,255,0,0);mapLEDXY(3,3,255,0,0);mapLEDXY(3,4,255,0,0);
mapLEDXY(4,2,255,0,0);mapLEDXY(4,3,255,0,0);mapLEDXY(4,4,255,0,0);

项目 2:双色方块切换

复制草图为 Colour_Sq.ino,Excel 再做一个大方块,Show 生成代码粘贴,加 delay() 与 clearLEDs() 实现两形态轮播。

项目 3:生长方块动画

Grow.ino 设计内层小方块+外层边框,移除内层数值生成外层代码,两段粘贴形成扩张/收缩动画。

项目 4:螺旋动画

复杂模式下将每帧封装为函数,loop() 依次调用。示例 Spiral.ino 用 5 个辅助函数构建 5 层螺旋,主循环简洁易维护。

项目 5:亮度渐变循环

for 循环实现淡入淡出:

for (int r=0; r<256; r++) {
  mapLEDXY(3,3,r,0,0);mapLEDXY(3,4,r,0,0);
  mapLEDXY(4,3,r,0,0);mapLEDXY(4,4,r,0,0);
  RGB_update(-1,0,0,0); delay(50);
}
for (int r=255; r>=0; r--) {
  mapLEDXY(3,3,r,0,0);mapLEDXY(3,4,r,0,0);
  mapLEDXY(4,3,r,0,0);mapLEDXY(4,4,r,0,0);
  RGB_update(-1,0,0,0); delay(50);
}

项目 6:边框淡入淡出

共享变量 g 驱动蓝通道跟随绿通道渐变:

for (int g=0; g<256; g++) {
  b=g; mapLEDXY(...边框单元格...); RGB_update(-1,0,0,0); delay(50);
}
for (int g=255; g>=0; g--) { ... }

项目 7:中途变色

if 判断阈值切换边框颜色(绿→黄):

for (int r=0; r<256; r++) {
  g=r; if (g>64) { g=65; l=r; }
  mapLEDXY(...); RGB_update(-1,0,0,0); delay(50);
}

项目 8:移动箭头

参数化 X 坐标实现箭头平移:

for (int x=0; x<8; x++) {
  mapLEDXY((x+0)%8,3,0,255,255);
  mapLEDXY((x+1)%8,1,255,128,128);
  mapLEDXY((x+1)%8,3,0,255,255);
  mapLEDXY((x+1)%8,5,255,128,128);
  mapLEDXY((x+2)%8,2,255,128,128);
  mapLEDXY((x+2)%8,3,0,255,255);
  mapLEDXY((x+2)%8,4,255,128,128);
  mapLEDXY((x+3)%8,3,255,128,128);
  RGB_update(-1,0,0,0); delay(100);
}

配合 Excel Wrap Map 处理坐标溢出。

16×16 矩阵扩展

概念完全复用:替换草图为 LED_Arduino16.ino,切换到 Sixteen 表,仅需修改 numberOfLEDs 与 mapLEDXY() 内索引计算以适配 16×16 蛇形布线。

扩展建议

方法适用于任意尺寸(如 8×32)。新尺寸只需更新灯数常量与索引算法。工作表保持只读防误改。若功耗敏感可改用 Arduino Nano。

制造工艺

  1. Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
  2. Arduino 飞行模拟器 2020 实体开关面板
  3. Arduino + Excel 驱动 8×8 与 16×16 WS2812 RGB 矩阵动画编程
  4. “走开”机器人:Arduino 入门级超声波避障发声装置
  5. 仅用 3 根模拟口驱动 4×3 矩阵键盘:电阻分压识别键值
  6. TinyML 关键词检测控制 RGB 灯 — Arduino Nano 33 BLE Sense
  7. 2020年塑造数字化制造的三大核心趋势
  8. 中小企业国际化扩张制胜三策:拥抱电商、善用金融科技、寻汇率专家
  9. 零售商必须从一年动荡中汲取的三大关键教训
  10. 工业设备维保与安全三大铁律:全天候监测、分级计划、备件前置
  11. 重型工业设备采购三大铁律:固定/移动抉择、预算工程、需求锚定
  12. 全球物联网安全三大支柱:连接平台、私有IPX与生态协作