標(biāo)題: 單片機控制ws2812,聲音控制流動效果程序咋寫出來呀? [打印本頁]

作者: qwettyuio    時間: 2022-11-9 14:53
標(biāo)題: 單片機控制ws2812,聲音控制流動效果程序咋寫出來呀?
有沒有大佬知道,謝謝大家
檢測到聲音輸入,產(chǎn)生4-5RGB點亮,間隔3-4RGB熄滅,然后產(chǎn)生新的點亮,然后向左邊移動,

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

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

沒有聲源

沒有聲源

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

有聲源

有聲源

作者: hhdsdy    時間: 2022-11-9 17:45
只是用有沒聲音來控制顯示個數(shù),而不是用聲音的大小來控制移動的速度,這不難啊
作者: qq603599910    時間: 2022-11-9 19:51
首先會硬件,把聲音放大整形,然后做比較器產(chǎn)生數(shù)字信號連到單片機IO,然后用連續(xù)讀取IO,用IO狀態(tài)信號做移相顯示.就是那么簡單,如果沒有硬件基礎(chǔ)那我說的話基本也是像唱天書一樣.
作者: qwettyuio    時間: 2022-11-10 09:15
hhdsdy 發(fā)表于 2022-11-9 17:45
只是用有沒聲音來控制顯示個數(shù),而不是用聲音的大小來控制移動的速度,這不難啊

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

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

我想問一下要實現(xiàn)這個功能,是需要什么方法才可以?能指導(dǎo)一下嗎
作者: yzwzfyz    時間: 2022-11-10 09:27
換個思想吧,沒有方向這一說!
1、將各個燈的明暗狀態(tài),看作是的個數(shù)組的組元素(A1,A2,A3,A4……)。A的每一位0/1對應(yīng)一個燈的明暗。
2、每間隔一個時間TG,切換一個組元素,送出顯示。
這樣,改變TG的大小,就改變了速度。
改變,A1,A2,A3,A4值(或排序),就改變的LED燈的顯示狀態(tài)。
如果,A1,A2,A3,A4……的組合,形成左移的效果,看上去就左移了;形成右移的效果,看上去就右移了;看上去形成跳動的效果,看上去就跳動了……
你想怎么玩就怎么玩!
程序構(gòu)思巧妙,易寫,邏輯清晰。
你要玩的花色,就是在如何將LED的各種顯示組合,編制了A1,A2,A3……
如果,你設(shè)計了N個方案(單燈左移,單燈右移,雙燈左移,雙燈右移,暫停、全閃、……),就做成N的數(shù)組。每按一次鍵就換一個數(shù)組取值,顯示。
作者: coody_sz    時間: 2022-11-10 10:28
對于會單片機程序的人,這個非常簡單,類似做音頻電平指示。
作者: qwettyuio    時間: 2022-11-10 10:33
yzwzfyz 發(fā)表于 2022-11-10 09:27
換個思想吧,沒有方向這一說!
1、將各個燈的明暗狀態(tài),看作是的個數(shù)組的組元素(A1,A2,A3,A4……)。A的 ...

使用的ws2812燈珠數(shù)量是32,開始是一個個點亮,直達(dá)達(dá)到六個左右,間隔三個,在繼續(xù)一個個出現(xiàn)點亮6,消失則是一個個減少,在這兩個步驟我不太了解怎么解決,求指導(dǎo)一下
作者: yzwzfyz    時間: 2022-11-12 17:09
32個燈用4個字節(jié)控制:燈接P0-3口剛好32個
做個數(shù)組{A1,A2,A3.....An},各個元素都是32位,每位對準(zhǔn)一個IO口,1亮0不亮。
每間隔一段時間(0.5秒),取出一個值,送到IO去顯示,就可以了。
數(shù)組取值如下:
開始是一個個點亮,直達(dá)達(dá)到六個左右:
第1個亮:        A1=00000001H【00000000,00000000,00000000,00000001】
第2個亮:        A2=00000003H【00000000,00000000,00000000,00000011】
第3個亮:        A3=00000007H【00000000,00000000,00000000,00000111】
第4個亮:        A4=0000000FH【00000000,00000000,00000000,00001111】
第5個亮:        A5=0000001FH【00000000,00000000,00000000,00011111】
間隔3個第9亮:A6=0000011FH【00000000,00000000,00000001,00011111】
消失第9個:     A7=0000001FH【00000000,00000000,00000000,00011111】
消失第5個:     A8=0000000FH【00000000,00000000,00000000,00001111】
............

作者: 鄭漢松    時間: 2022-11-14 14:06
簡單,就是麥克風(fēng)+運算放大器+ADC,聲音大就多亮幾個燈,聲音小就少亮幾個燈
作者: 快樂眼淚    時間: 2023-2-28 20:25
我也正想做個,樓主成功了嗎?
作者: qwettyuio    時間: 2023-3-20 15:32
快樂眼淚 發(fā)表于 2023-2-28 20:25
我也正想做個,樓主成功了嗎?

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





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1