Fastbond环境监测之噪声分析
利用一个简单的麦克风前置放大器模块,搭配运算放大器对音频信号进行放大,然后利用arduino atmega 328进行采集处理,最终显示在LCD屏幕上。
标签
环境监测
噪声分析
声音采集
鱼儿游
更新2021-12-14
786

一、项目介绍(包括设计思路、软硬件介绍等)

以前搭建过一个Arduino模块,正好利用起来了。美信的MAX4466麦克风前置放大器,搭配一个ADI的AD8531运算放大器,正好进行音频信号的放大,然后通过atmega 328对信号进行采集处理,最后展示在1.8的LCD屏幕上。

二、项目用到的板卡、芯片、模块、仪器、设备等介绍

1、ATMEGA328P-PU

FncgpTMQAJGQ1kyRvxrYzW5_Rvd_

ATMEGA328P-PU是高性能Atmel picoPower 8位AVR基于RISC的微控制器结合了32KB ISP闪存存储器,具有同时读写能力,1024B EEPROM,2KB SRAM,23个通用输入/输出线路,32个通用工作寄存器,3个灵活的比较模式计时器/计数器,内部和外部中断,串行可编程USART,一个字节为主的2线串行接口,SPI串行端口,一个6通道10位模数转换器(8通道以TQFP和QFN/MLF封装),带内部振荡器的可编程看门狗计时器,以及5个可选软件节电模式.设备运行电压:1.8-5.5V.

  • 高性能,低功率Atmel®AVR®8位微控制器系列
  • 先进的RISC架构
  • 高耐用性非易失存储器段\
  • 支持Atmel®QTouch®数据库
  • 周边设备功能
  • 特殊微控制器功能

2、MAX4466

厂家:美信

简介:低成本、微功耗、SC70/SOT23-8封装、麦克风前置放大器,可完全关断。

FuVXKQvfnsfTYEIBjU0xeIWO97KW

数据资料:https://datasheets.maximintegrated.com/en/ds/MAX4465-MAX4469.pdf

3、AD8531:250 mA输出、低成本、单电源放大器

厂家:ADI

作用:替换掉原本搭建的TI的运放

简介:AD8531别是单通道轨到轨输入与输出、单电源放大器,具有250 mA输出驱动电流。这种高输出电流特性使这些放大器特别适合驱动阻性或容性负载。交流性能也非常出色,具有3 MHz带宽、5 V/µs压摆率及低失真特性。所有器件均保证可采用3 V单电源和5 V电源工作。

FhzlMaLHW14VCm_Vv1l5vw14KjVi

优势和特点:

  • 单电源供电:2.7 V至6 V
  • 高输出电流:±250 mA
  • 低电源电流:每个放大器750 µA
  • 宽带宽:3 MHz
  • 压摆率:5 V/μs
  • 无反相
  • 低输入电流
  • 单位增益稳定
  • 轨到轨输入和输出

官网地址:https://www.analog.com/cn/products/ad8531.html

4、1.8' 128*120 RGB TET_LCD

三、关键性代码及说明

FFT关键代码:

#include "fix_fft.h"
#include <Wire.h>
#include <Adafruit_GFX.h>
#include "ssd1306.h"
  //------------------------------------------
  //------------------------------------------
  char im[128], data[128]; char x = 0, ylim = 60; int i = 0, val;
  //==============================================================
  void setup()
  {
    Serial.begin(9600);
    display.begin(SSD1306_SWITCHCAPVCC,0x3C);
    display.setTextSize(1);
    display.setTextColor(WHITE);
    display.clearDisplay();
    analogReference(DEFAULT);
  }
  //==============================================================
  void loop()
  {
    int min=1024, max=0;
    for (i=0; i <128; i++)     //take 128 samples
    {
      val = analogRead(A0);
      data[i] = val/4 - 128;
      im[i] = 0;
      if(val>max) max=val;    //store max & min sample
      if(val<min) min=val;
    }
  //------------------------------------------
  fix_fft(data, im, 7, 0);    //FFT on data
  //------------------------------------------  
  display.clearDisplay();
  for (i=1; i<64; i++) //bar graph sketch on OLED display
  {
    int dat = sqrt(data[i] * data[i] + im[i] * im[i]);
    display.drawLine(i*2 + x, ylim, i*2 + x, ylim - dat, WHITE);
  }
  display.setCursor(0,0); display.print("  Spectrum Analyzer");
  display.display();
}


#include "ssd1306.h"

void setup()
{
    /* Replace the line below with ssd1306_128x32_i2c_init() if you need to use 128x32 display */
    ssd1306_128x64_i2c_init();
    ssd1306_fillScreen(0x00);
    ssd1306_setFixedFont(ssd1306xled_font6x8);
}

int progress = 0;

void loop()
{
    ssd1306_drawProgressBar( progress );
    progress++;
    if ( progress > 100 )
    {
        progress = 0;
        delay( 2000 );
    }
    else
    {
        delay( 50 );
    }
}

四、功能演示结果及说明

不同音量、不同频率的声音在屏幕上的波形各不相相同。

FnTqeWM4Lo1YclvnnPa0MzjmI0ux

五、对本活动的心得体会

这个一个非常能锻炼都收能力的活动,可以先采购芯片,然后进行项目设计。活动的主题方向都还是比较大的,我做的还只是其中的一小部分,还需要不断的学习去完善这个模块,希望后期整个系统能更加完整。

附件下载
核心代码.docx
团队介绍
面包板和arduino的忠实爱好者……
团队成员
鱼儿游
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号