如何制作 NeoPixel 矩阵
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
|
应用和在线服务
|
关于这个项目
矩阵
不,不是电影,是 NeoPixel 矩阵!要制作矩阵,只需购买一条可单独寻址的 NeoPixel LED。解开带子,注意上面的箭头。您只能将它们固定在一个方向上,如果方向错误,您可能会毁了它们。
我使用了一个 30 LED/m 5m 的灯条,并将它们切成每条 10 个 LED 的灯条。
然后我开始将条带放在一张卡片纸上,交替方向。
然后我将电线切割成正确的长度并将它们焊接到 NeoPixel 端子上。
做了 14 次之后,我的矩阵终于完成了!接下来,我用万用表检查以确保没有短路,因为短路会炸毁 Nano、矩阵,也许还有你的 USB 端口(我从经验中知道)。使用“NEO_BOTTOM + NEO_LEFT + NEO_COLUMNS + NEO_ZIGZAG”参数上传neomatrix 测试草图。如果它在显示屏上滚动“你好”,你就完成了!
查看我的其他项目,了解更多 NeoPixel 矩阵的想法!
代码
- Arduino 代码
Arduino 代码C/C++
复制并粘贴//单个 NeoPixel Shield 的 Adafruit_NeoMatrix 示例。// 以纵向(垂直)方向在矩阵上滚动“Howdy”。#include#include #include #ifndef PSTR #define PSTR // 让 Arduino 满意#endif#define PIN 6// MATRIX DECLARATION:// 参数 1 =NeoPixel 矩阵的宽度// 参数 2 =矩阵的高度// 参数 3 =引脚编号(大部分都有效)// 参数 4 =矩阵布局标志,根据需要加在一起:// NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:// 矩阵中第一个 LED 的位置;选择两个,例如// NEO_MATRIX_TOP + NEO_MATRIX_LEFT 用于左上角。// NEO_MATRIX_ROWS、NEO_MATRIX_COLUMNS:LED 分别按水平// 行或垂直列排列;选择一个或另一个。// NEO_MATRIX_PROGRESSIVE、NEO_MATRIX_ZIGZAG:所有行/列以相同的顺序进行//,或者交替的行反向;选择一个。// 请参阅下面的示例了解这些值的实际应用。// 参数 5 =像素类型标志,根据需要相加:// NEO_KHZ800 800 KHz 比特流(大多数 NeoPixel 产品带有 WS2812 LED)// NEO_KHZ400 400 KHz(经典) 'v1'(不是 v2)FLORA 像素,WS2811 驱动程序)// NEO_GRB 像素连接到 GRB 比特流(大多数 NeoPixel 产品)// NEO_RGB 像素连接到 RGB 比特流(v1 FLORA 像素,而不是 v2)// NeoPixel Shield 示例.在这个应用程序中,我们想将它//用作一个 5x8 高的矩阵,USB 端口位于// Arduino 的顶部。以这种方式保持时,第一个像素位于右上角,// 行按列排列,渐进顺序。盾牌使用// 800 KHz (v2) 像素,期望 GRB 颜色数据。Adafruit_NeoMatrix matrix =Adafruit_NeoMatrix(5, 8, PIN, NEO_MATRIX_BOTTOM + NEO_MATRIX_LEFT + NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG + NEO_GRB) [NEOGZAG, NEO_GRB1] 矩阵 =Adafruit_NeoMatrix(5, 8, PIN, NEO_MATRIX_BOTTOM + NEO_MATRIX_LEFT + NEO_MATRIX_COLUMNS) Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) };void setup() { matrix.begin();矩阵.setTextWrap(false);矩阵.setBrightness(40); matrix.setTextColor(colors[0]);}int x =matrix.width();int pass =0;void loop() { matrix.fillScreen(0);矩阵.setCursor(x, 0); matrix.print(F("你好")); if(--x <-36) { x =matrix.width(); if(++pass>=3) pass =0; matrix.setTextColor(colors[pass]);矩阵.show();延迟(100);}
示意图
制造工艺