KY-037声音传感器怎么接线?Arduino拍手检测控制教程

代码杰哥硬件DIY 2026-10-15 12:57:58 5阅读 举报

想做个拍手开灯、喊一嗓子让机器人动一下的项目,声音传感器就能实现。KY-037是常见的一块声音检测模块,它用驻极体话筒把声音转成电信号,再经比较器判断声音有没有超过阈值,输出一个电平。这篇文章讲清接线和拍手检测逻辑。

模块有AO和DO两路输出

KY-037模块上有一个驻极体麦克风,一个LM393比较器、一个调灵敏度的蓝色电位器和几个指示灯,引出脚一般是AO、DO、GND、VCC(顺序不同板子可能不同,以丝印为准)。DO是数字输出,比较器把声音强度跟阈值比,超过就翻高电平;AO是模拟输出,电压随声音大小连续变化。

判断“有没有声音”用DO就行,想测更细腻的音量或做波形显示,用AO接模拟脚读ADC。跟KY-037长得像的KY-038也常见,两者差异主要在焊元件和灵敏度,用起来思路一样。

接线和拍手计数逻辑

接线:VCC接5V、GND接GND、DO接一个数字脚(比如2号脚)。想直观反馈可以再串个LED或蜂鸣器。拍手检测的关键在于:拍手是个短促声音,DO会产生一次短暂的脉冲,代码里要识别“一次脉冲”而不是“一直循环”。最简单的方法是用一个变量记录上一次电平,当DO从低变高的一瞬间,就当作一次拍手计数,再配合消抖延时防止一次拍手数成多次。

更实用的是“拍两下开灯”:在被识别为一拍的基础上,连续两拍之间时间间隔很短就视为一次“双拍”,切换LED开或关。这里的时间窗口判断是核心,写死了它才不会被偶然的一声咳嗽误触发。

灵敏度和三个坑

蓝色电位器负责调“多大声算数”,顺时针一般更灵敏。装进底座前先边拍边调,找到“正常拍手能触发、说话不误触发”的点,避免太灵敏整天误亮、太迟钝拍到手疼。

坑有三个:一是环境噪声,嘈杂房间容易误触发,灵敏度和阈值要下探;二是共地和供电,电源不稳时AO会有毛刺、DO会乱跳;三是拍手检测本质是“响度阈值”,不是“识别拍手”,空调、关门、电视声音也可能触发,需要的话加双拍或多拍逻辑来过滤误报。

KY-037是给项目加“声音开关”的低成本方案。拍手开灯、掌声解锁、声控巡游小车的开场动作,用一片模块加几行逻辑就能实现。

版权声明:
作者:代码杰哥
链接:https://www.aiddithome.com/p/231ffab5e800c1.html
来源:硬件DIY
实践版权归作者所有,未经允许请勿转载,若此实践存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论

AO接模拟口画个波形挺好玩的,能看音量起伏

线比代码多
2楼 · 1天前

本质是响度阈值不是真识别掌声,这个理解很清楚

拆开看看再说
3楼 · 1天前

拍手双闪那个时间窗口判断是精髓,不然乱触发

电位器灵敏度不调好,说话都能给整亮