找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机控制ws2812,声音控制流动效果程序咋写出来呀?

[复制链接]
跳转到指定楼层
楼主
有没有大佬知道,谢谢大家
检测到声音输入,产生4-5RGB点亮,间隔3-4RGB熄灭,然后产生新的点亮,然后向左边移动,

没有检测到声音输入,测不在产生点亮RGB,将已近点亮的移动完则结束
本人使用的是arduino控制板或者esp32控制板,使用的驱动库是FastLED和Adafruit_NeoPixel驱动WS2812
求解的是,使用什么方法可以实现这样一个功能,求指导一下,或者提供一下参考例程,谢谢

1667976755808.png (153.66 KB, 下载次数: 40)

没有声源

没有声源

1667976466458.png (151.12 KB, 下载次数: 46)

有声源

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

使用道具 举报

沙发
ID:88256 发表于 2022-11-9 17:45 | 只看该作者
只是用有没声音来控制显示个数,而不是用声音的大小来控制移动的速度,这不难啊
回复

使用道具 举报

板凳
ID:272119 发表于 2022-11-9 19:51 | 只看该作者
首先会硬件,把声音放大整形,然后做比较器产生数字信号连到单片机IO,然后用连续读取IO,用IO状态信号做移相显示.就是那么简单,如果没有硬件基础那我说的话基本也是像唱天书一样.
回复

使用道具 举报

地板
ID:858009 发表于 2022-11-10 09:15 | 只看该作者
hhdsdy 发表于 2022-11-9 17:45
只是用有没声音来控制显示个数,而不是用声音的大小来控制移动的速度,这不难啊

不是控制移动速度,是控制左侧产生固定点亮4个RGB灯珠,间隔三个,再继续产生;向右侧移动,移动至最右侧算结束,如果没有声音接受则不继续产生,将剩下的移动结束即可,

使用的是arduino控制板或者esp32控制板,使用的驱动库是FastLED和Adafruit_NeoPixel驱动WS2812

我想问一下要实现这个功能,是需要什么方法才可以?能指导一下吗
回复

使用道具 举报

5#
ID:123289 发表于 2022-11-10 09:27 | 只看该作者
换个思想吧,没有方向这一说!
1、将各个灯的明暗状态,看作是的个数组的组元素(A1,A2,A3,A4……)。A的每一位0/1对应一个灯的明暗。
2、每间隔一个时间TG,切换一个组元素,送出显示。
这样,改变TG的大小,就改变了速度。
改变,A1,A2,A3,A4值(或排序),就改变的LED灯的显示状态。
如果,A1,A2,A3,A4……的组合,形成左移的效果,看上去就左移了;形成右移的效果,看上去就右移了;看上去形成跳动的效果,看上去就跳动了……
你想怎么玩就怎么玩!
程序构思巧妙,易写,逻辑清晰。
你要玩的花色,就是在如何将LED的各种显示组合,编制了A1,A2,A3……
如果,你设计了N个方案(单灯左移,单灯右移,双灯左移,双灯右移,暂停、全闪、……),就做成N的数组。每按一次键就换一个数组取值,显示。
回复

使用道具 举报

6#
ID:1034262 发表于 2022-11-10 10:28 | 只看该作者
对于会单片机程序的人,这个非常简单,类似做音频电平指示。
回复

使用道具 举报

7#
ID:858009 发表于 2022-11-10 10:33 | 只看该作者
yzwzfyz 发表于 2022-11-10 09:27
换个思想吧,没有方向这一说!
1、将各个灯的明暗状态,看作是的个数组的组元素(A1,A2,A3,A4……)。A的 ...

使用的ws2812灯珠数量是32,开始是一个个点亮,直达达到六个左右,间隔三个,在继续一个个出现点亮6,消失则是一个个减少,在这两个步骤我不太了解怎么解决,求指导一下
回复

使用道具 举报

8#
ID:123289 发表于 2022-11-12 17:09 | 只看该作者
32个灯用4个字节控制:灯接P0-3口刚好32个
做个数组{A1,A2,A3.....An},各个元素都是32位,每位对准一个IO口,1亮0不亮。
每间隔一段时间(0.5秒),取出一个值,送到IO去显示,就可以了。
数组取值如下:
开始是一个个点亮,直达达到六个左右:
第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】
............
回复

使用道具 举报

9#
ID:514901 发表于 2022-11-14 14:06 | 只看该作者
简单,就是麦克风+运算放大器+ADC,声音大就多亮几个灯,声音小就少亮几个灯
回复

使用道具 举报

10#
ID:399179 发表于 2023-2-28 20:25 来自手机 | 只看该作者
我也正想做个,楼主成功了吗?
回复

使用道具 举报

11#
ID:858009 发表于 2023-3-20 15:32 | 只看该作者
快乐眼泪 发表于 2023-2-28 20:25
我也正想做个,楼主成功了吗?

是可行的,目前已经完成了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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