36787浏览
楼主: 驴友花雕

[项目] 【Arduino】168种传感器系列实验(185)---MAX4466声音模块

[复制链接]

驴友花雕  中级技神
 楼主|

发表于 2021-8-16 17:57:55

实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
实验开源仿真编程(Linkboy V4.62)项目之九:显示动态声音波形

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-16 18:00:12

实验串口绘图器返回情况(一段歌曲的波形)


【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-16 18:48:21

  【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块
  项目之十:使用KA2284电平指示模块的简易音乐节奏灯
  实验接线:MAX4466咪头模块OUT接Uno的A0,电平模块接D6(pwm)

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块
  4.   项目之十:使用KA2284电平指示模块的简易音乐节奏灯
  5.   实验接线:MAX4466咪头模块OUT接Uno的A0,电平模块接D6(pwm)
  6. */
  7. int levelModule = 6;
  8. int readValue = 0; //保存读到的模拟值
  9. int ledValue = 0;  //保存占空比
  10. void setup() {
  11.   pinMode(levelModule, OUTPUT); //数字口要选择带~号的具有pwm功能的输出口
  12. }
  13. void loop() {
  14.   readValue = analogRead(A0);     //读取A0模拟口的数值(0-5V 对应 0-1024取值)
  15.   ledValue = map(readValue, 0, 1023, -1, 7);
  16.   // 将0到1024之间的数据映射成-1到7之间的数据
  17.   analogWrite(levelModule, ledValue);   //PWM最大取值6
  18. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-16 18:49:42

实验场景图

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-17 14:23:29

                                            


  【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块
  项目十一:超简单的音乐反应 LED 灯条

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块
  4.   项目十一:超简单的音乐反应 LED 灯条
  5.   实验接线:MAX4466咪头模块OUT接Uno的A0,电平模块接D13
  6. */
  7. int soundSensor = A0;
  8. int LED = 13;
  9. void setup() {
  10.   pinMode(soundSensor, INPUT);
  11.   pinMode(LED, OUTPUT);
  12. }
  13. void loop() {
  14.   int statusSensor = digitalRead (soundSensor);
  15.   if (statusSensor == 1) {
  16.     digitalWrite(LED, HIGH);
  17.   }
  18.   else {
  19.     digitalWrite(LED, LOW);
  20.   }
  21. }
复制代码

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-17 14:36:16

本帖最后由 驴友花雕 于 2021-8-17 14:38 编辑

                                            


实验场景图 动态图  【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
   
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-9-8 07:56:46

Arduino 系列传感器和执行器模块实验目录清单:
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
https://mc.dfrobot.com.cn/thread-280845-1-1.html
连杆形式的腿机构十一种:盘点机器人行走背后的机械原理
https://mc.dfrobot.com.cn/thread-308097-1-1.html
【花雕动手做】超低成本,尝试五十元的麦克纳姆轮小车!
https://mc.dfrobot.com.cn/thread-307863-1-1.html
【花雕动手做】超迷你哦,用徽商香烟盒做个智能小车!
https://mc.dfrobot.com.cn/thread-307907-1-1.html
【花雕动手做】太搞笑啦,一支胶管制成二只蠕动机器人
https://mc.dfrobot.com.cn/thread-308046-1-1.html
【花雕动手做】快餐盒盖,极低成本搭建机器人实验平台
https://mc.dfrobot.com.cn/thread-308063-1-1.html
【花雕动手做】特别苗条,使用微波传感器控制的纤细小车
https://mc.dfrobot.com.cn/thread-308866-1-1.html
【花雕动手做】脑洞大开、五花八门的简易机器人66种
https://mc.dfrobot.com.cn/thread-307900-1-1.html

实验一百五十八:QMC5883L电子指南针罗盘模块 三轴磁场传感器GY-271
https://mc.dfrobot.com.cn/thread-308195-1-1.html
实验一百六十三:BMI160 6轴惯性运动传感器 16位3轴加速度+超低功耗3轴陀螺仪  I2C/SPI 14LGA
https://mc.dfrobot.com.cn/thread-310371-1-1.html
实验一百六十五:2.4 英寸 TFT LCD 触摸屏模块 XPT2046 PCB ILI9341 240x320 像素 8 位 SPI 串口显示器
https://mc.dfrobot.com.cn/thread-309803-1-1.html
实验一百七十六:6mm大尺寸8x8LED方块方格点阵模块 可级联 红绿蓝白色 可选8级亮度
https://mc.dfrobot.com.cn/thread-309845-1-1.html
实验一百八十三:GY-530 VL53L0X 激光测距 ToF测距 飞行时间测距传感器模块 IIC通信协议
https://mc.dfrobot.com.cn/thread-310273-1-1.html
实验一百八十五:MAX4466声音传感器 驻极体话筒放大器 麦克风可调功放模块 microphone
https://mc.dfrobot.com.cn/thread-310193-1-1.html
实验一百八十九:TDA1308 硅麦克风 数字咪头放大模块 拾音器放大板 楼氏SUNLEPHANT
https://mc.dfrobot.com.cn/thread-310246-1-1.html
实验一百九十三:TCS34725颜色识别传感器 RGB IIC明光感应模块 ColorSensor
https://mc.dfrobot.com.cn/thread-310209-1-1.html
实验二百:RCWL-0515微波雷达感应开关 人体感应 智能感应探测传感器 12-15米远距离2.7G微波检测模块
https://mc.dfrobot.com.cn/thread-310313-1-1.html
实验二百零三:Air724UG合宙 Cat14G模块 DTU物联网UART串口通信数据TCP透传 核心板组合套餐
https://mc.dfrobot.com.cn/thread-310342-1-1.html
实验二百零九:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块 NB-IoT广域低功耗无线通信 GPS/北斗精准定位
https://mc.dfrobot.com.cn/thread-310433-1-1.html


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-9-13 20:52:14

【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块
  项目十二:测量环境声级的波形
  实验接线:MAX4466咪头模块OUT接Uno的A0


  实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块
  4.   项目十二:测量环境声级的波形
  5.   实验接线:MAX4466咪头模块OUT接Uno的A0
  6. */
  7. const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz)
  8. unsigned int sample;
  9. void setup() {
  10.   Serial.begin(9600);
  11. }
  12. void loop() {
  13.   unsigned long startMillis = millis(); // Start of sample window
  14.   unsigned int peakToPeak = 0;   // peak-to-peak level
  15.   unsigned int signalMax = 0;
  16.   unsigned int signalMin = 1024;
  17.   // collect data for 50 mS
  18.   while (millis() - startMillis < sampleWindow)
  19.   {
  20.     sample = analogRead(0);
  21.     if (sample < 1024)  // toss out spurious readings
  22.     {
  23.       if (sample > signalMax)
  24.       {
  25.         signalMax = sample;  // save just the max levels
  26.       }
  27.       else if (sample < signalMin)
  28.       {
  29.         signalMin = sample;  // save just the min levels
  30.       }
  31.     }
  32.   }
  33.   peakToPeak = signalMax - signalMin;  // max - min = peak-peak amplitude
  34.   double volts = (peakToPeak * 5.0) / 256;  // convert to volts
  35.   Serial.println(volts);
  36. }
复制代码



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-9-13 20:54:26

实验串口绘图器返回情况

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-9-13 20:57:19

实验场景图

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-9-14 13:46:01

  【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块
  项目十三:RGB LED 灯的声学频谱控制

  实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块
  4.   项目十三:RGB LED 灯的声学频谱控制
  5.   实验接线:MAX4466咪头模块OUT接Uno的A0
  6.   Rpin 11
  7.   Gpin 10
  8.   Bpin 9
  9. */
  10. #define Rpin 11
  11. #define Gpin 10
  12. #define Bpin 9
  13. #define delayLEDS 3
  14. #define sensorPin A0
  15. float sensorValue = 0, filteredSignal = 0,
  16.       filteredSignalValues[] = {3.4, 3.1, 2.7, 2.4, 2.1, 1.7, 1.3, 0.9, 0.4};
  17. void setup () {
  18.   Serial.begin (9600);
  19. }
  20. void loop () {
  21.   MainFunction();
  22.   delay(6);
  23. }
  24. void MainFunction() {
  25.   sensorValue = (float) analogRead(sensorPin) * (5.0 / 1024.0);
  26.   FilterSignal(sensorValue);
  27.   Serial.print(sensorValue);
  28.   Serial.print(" ");
  29.   Serial.println(filteredSignal);
  30.   CompareSignalFiltered(filteredSignal);
  31. }
  32. void FilterSignal(float sensorSignal) {
  33.   filteredSignal = (0.945 * filteredSignal) + (0.0549 * sensorSignal);
  34. }
  35. void CompareSignalFiltered(float filteredSignal) {
  36.   if (filteredSignal > filteredSignalValues[0]) {
  37.     RGBColor(0, 127, 255);
  38.     Serial.println("Blue");
  39.   } else if (filteredSignal <= filteredSignalValues[0] && filteredSignal > filteredSignalValues[1]) {
  40.     Serial.println("Azure");
  41.     RGBColor(0, 255, 255);
  42.   } else if (filteredSignal <= filteredSignalValues[1] && filteredSignal > filteredSignalValues[2]) {
  43.     RGBColor(255, 0, 0);
  44.     Serial.println("Cyan");
  45.   } else if (filteredSignal <= filteredSignalValues[2] && filteredSignal > filteredSignalValues[3]) {
  46.     RGBColor(0, 255, 127);
  47.     Serial.println("Aqua marine");
  48.   } else if (filteredSignal <= filteredSignalValues[3] && filteredSignal > filteredSignalValues[4]) {
  49.     RGBColor(0, 255, 0);
  50.     Serial.println("Green");
  51.   } else if (filteredSignal <= filteredSignalValues[4] && filteredSignal > filteredSignalValues[5]) {
  52.     RGBColor(255, 255, 0);
  53.     Serial.println("Yellow");
  54.   } else if (filteredSignal <= filteredSignalValues[5] && filteredSignal > filteredSignalValues[6]) {
  55.     RGBColor(0, 0, 255);
  56.     Serial.println("Magenta");
  57.   } else if (filteredSignal <= filteredSignalValues[6] && filteredSignal > filteredSignalValues[7]) {
  58.     RGBColor(255, 0, 127);
  59.     Serial.println("Rose");
  60.   } else if (filteredSignal <= filteredSignalValues[7] && filteredSignal > filteredSignalValues[8]) {
  61.     RGBColor(255, 127, 0);
  62.     Serial.println("Orange");
  63.   } else if (filteredSignal <= filteredSignalValues[8]) {
  64.     RGBColor(0, 127, 255);
  65.     Serial.println("Red");
  66.   } else {
  67.     RGBColor(255, 50 , 0);
  68.     Serial.println("Default: Blue");
  69.   }
  70. }
  71. void RGBColor(int Rcolor, int Gcolor, int Bcolor) {
  72.   analogWrite(Rpin, Rcolor);
  73.   analogWrite(Gpin, Gcolor);
  74.   analogWrite(Bpin, Bcolor);
  75.   delay(delayLEDS);
  76. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-9-14 13:48:51

本帖最后由 驴友花雕 于 2021-9-14 14:14 编辑

实验串口返回情况

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-9-14 14:04:01

本帖最后由 驴友花雕 于 2021-9-14 14:07 编辑

实验场景图  动态图   【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-9-14 14:35:06

RGB LED 灯带的声学频谱控制

   如何使用 Arduino 为 RGB LED 灯条构建您自己的音乐可视化器
   这是一个教你如何改变 LED 灯条颜色的视频
   基于从声音传感器获得的值,信号为
   使用具有截止值的一阶低通 IIR 数字滤波器过滤
   频率为 900Hz 的滤波信号与多个阈值进行比较
   用于确定将基于哪种颜色显示的值
   传感器感应到的声音频率,低频声音
  (几乎听不见)在 LED 灯条中显示为蓝色,一直到
   高频声音(高度可听)在条带中显示为红色。

   MainFunction()
   主功能
   此方法使用“sensorValue”读取声音传感器的输出值
   作为浮点数并减去 1023,因为声音传感器提供 1023 或 5V 的输出
   当没有感应到任何声音时,这样我们在没有感应到声音时的值为 0
   & 值高达 1023 当它感知声音(空气中的振动)时,我们转换信号
   到伏特。

   FilterSignal()
   过滤信号
   使用在 Matlab 中创建的一阶 IIR 低通数字滤波器过滤信号
   并将值赋给变量“filteredSignal”

   CompareSignalFiltered()
   比较信号过滤
   比较“filteredSignal”变量和“filteredSignalValues”数组
   确定我们比较的变量值在哪里小于、大于或介于两者之间,我们的
   阈值为 LED 灯条分配颜色并打印代表的颜色
   我们设置的。

   RGBColor()
   RGB颜色()
   将代表颜色的 0 到 255 之间的值发送到为每个 RGB 颜色定义的引脚,
  我们想要的;在 Google RGB 色轮上搜索以帮助您了解颜色是如何创建的。


   版本 1.2
   将“filteredSignalValues”数组中的数字顺序从高到低,颠倒并更改
   来自“sensorValue”变量的方程,从 1023 - “analogRead(A0)” 到“analogRead(A0)”,以使其成为
   更容易阅读。
   声音传感器输出 5V 或 1023,当没有声音时从 Arduino 读取为输入,并且声音高,输出 0v
   传感器具有反向输出逻辑。

回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail