极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: eagler8

【Arduino】168种传感器模块系列实验(159)---MAX9814咪头传感...

[复制链接]
 楼主| 发表于 2020-3-8 17:34:11 | 显示全部楼层
【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
实验一百五十九:MAX9814麦克风放大器模块 MIC话筒声音放大/咪头传感器

项目测试:串口输出人声波形
模块接线:
MAX9814  Arduino
VCC        5V
GND        GND
OUT         A0

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-8 17:35:38 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-9 09:09:44 | 显示全部楼层
来自放大器输出的音频信号是变化的电压。要测量声级,我们需要进行多次测量以找到信号的最小和最大范围或“峰到峰幅度”。  

在下面的实验中,我们选择50毫秒的示例窗口。这足以测量低至20 Hz(人类听觉的下限)频率的声音水平。

找到最小和最大样本后,我们计算差值并将其转换为伏特,然后将输出打印到串行监视器。

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
  3.   实验一百五十九:MAX9814麦克风放大器模块 MIC话筒声音放大/咪头传感器

  4.   项目测试之二:测量声级
  5.   模块接线:
  6.   MAX9814  Arduino
  7.   VCC        5V
  8.   GND        GND
  9.   OUT         A0
  10. */

  11. const int sampleWindow = 50; // 以mS为单位的采样窗口宽度(50 mS = 20Hz)   
  12. unsigned int sample;

  13. void setup()
  14. {
  15.    Serial.begin(9600);
  16.    pinMode(A0,INPUT);
  17. }


  18. void loop()
  19. {
  20.    unsigned long startMillis= millis();  // 样本窗口的开始
  21.    unsigned int peakToPeak = 0;   // 峰峰值

  22.    unsigned int signalMax = 0;
  23.    unsigned int signalMin = 1024;

  24.    // collect data for 50 mS
  25.    while (millis() - startMillis < sampleWindow)
  26.    {
  27.       sample = analogRead(A0);
  28.       if (sample < 1024)  // 抛出错误的读数
  29.       {
  30.          if (sample > signalMax)
  31.          {
  32.             signalMax = sample;  // 只保存最大级别
  33.          }
  34.          else if (sample < signalMin)
  35.          {
  36.             signalMin = sample;  // 仅保存最低级别
  37.          }
  38.       }
  39.    }
  40.    peakToPeak = signalMax - signalMin;  // max-min =峰峰值幅度
  41.    double volts = (peakToPeak * 5.0) / 1024;  // 转换为伏特

  42.    Serial.println(volts);
  43. }
复制代码


回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-9 09:45:09 | 显示全部楼层
【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
  实验一百五十九:MAX9814麦克风放大器模块 MIC话筒声音放大/咪头传感器

  项目测试之二:测量声级
  模块接线:
  MAX9814  Arduino
  VCC        5V
  GND        GND
  OUT         A0

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-9 09:52:36 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-9 10:04:51 | 显示全部楼层
修改为

double volts = (peakToPeak * 5.0) / 255;  // 转换为1/4伏特值

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-9 16:54:03 | 显示全部楼层
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
  3.   实验一百四十五:MT8870 DTMF语音解码板模块 电话拨号控制音频解码处理电路

  4.   第三项实验:用合成DTMF双音多频信号测试咪头传感器和DTMF解码模块
  5.   1、安装 "dtmf"库: 下载https://codeload.github.com/DFRobot/DTMF/zip/master
  6.   2、需要材料:喇叭1个,68Ω电阻两个,咪头传感器和DTMF解码模块,两块UNO板
  7.   3、合成信号硬件连接:在D11,D12引脚各接一个68Ω电阻一端,68Ω电阻另一端接喇叭,然后喇叭另一端接地。
  8.   4、咪头模块接线:
  9.   MAX9814  Arduino
  10.   VCC        5V
  11.   GND        GND
  12.   OUT        IN(接到DTMF)
  13.   5、DTMF解码模块接线
  14.   DTMF     Arduino
  15.   VCC        5V
  16.   GND        GND
  17.   Q1         12
  18.   Q2         11
  19.   Q3         10
  20.   Q4         9
  21. */

  22. #include "dtmf.h"

  23. DTMF dtmf;

  24. void setup()
  25. {
  26.   Serial.begin(9600);
  27. }

  28. void loop()
  29. {
  30.   // 读DTMF代码并且用串行输出
  31.   int myDtmf;
  32.   myDtmf = dtmf.getDTMF();
  33.   if (myDtmf != -1)
  34.     Serial.println(myDtmf);
  35.   delay(100); // 以避免收到重复的输出。
  36. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-9 16:56:13 | 显示全部楼层
DTMF解码识别模块实验视频
https://v.youku.com/v_show/id_XNDU3OTkzOTA4OA==.html






【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
  实验一百四十五:MT8870 DTMF语音解码板模块 电话拨号控制音频解码处理电路

  第三项实验:用合成DTMF双音多频信号测试咪头传感器和DTMF解码模块
  1、安装 "dtmf"库: 下载https://codeload.github.com/DFRobot/DTMF/zip/master
  2、需要材料:喇叭1个,68Ω电阻两个,咪头传感器和DTMF解码模块,两块UNO板
  3、合成信号硬件连接:在D11,D12引脚各接一个68Ω电阻一端,68Ω电阻另一端接喇叭,然后喇叭另一端接地。
  4、咪头模块接线:
  MAX9814  Arduino
  VCC        5V
  GND        GND
  OUT        IN(接到DTMF)
  5、DTMF解码模块接线
  DTMF     Arduino
  VCC        5V
  GND        GND
  Q1         12
  Q2         11
  Q3         10
  Q4         9
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-9 17:00:17 | 显示全部楼层
打开"dtmf.h"库文件查看,发现是针对不同硬件模块的(板上芯片都是MT8870),由于接脚对不上号,故串口输出的解码不对的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 18:19 , Processed in 0.038141 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表