加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

参赛-使用Arduino制作32频段音频(音乐)频谱分析仪

2020/08/14
2369
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(2)
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

该项目用于使用Arduino制作32频段音频(音乐)频谱分析仪/可视化器。
硬件组件:

手动工具和制造机器:

  • 烙铁(通用)

该项目用于使用Arduino制作32频段音频(音乐)频谱分析仪。该项目的预期受众是任何音频爱好者,学生或初学者,他们对电子元件,Arduino和C编程有基本的了解。该项目中使用的组件是低成本的项目,易于组装。
该频谱分析仪的主要特点:

  • 使用易于安装的库“arduinoFFT”和“MD_MAX72xx”
  • 支持五种不同的显示模式,可通过按钮切换
  • 音频信号的左右声道都是混合的,这样你就不会错过任何节拍
  • 原型使用32x8 LED矩阵显示器,这可以改变和轻松修改
  • 音频可以从耳机输出或音乐系统/放大器的线路输出馈送

电阻值不是很严格,您可以选择任何最接近的值。请确保R1和R2(参考原理图)具有相同的值。
程序流程图:

系统描述:
Arduino板(ATmega328P)内置模数转换器ADC),用于将输入音频信号转换为数字样本。ADC配置为采样时钟频率为38.46khz的输入信号。这是通过将ADC预分频器配置为32来实现的。采样频率为38.64Khz意味着数字样本可以再现高达19.32Kz(奈奎斯特定理)的输入频率,这对于音频信号来说已经足够了。
正如我在开始时提到的,该项目的目的是显示音频音乐信号的频谱。因此,左右音频通道混合在一起并馈入ADC的A0模拟输入。您可以使用音频分配器电缆,以便您可以将相同的音乐同时馈送到频谱分析仪和另一个放大器(如果需要)。
ADC配置为使用外部参考电压。在这个项目中,参考电压来自Arduino板上的3.3v稳压电源。当模拟信号在零电压电平之上和之下振荡时,我们需要在ADC的模拟输入端产生直流偏置。这可确保ADC输出不会截断输入信号的负周期。相同的3.3v稳定电压由两个电阻R1和R2分压,然后馈入模拟输入以进行直流偏置。使用此直流偏置,即使输入信号断开,ADC也会在输出中产生512。稍后在代码中,这个由DC偏置引起的512被减去,使得读数代表实际的输入信号变化。
ArduinoFFT库是将输入模拟信号转换为频谱的代码的核心。我发现这个库易于使用,并为该项目生成了最准确的输出。Prototype配置为生成64个样本,并使用这些样本进行FFT。ArduinoFFT库可以对16到128之间的样本进行FFT,这可以在程序中进行配置。但arduinoFFT库计算速度慢,有128个样本,因此我坚持64个样本中最好的最高。
本项目使用的显示为32列×8行LED矩阵。MD_MAX72xx库使显示控制部件非常容易。该库提供打开/关闭该程序中正在使用的列中任意数量的LED的功能。每个频带的幅度被映射在0到8之间,这取决于每个列中的LED的相应数量的LED被接通。
该程序提供五种显示模式,基本上通过在每列的不同位置打开/关闭LED来实现。您可以轻松修改/创建不同的模式。这里使用按钮来改变显示模式,转动显示图案移动到下一个,最后重置为默认模式。按钮连接到其中一个数字输入,并在每一轮显示刷新后扫描该输入。
频率响应
经验证,系统能够响应高达18.6Khz的频率。

  • arduino_spectrum_analyzer_-_schematic_qg5BGUSN9P.png
    描述:原理图截图
  • source_code.ino
    描述:源码
  • Arduino 32 band audio music spectrum analyzer visualizer.mp4
    描述:演示视频
  • 原文地址.txt
    描述:原文出处

相关推荐

电子产业图谱