音频检测器
组件和用品
关于这个项目
这个 Arduino 项目显示了声音检测模块检测到的最大声音的近似频率。对于这个项目,声音模块检测器的模拟输出将检测到的模拟音频信号发送到 Arduino Uno 的 A0。模拟信号被采样和量化(数字化)。然后对数字化数据执行快速傅立叶变换 (FFT)。 FFT 从近似的离散时域结果转换数字数据。然后通过 Arduino IDE 串行监视器确定并显示近似离散时域结果的最大频率。
有关此项目的更多信息,请访问此链接:更多信息
点击[此链接]
查看我的后续项目 代码
- AudioFrequencyDetectorV1-0.ino
AudioFrequencyDetectorV1-0.inoArduino
此代码/草图使显示声音检测模块检测到的最大声音的近似频率。/* 文件/草图名称:AudioFrequencyDetector 版本号:v1.0 创建于 2019 年 12 月 12 日原作者:Clyde A. Lettsome , PhD, PE, MEM 描述:此代码/草图显示声音检测模块检测到的最大声音的近似频率。对于这个项目,声音模块检测器的模拟输出将检测到的模拟音频信号发送到 Arduino Uno 的 A0。模拟信号被采样和量化(数字化)。然后对数字化数据执行快速傅立叶变换 (FFT)。 FFT 从近似的离散时域结果转换数字数据。然后通过 Arduino IDE 串行监视器确定并显示近似离散时域结果的最大频率。注意:在编译此脚本/草图并将其上传到 Arduino 之前,需要将 arduinoFFT.h 库添加到 Arduino IDE。许可证:本程序是免费软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证 (GPL) 第 3 版或您选择的任何更高版本的条款重新分发和/或修改它。注:版权 (c) 2019 由 CA Lettsome Services, LLC 欲了解更多信息,请访问 https://clydelettsome.com/blog/2019/12/18/my-weekend-project-audio-frequency-detector-using-an-arduino /*/#include "arduinoFFT.h" #define SAMPLES 128 //SAMPLES-pt FFT。必须是基数为 2 的数字。 Arduino Uno 最大 128。#define SAMPLING_FREQUENCY 2048 //Ts =基于奈奎斯特,必须是最高预期频率的 2 倍。 arduinoFFT FFT =arduinoFFT();无符号整数采样周期;无符号长微秒;双虚拟现实[样本]; //创建大小为SAMPLES的向量来保存真实值double vImag[SAMPLES]; //创建大小为SAMPLES的向量来保存虚数值 void setup() { Serial.begin(115200); //串口监视器的波特率samplingPeriod =round(1000000*(1.0/SAMPLING_FREQUENCY)); //以微秒为单位的时间段 } void loop() { /*Sample SAMPLES 次*/ for(int i=0; i
示意图
这个 Arduino 项目显示了声音检测模块检测到的最大声音的近似频率。