找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3010|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

如何使用NeoMatrix創(chuàng)建led點(diǎn)陣屏?xí)r每?jī)蓚(gè)LED組成一個(gè)像素點(diǎn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
666黑幣
各位大佬你們好:
受B站up主啟發(fā),想要制作一面LED點(diǎn)陣屏。我現(xiàn)有的硬件為Wemos D1 mini和ESP8266 NodeMCU開發(fā)板,WS2811燈帶。我使用FastLED和Adafruit_NeoMatrix這兩種庫(kù)均成功創(chuàng)建了一個(gè)橫向逆序的矩陣。
現(xiàn)在的需求是要把橫向的每?jī)蓚(gè)LED變成一組,當(dāng)作一個(gè)像素點(diǎn)顯示。
本人愚鈍,嘗試了多種方法,均未成功。
我想到了繪制圖像時(shí)將X軸橫向移動(dòng)一位重復(fù)繪制,但是這種方式在顯示文字時(shí)會(huì)有重疊,顯示效果不佳。
并且在使用darwBitMap方法繪制圖像時(shí)需要大量手動(dòng)修改圖像的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. }
復(fù)制代碼

我還嘗試了Fast LED開發(fā)文檔中的setRemapFunction,但是網(wǎng)上的示例都是關(guān)于創(chuàng)建異形屏幕的。
在一個(gè)QQ群中有個(gè)朋友發(fā)了一個(gè)截圖給我,提到了可以在remap函數(shù)中將x和y的值向下取整。

可庫(kù)中remap方法是需要返回一個(gè)16位參數(shù)的,我沒想到要怎么一下返回兩個(gè)坐標(biāo)點(diǎn),或者怎么把兩個(gè)坐標(biāo)放一起返回。
  1. void Framebuffer_GFX::setRemapFunction(uint16_t (*fn)(uint16_t, uint16_t)) {
  2.   remapFn = fn;
  3. }
復(fù)制代碼
研究了好久了,希望各位大佬們能指導(dǎo)一下,給點(diǎn)修改意見。


code1.png (425.67 KB, 下載次數(shù): 110)

code1.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:301191 發(fā)表于 2022-12-12 16:54 | 只看該作者
頂一下
回復(fù)

使用道具 舉報(bào)

板凳
ID:1057082 發(fā)表于 2022-12-16 20:58 | 只看該作者
哭了,沒有人研究過這一塊嗎?我現(xiàn)在打算物理接線,將每?jī)蓚(gè)相鄰的燈并聯(lián)。不知道這樣會(huì)不會(huì)有用。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表