找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1810|回复: 2
打印 上一主题 下一主题
收起左侧

如何使用NeoMatrix创建led点阵屏时每两个LED组成一个像素点

[复制链接]
跳转到指定楼层
楼主
666黑币
各位大佬你们好:
受B站up主启发,想要制作一面LED点阵屏。我现有的硬件为Wemos D1 mini和ESP8266 NodeMCU开发板,WS2811灯带。我使用FastLED和Adafruit_NeoMatrix这两种库均成功创建了一个横向逆序的矩阵。
现在的需求是要把横向的每两个LED变成一组,当作一个像素点显示。
本人愚钝,尝试了多种方法,均未成功。
我想到了绘制图像时将X轴横向移动一位重复绘制,但是这种方式在显示文字时会有重叠,显示效果不佳。
并且在使用darwBitMap方法绘制图像时需要大量手动修改图像的x轴。
  1. void printText(String text, int x, int y)
  2. {
  3.   matrix->setCursor(x, y);
  4.   matrix->print(text);
  5.   matrix->setCursor(x + 1, y);
  6.   matrix->print(text);
  7. }
复制代码

我还尝试了Fast LED开发文档中的setRemapFunction,但是网上的示例都是关于创建异形屏幕的。
在一个QQ群中有个朋友发了一个截图给我,提到了可以在remap函数中将x和y的值向下取整。

可库中remap方法是需要返回一个16位参数的,我没想到要怎么一下返回两个坐标点,或者怎么把两个坐标放一起返回。
  1. void Framebuffer_GFX::setRemapFunction(uint16_t (*fn)(uint16_t, uint16_t)) {
  2.   remapFn = fn;
  3. }
复制代码
研究了好久了,希望各位大佬们能指导一下,给点修改意见。


code1.png (425.67 KB, 下载次数: 75)

code1.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:301191 发表于 2022-12-12 16:54 | 只看该作者
顶一下
回复

使用道具 举报

板凳
ID:1057082 发表于 2022-12-16 20:58 | 只看该作者
哭了,没有人研究过这一块吗?我现在打算物理接线,将每两个相邻的灯并联。不知道这样会不会有用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表