LED音乐频谱之概述
点击打开链接 转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/37929733
这个LED音乐频谱是我在学51单片机的时候做的一个小项目。今天再看此代码仍有非常多不规范之处,但因为硬件已经送人,没法继续调试,希望小伙伴们引以为戒。写此文主要是想让大家知道当中的原理,知道怎么做固然重要,更重要的是知道为什么要这样做。
一.效果展示
有可能有的人第一次听说过这个东西,但实际上这个东西非常早就有人做出来了。
为了让小伙伴们能有一个感性的认识先发下我的成品连接和图片。
效果:http://v.youku.com/v_show/id_XNjU3NDEwOTAw.html
二.实现功能
功能 实现 原理
a.开机LOGO : 就是再视频中开机显示的“若云MCU” LED点阵
b.频谱显示 : 随着音乐输出跳动的LED FFT(高速傅氏变换)
A/D转换
c.四种显示效果: 我按下按键切换频谱的显示模式 位运算
d.亮度切换 : 我按下按键音乐频谱的亮度会发生变化 PWM调光
e.声音输出 : 视频中的音乐输出 TDA2822功放
LED音乐频谱说通俗一点,就是将声音信号通过FFT从时域转换为频域(说的可能还是有点麻烦)。当中的转换是通过A/D来实现的。我们通过16*16的点阵观察到的图像就是他的频域信号。由左到右逐渐频率添加。LED点阵就是我们在大街上看到的滚动的广告牌。显示的效果是通过位运算的转换,转化为不同的显示模式。
亮度则直接使用STC12单片机自带的D/A。声音的输出用的是一个TDA2822功放芯片。我曾经用他做过小音箱。5V的输入,效果还能够。
看到这里,你仍有可能对当中的细节实现不是非常清楚,别操心,我会负责究竟。接下来的博客我会继续带小伙伴们分析这个东东的。
三.软件框图
LED音乐频谱之概述的更多相关文章
- LED音乐频谱之输出数据处理
转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/38023539 一.PWM调节 1.初始化 void DACInit() { C ...
- LED音乐频谱之输入数据处理
转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/38023431 通过前面的介绍我们知道.声音信号要通过AD转换,变成我们可以处理 ...
- LED音乐频谱之点阵
转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/37967455 一.硬件 watermark/2/text/aHR0cDovL2 ...
- Three.js + HTML5 Audio API 打造3D音乐频谱,Let’s ROCK!
继续玩味之前写的音乐频谱作品,将原来在Canvas标签上的 作图利用Three.js让它通过WebGL呈现,这样就打造出了一个全立体感的频谱效果了. 项目详情及源码 项目GitHub地址:https: ...
- STM32通过FSMC驱动3.2寸液晶屏实现的音乐频谱
视频演示: http://player.youku.com/player.php/sid/XNDcyMDgwMTE2/v.swf 源码下载: lattice_ music _tft.rar(1.42 ...
- android获取和展示音乐的频谱
做了个音乐播放器 就一直想做个加一个音乐频谱的展示界面 觉的这是一个好玩的东西,可以将耳边动听的声音形象化,仿佛眼前可以看到声音一样. 但是我在文档的开发者指南里没有讲任何有关音乐频谱的东西,最后还是 ...
- 【玩转单片机系列001】 08接口双色LED显示屏驱动方式探索
前些日子,从淘宝上购得一块08接口的双色LED显示屏(打算做个音乐频谱显示器),捣鼓了好几天,终于搞清楚了其控制原理,在这里做个总结,算是备忘吧. 1.LED显示屏的扫描方式 LED显示屏的扫描方式有 ...
- HTML5打造的炫酷本地音乐播放器-喵喵Player
将之前捣腾的音乐频谱效果加上一个播放列表就成了现在的喵喵播放器(Meow meow Player,额知道这名字很二很装萌~),全HTML5打造的网页程序,可本地运行也可以挂服务器上用. 在线Demo及 ...
- H5录音音频可视化-实时波形频谱绘制、频率直方图
这段时间给GitHub Recorder开源库添加了两个新的音频可视化功能,比以前单一的动态波形显示丰富了好多(下图后两行是不是比第一行看起来丰满些):趁热打铁写了一个音频可视化相关扩展测试代码,下面 ...
随机推荐
- spring各种邮件发送
参考地址一 参考地址二 参考地址三 参考地址四 Spring邮件抽象层的主要包为org.springframework.mail.它包括了发送电子邮件的主要接口MailSender,和值对象Simpl ...
- android的NDK和java进行本地socket通信
关于Android应用与Framework的socket通信,相信关心这个问题的朋友们已经看过<android使用socket使底层和framework通信>这篇文章,美中不足的是作者只贴 ...
- SQL Server 错误(待补充)
1.问题:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. 解决方法: 打开“ ...
- unity, public+[HideInInspector] vs private
下面写法不报错: [System.Serializable] public class CmyObj{ CA m_a; ... } public class XXX: MonoBehavior{ [H ...
- Atitit.404错误解决标准流程and url汉字中文路径404错误resin4 resin chinese char path 404 err解决
Atitit.404错误解决标准流程and 错误resin4 resin chinese char path 404 err解决 1. #原因解析 1 2. #解决方式 2 3. 输出图片流... 2 ...
- 关于.net 2.0 remoting 中 TCP Channel 用户认证探讨(一)
http://www.cnblogs.com/scucj/archive/2007/05/09/740808.html
- Vim-复制选中内容至系统剪贴板,光标移动到指定行的行首和行尾
1.全选并复制到系统剪贴板 ggVG或ggvG 然后 "+y gg 让光标移到首行,在vim才有效,vi中无效 V 是进入Visual(可视)模式 G 光标移到最后一行 "+y 复 ...
- C++const关键字用法
const关键字是C++新引进的关键字,目标是用于定义常量,避免C语言中使用宏定义出现的边际问题,并且const是类型安全的,即const定义的是不可修改值的变量,它是有类型的,但是宏替换只是简单的进 ...
- python正则表达式匹配时间和IP地址
t = '19:16:30' mt = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[ ...
- ASP.NET基础(一)
ExecuteNonQuery()的用法 下面我们将详细讲解如何在Page_Load()中对数据库的增加.删除.修改,最后我们再来总结一下ExecuteNonQuery(),ExecuteScalar ...