亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 声音传感器实时监测:LED 指示灯 + LCD 显示声级

组件与供应

Arduino UNO ×1
全尺寸无焊面包板 ×1
9V 电池及转接头 (可选) ×1
公对公/公对母杜邦线若干 ×1
16x2 I2C LCD (白字蓝底) ×1
KY-038 声音传感器模块 ×1
5mm LED:黄×2、绿×4、红×2、白×4、蓝×4 各若干
电阻:100Ω (白/蓝) ×8、220Ω (红/黄) ×4、330Ω (绿) ×4 各若干

软件

项目介绍

本项目利用 KY-038 麦克风模块采集声音信号,通过 Arduino 读取模拟量 (A0) 和数字量 (D0),在串口监视器和 LCD 上实时显示声级数值,并根据阈值点亮不同颜色的 LED 直观指示音量大小:黄色为低音量,绿色为中等,红色为高音量。代码整合了多个开源示例,并解决了 LCD 显示残留数字的问题。

工作原理

代码

代码已添加详细注释。需安装 LiquidCrystal_PCF8574 库驱动 I2C LCD。

#include "Arduino.h"
#include "LiquidCrystal_PCF8574.h"
#define LCD_ADDRESS 0x27
#define LCD_ROWS 2
#define LCD_COLUMNS 16
#define SCROLL_DELAY 150
#define BACKLIGHT 255
LiquidCrystal_PCF8574 LCDi2C;

int LED1=3, LED2=4, LED3=5, LED4=6, LED5=7, LED6=8, LED7=9, LED8=10;
int soundSensor = 2; // DO 引脚
int sensorValue = 0;
boolean LEDStatus = false;

void setup() {
  Serial.begin(9600);
  LCDi2C.begin(LCD_COLUMNS, LCD_ROWS, LCD_ADDRESS, BACKLIGHT);
  pinMode(soundSensor, INPUT);
  for(int i=3; i<=10; i++) pinMode(i, OUTPUT);
}

void loop() {
  sensorValue = analogRead(A0);
  int SensorData = digitalRead(soundSensor);
  if(SensorData == 1) {
    if(!LEDStatus) {
      LEDStatus = true;
      Serial.println(sensorValue);
      LCDi2C.setCursor(0,0);
      LCDi2C.print("SoundLevel Data:");
      LCDi2C.setCursor(0,1);
      LCDi2C.print(sensorValue);
      LCDi2C.print(" "); // 清除残留位
    }
    // 分级点亮 LED,阈值需根据实测调整
    if(sensorValue >= 750) digitalWrite(LED8, HIGH); else { LEDStatus=false; digitalWrite(LED8, LOW); }
    if(sensorValue >= 735) digitalWrite(LED7, HIGH); else { LEDStatus=false; digitalWrite(LED7, LOW); }
    if(sensorValue >= 725) digitalWrite(LED6, HIGH); else { LEDStatus=false; digitalWrite(LED6, LOW); }
    if(sensorValue >= 720) digitalWrite(LED5, HIGH); else { LEDStatus=false; digitalWrite(LED5, LOW); }
    if(sensorValue >= 715) digitalWrite(LED4, HIGH); else { LEDStatus=false; digitalWrite(LED4, LOW); }
    if(sensorValue >= 700) digitalWrite(LED3, HIGH); else { LEDStatus=false; digitalWrite(LED3, LOW); }
    if(sensorValue >= 675) digitalWrite(LED2, HIGH); else { LEDStatus=false; digitalWrite(LED2, LOW); }
    if(sensorValue >= 650) digitalWrite(LED1, HIGH); else { LEDStatus=false; digitalWrite(LED1, LOW); }
  } else {
    LEDStatus = false;
    for(int i=3; i<=10; i++) digitalWrite(i, LOW);
  }
}

原理图

按面包板实物连线图逐根连接即可。

社交媒体

作者主页:Facebook/Twitter/Instagram @HeathenHacks

制造工艺

  1. 树莓派传感器数据融合实战:GPS 与 MPU‑9150 IMU 的 I²C 与 UART 接入
  2. 树莓派接 KY‑033 循迹/门状态传感器:简易 Python 实现
  3. 树莓派构建稳健传感器 API:基于 GY‑91 多功能模块的 Flask 实现
  4. Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
  5. Arch Systems与Flex合作 以先进分析变革制造数据
  6. Würth Elektronik 推出 WSEN-ITDS:紧凑低功耗三轴 MEMS 加速度计,面向工业物联网
  7. BASELABS 发布 Dynamic Grid:面向高阶汽车建模的原始数据传感器融合
  8. 仿皮肤软触觉传感器赋能机器人精准抓取
  9. 国际空间站传感器精准WiFi RSSI定位追踪
  10. 释放IoT生态系统中视觉数据的力量
  11. 构建高影响力传感器驱动物联网应用的六大核心原则
  12. 革命性材料驱动新一代LED数据通信