在之前的一个帖子里(https://bbs.icxbk.com/group-topic-id-61453.html),我跟大家分享了一个关于“特定频率声音”检测的问题,虽然目的已经达到,但是在实际应用的过程中还是会遇到一些问题,就比如说,在上一帖子中,调节LM567的中心频率的时候,需要用到示波器。然而,在很多应用现场,是没有示波器的,或者说要找一个示波器不是很方便,那么如果产品换型的时候,这个LM567中心频率的调节又是一个头疼的问题了,难道每次换型,都去找一个示波器来?
回答肯定是:NO!既然有问题了,肯定要想办法去解决!于是,又是折腾了好一段时间,在之前的模块上加了一个单片机跟一个4位一体的数码管显示模块,单片机用来检测调节得到的LM567的中心频率,数码管自然就是用来显示这个频率啦!于是又得到了下面这么一个模块:
由于这次改进的模块是多个功能的合成版,图中其他的模块与本帖无关,所以就暂时不做详细讨论了。这个模块主要用到的技术有:LM2576稳压输出5V电源的使用、运放LM358的使用、音频解码器LM567的使用、STC12C2052AD单片机AD的使用、74HC595的使用、4位一体共阴数码管的使用及74HC595驱动四位一体共阴数码管的应用等。
首先我们来看下这个模块的部分原理图吧:
从图中我们可以看到,本次使用的主MCU是STC12C2052AD,不要问我为什么,因为这款单片机使用的比较熟一点,呵呵……这款单片机是自带两路8位AD的,在本应用中,基本上是够用了,数码管采用的是四位一体共阴数码管,驱动芯片用的是两片74HC595.
接下来我们就要开始做实验来验证我们的模块是否正确啦!首先,我们还是将LM567的中心频率调节致4KHZ,数码管显示如下:
那么所测的频率是否正确呢?我们用示波器来验证一下,结果显示如下:
可见,数码管显示的频率跟示波器测得的频率基本一致!
接下来我们还是一样,来证明实际声源发声的时候,我们的模块是否能达到我们想要的目的!首先,我们还是一样,在软件上设置频率为4KHZ,将耳机靠近咪头:
我们看到了声音输出的指示灯亮了,说明我们的模块能检测到设定好的频率的声音!那么,我们同样来证明一下,其他频率段的声音能不能误判,同样,我们将软件声源设置成2KHZ,将耳机靠近咪头,咦……原来指示灯输出的信号现在没有了!
由此我们可以证明,该模块只能接收到特定频率的声音,当然,我们也做了很多的测试,实验证明,当声源的频率在LM567中心频率14%左右,该模块会有信号输出,其他频率段的声音均不会有信号输出!
下面奉上源程序跟相关资料:
最后声明一下:
由于个人能力有限,分享的目的是希望大家互相交流,帮忙指正一下设计中的不足之处,以便后续成品继续改进!