找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2621|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)控制ws2812,聲音控制流動效果程序咋寫出來呀?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
有沒有大佬知道,謝謝大家
檢測到聲音輸入,產(chǎn)生4-5RGB點(diǎn)亮,間隔3-4RGB熄滅,然后產(chǎn)生新的點(diǎn)亮,然后向左邊移動,

沒有檢測到聲音輸入,測不在產(chǎn)生點(diǎn)亮RGB,將已近點(diǎn)亮的移動完則結(jié)束
本人使用的是arduino控制板或者esp32控制板,使用的驅(qū)動庫是FastLED和Adafruit_NeoPixel驅(qū)動WS2812
求解的是,使用什么方法可以實(shí)現(xiàn)這樣一個(gè)功能,求指導(dǎo)一下,或者提供一下參考例程,謝謝

1667976755808.png (153.66 KB, 下載次數(shù): 71)

沒有聲源

沒有聲源

1667976466458.png (151.12 KB, 下載次數(shù): 75)

有聲源

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

使用道具 舉報(bào)

沙發(fā)
ID:88256 發(fā)表于 2022-11-9 17:45 | 只看該作者
只是用有沒聲音來控制顯示個(gè)數(shù),而不是用聲音的大小來控制移動的速度,這不難啊
回復(fù)

使用道具 舉報(bào)

板凳
ID:272119 發(fā)表于 2022-11-9 19:51 | 只看該作者
首先會硬件,把聲音放大整形,然后做比較器產(chǎn)生數(shù)字信號連到單片機(jī)IO,然后用連續(xù)讀取IO,用IO狀態(tài)信號做移相顯示.就是那么簡單,如果沒有硬件基礎(chǔ)那我說的話基本也是像唱天書一樣.
回復(fù)

使用道具 舉報(bào)

地板
ID:858009 發(fā)表于 2022-11-10 09:15 | 只看該作者
hhdsdy 發(fā)表于 2022-11-9 17:45
只是用有沒聲音來控制顯示個(gè)數(shù),而不是用聲音的大小來控制移動的速度,這不難啊

不是控制移動速度,是控制左側(cè)產(chǎn)生固定點(diǎn)亮4個(gè)RGB燈珠,間隔三個(gè),再繼續(xù)產(chǎn)生;向右側(cè)移動,移動至最右側(cè)算結(jié)束,如果沒有聲音接受則不繼續(xù)產(chǎn)生,將剩下的移動結(jié)束即可,

使用的是arduino控制板或者esp32控制板,使用的驅(qū)動庫是FastLED和Adafruit_NeoPixel驅(qū)動WS2812

我想問一下要實(shí)現(xiàn)這個(gè)功能,是需要什么方法才可以?能指導(dǎo)一下嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2022-11-10 09:27 | 只看該作者
換個(gè)思想吧,沒有方向這一說!
1、將各個(gè)燈的明暗狀態(tài),看作是的個(gè)數(shù)組的組元素(A1,A2,A3,A4……)。A的每一位0/1對應(yīng)一個(gè)燈的明暗。
2、每間隔一個(gè)時(shí)間TG,切換一個(gè)組元素,送出顯示。
這樣,改變TG的大小,就改變了速度。
改變,A1,A2,A3,A4值(或排序),就改變的LED燈的顯示狀態(tài)。
如果,A1,A2,A3,A4……的組合,形成左移的效果,看上去就左移了;形成右移的效果,看上去就右移了;看上去形成跳動的效果,看上去就跳動了……
你想怎么玩就怎么玩!
程序構(gòu)思巧妙,易寫,邏輯清晰。
你要玩的花色,就是在如何將LED的各種顯示組合,編制了A1,A2,A3……
如果,你設(shè)計(jì)了N個(gè)方案(單燈左移,單燈右移,雙燈左移,雙燈右移,暫停、全閃、……),就做成N的數(shù)組。每按一次鍵就換一個(gè)數(shù)組取值,顯示。
回復(fù)

使用道具 舉報(bào)

6#
ID:1034262 發(fā)表于 2022-11-10 10:28 | 只看該作者
對于會單片機(jī)程序的人,這個(gè)非常簡單,類似做音頻電平指示。
回復(fù)

使用道具 舉報(bào)

7#
ID:858009 發(fā)表于 2022-11-10 10:33 | 只看該作者
yzwzfyz 發(fā)表于 2022-11-10 09:27
換個(gè)思想吧,沒有方向這一說!
1、將各個(gè)燈的明暗狀態(tài),看作是的個(gè)數(shù)組的組元素(A1,A2,A3,A4……)。A的 ...

使用的ws2812燈珠數(shù)量是32,開始是一個(gè)個(gè)點(diǎn)亮,直達(dá)達(dá)到六個(gè)左右,間隔三個(gè),在繼續(xù)一個(gè)個(gè)出現(xiàn)點(diǎn)亮6,消失則是一個(gè)個(gè)減少,在這兩個(gè)步驟我不太了解怎么解決,求指導(dǎo)一下
回復(fù)

使用道具 舉報(bào)

8#
ID:123289 發(fā)表于 2022-11-12 17:09 | 只看該作者
32個(gè)燈用4個(gè)字節(jié)控制:燈接P0-3口剛好32個(gè)
做個(gè)數(shù)組{A1,A2,A3.....An},各個(gè)元素都是32位,每位對準(zhǔn)一個(gè)IO口,1亮0不亮。
每間隔一段時(shí)間(0.5秒),取出一個(gè)值,送到IO去顯示,就可以了。
數(shù)組取值如下:
開始是一個(gè)個(gè)點(diǎn)亮,直達(dá)達(dá)到六個(gè)左右:
第1個(gè)亮:        A1=00000001H【00000000,00000000,00000000,00000001】
第2個(gè)亮:        A2=00000003H【00000000,00000000,00000000,00000011】
第3個(gè)亮:        A3=00000007H【00000000,00000000,00000000,00000111】
第4個(gè)亮:        A4=0000000FH【00000000,00000000,00000000,00001111】
第5個(gè)亮:        A5=0000001FH【00000000,00000000,00000000,00011111】
間隔3個(gè)第9亮:A6=0000011FH【00000000,00000000,00000001,00011111】
消失第9個(gè):     A7=0000001FH【00000000,00000000,00000000,00011111】
消失第5個(gè):     A8=0000000FH【00000000,00000000,00000000,00001111】
............
回復(fù)

使用道具 舉報(bào)

9#
ID:514901 發(fā)表于 2022-11-14 14:06 | 只看該作者
簡單,就是麥克風(fēng)+運(yùn)算放大器+ADC,聲音大就多亮幾個(gè)燈,聲音小就少亮幾個(gè)燈
回復(fù)

使用道具 舉報(bào)

10#
ID:399179 發(fā)表于 2023-2-28 20:25 來自手機(jī) | 只看該作者
我也正想做個(gè),樓主成功了嗎?
回復(fù)

使用道具 舉報(bào)

11#
ID:858009 發(fā)表于 2023-3-20 15:32 | 只看該作者
快樂眼淚 發(fā)表于 2023-2-28 20:25
我也正想做個(gè),樓主成功了嗎?

是可行的,目前已經(jīng)完成了
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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