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

硬件组件:

Arduino Nano R3× 1

电阻10k欧姆× 1

电阻4.75k欧姆× 3

电容器100 nF× 2

电阻100k欧姆× 2

SparkFun按钮开关12mm× 1

32x8 LED矩阵显示器× 1

手动工具和制造机器:

烙铁(通用)

该项目用于使用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点阵声音频谱_参赛-使用Arduino制作32频段音频(音乐)频谱分析仪相关推荐

  1. arduino点阵声音频谱_音频跳动:制造32分频音频频谱点阵

    MAKER:Shajeeb/ 译:趣无尽 该项目通过 Arduino 和四块点阵屏,实现32分频的音频(音乐)频谱可视化显示. 这里用了大量篇幅对其原理做了解释(初学者理解起来开可能稍有难度),并且提 ...

  2. arduino点阵声音频谱_创客实战 | 制作一个随音乐跳动的32分频音频频谱显示器

    前言 这期作品是通过 Arduino 和四块LED点阵模块,实现32分频的音频频谱可视化显示,让LED随音乐跳动! 主要特点 1.使用简易安装的库 ArduinoFFT 和 MD_MAX72xx.2. ...

  3. arduino点阵声音频谱_基于Arduino和频谱分析的LED音乐课节拍器

    摘要: 音乐课上,学习乐器或者唱歌的学生都需要节拍器来练习稳定速度和节奏.而传统的节拍器主要是机械构造,只拥有稳定的速度,发出"嘀嗒嘀嗒"的节拍声.但是,人类最敏锐的感官是视觉,设 ...

  4. arduino点阵声音频谱_【紫歌のarduino笔记】基于FFT的音乐频谱显示器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #define LOG_OUT 1 #define FFT_N 256 //这两个是FFT中定义的常数 #include //FFT的库函数 #inclu ...

  5. arduino点阵声音频谱_Arduino实现32分频音频频谱显示器

    MAKER:Shajeeb/译:趣无尽 Cherry(转载请注明出处) 该项目通过 Arduino 和四块点阵屏,实现32分频的音频(音乐)频谱可视化显示. 这里用了大量篇幅对其原理做了解释(初学者理 ...

  6. arduino点阵声音频谱_Arduino频谱分析模块 V2

    概述 这是一款音频信号分析模块,而且更新到了V2版这款模块的设计基于MSGEQ7图形均衡滤波器. 音频信号通过该模块会被过滤成7个波段.并且能够输出每一个频段的幅值.这七个频段分别是:63Hz,160 ...

  7. arduino点阵声音频谱_Arduino基础入门篇19—点阵屏

    将8个LED发光二极管封装在一起就组成了数码管,将更多的LED组合在一起就组成了点阵屏.本篇我们来认识点阵屏,通过Arduino的IO口直接驱动点阵屏来了解其驱动方式. 1. 点阵屏介绍 LED点阵屏 ...

  8. arduino 土壤温湿度传感器_怎样将Arduino与土壤湿度传感器FC-28连接起来

    步骤1:在模拟模式下连接传感器 模拟模式 - 连接土壤湿度传感器和Arduino 要在模拟模式下连接传感器,我们需要使用传感器的模拟输出.从土壤湿度传感器FC-28获取模拟输出时,传感器给出的值为0- ...

  9. arduino的servo函数_如何使用Arduino舵机库servo.h – 八色木

    文章目录 [隐藏] 我们都知道Arduino控制板支持PWM的引脚有限,但如果在Arduino上需要控制超出PWM引脚数量的舵机怎么办呢?答案是使用servo.h库文件,它是Arduino控制舵机的标 ...

最新文章

  1. 项目CPU异常高分析
  2. 内存映射文件——Windows核心编程学习手札之十七
  3. 步进电机编写单4拍或4-8拍方式的汇编或c语言控制程序.,基于SCM和PLC的两种步进电机控制方法...
  4. java中trim_java中string.trim()函数的作用实例及源码
  5. 系统架构(1)---单机至亿级流量大型网站系统架构演进
  6. 常见HTTP状态(304,200等)转
  7. idea 2019最新版无法打开报错问题,Error occurred during initialization of VM Initial heap size set to a larger va
  8. unknown type name err_status_t; did you mean srtp_err_status_t/err_status_ok/err_status_replay_fail
  9. C语言实现校运动会项目管理系统
  10. POJO和po,vo,bo
  11. 知网哭穷赔不起1200亿,网友:收钱时咋不嫌多
  12. Linux 重置root密码
  13. 思齐什么意思_思齐的寓意
  14. 常用的git命令(实用)
  15. Android RGB与int型颜色互转
  16. android tuner 教程,真正免root的安卓调谐器Android Tuner详细使用教程
  17. 常用聊天工具(IM)在线客服链接代码
  18. 三角形的决策表优化问题
  19. matlab判断星期几的语句,C语言之根据英文星期首字母来判断星期几
  20. 程序员上下班途中都在想什么

热门文章

  1. abc能否构成三角形c语言,编写程序输入三角形三边a.b.c 判断abc能否构成三角形...
  2. MATLAB有限元二维编程(三角单元)
  3. 最大回撤python_最大回撤,最大回撤恢复时间与最大回撤持续期
  4. java 设置模式_Java设计模式百例 - 调停者模式
  5. 微信公众平台菜单编辑php,如何使用Vue.js实现微信公众号菜单编辑器(思路详解)...
  6. wandb报错:Exception: The wandb backend process has shutdown
  7. 路由器不同网段虚拟服务器设置,局域网中不同网段互访?静态路由表必须要学会设置...
  8. 管理系统常用的jsp页面主模板
  9. 编译《视觉SLAM十四讲》ch5里joinmap出现 ***/anaconda3/lib/libpng16.so.16:‘inflateValidate@ZLIB_1.2.9’未定义的引用
  10. 图像运动模糊及其去除