标题: 51单片机驱动蜂鸣器的触发-发声问题 [打印本页]

作者: bighandsky    时间: 2017-5-28 20:44
标题: 51单片机驱动蜂鸣器的触发-发声问题
本人:非科班出生的初学者哈!
最近开始学习单片机,购买的是最小系统板类型,想通过IO口触发蜂鸣器报警。蜂鸣器如下图所示,


具体程序代码如下。
#include <reg52.h>
#include <intrins.h>
#define on 0
#define off 1
sbit fm = P1^0;

void delay(unsigned int xms)
{
        unsigned int  i,j;
        for(i = xms; i > 0; i--)
                for(j = 112; j > 0 ; j--);
}
void main()
{        

        while(1)
        {      
            fm = on;
            delay(100);
                        fm = off ;
                        delay(100);
               
        }


最开始直接用单片机的P1^0端口连接蜂鸣器的IO口,基本上不能够听到蜂鸣器发声。
1、后来看到有人说需要连接上拉电阻,于是在P1^0端口串联了一个10K欧姆的电阻,是可以发声了,基本可以听见,可是不够大。
2、第二个方案,想通过IO连接一个发光二极管来检测是否端口按照程序输出高低电平。发现程序是可以正常输出高低电平的。
3、第三个方案,将蜂鸣器的输入端口与发光二极管串联,这个时候发光二极管按照预期闪烁,蜂鸣器发声也特别尖锐和高分贝了。这个现象很奇怪,难道是因为发光二极管的原因导致,输入电平的快速变化引起的么?!?!



本人问题:
1、为什么采用发光二极管串联后会发出较高分贝的声音?
2、直接采用10K欧姆的电阻的时候声音会比较小?

作者: bighandsky    时间: 2017-6-4 10:35
没有人碰见过类似问题么?
作者: 社会摇    时间: 2017-6-4 16:18
我也有这个问题
作者: admin    时间: 2017-6-11 02:46
有没有蜂鸣器模块的原理图?看看三极管是怎么接的用的什么型号.
作者: HC6800-ES-V2.0    时间: 2017-6-11 09:06
看到你的问题,我也有这个模块,就试了一试。
第一:我在板子上,就用你的程序,一点问题都没有。
第二:你的程序中,发声音的延时程序,时间太长了。定时100ms开关,周期就是200ms,即频率5Hz,只听到蜂鸣器嗒嗒嗒,在“敲响”,基本没有乐音。中学物理课说,人耳听到声音频率为20~20000Hz。所以,我把它改为1ms,即频率500Hz,则有宏亮的乐音。我的经验:在有无源蜂鸣器的程序中,一般都专门为它准备一个延时程序。另外,人耳听到的声音大小,与感觉有关,同等声音强度情况下,有的人对高音敏感,有的人对低音敏感,这个无源蜂鸣器的音量,我还真没有调过,本来这个延时放声音,就是PWM波的样子,就已经与功率有关了。
第三:模块电路如图所示(看清楚你的实物图,你的是高电平触发,我的是低电平触发,不同仅在于用的三极管不同,一个是PNP,一个是NPN,但不影响整体效果)。所以,基本就不需要你说的什么电阻等其它元件,这个模块就是直接用到I/O口的,你看,模块上不也印刷着VCC、GND、I/O吗。你看到的网上说法,是只有蜂鸣器一个元件时要搭电路所需元件,而不是你的模块。
第四:我的蜂鸣器响了,就没有试你说的发光二极管的事。

1.jpg (12.08 KB, 下载次数: 123)

蜂鸣器模块电路

蜂鸣器模块电路

作者: dragon19790000    时间: 2017-6-11 18:34
问题出在蜂鸣器上,你的蜂鸣器是有源的还是无源的
作者: 526637566@qq.co    时间: 2020-3-4 13:19
我也试了下确实不行,我在想是不是三极管的基极电压太高,用二极管降低了0.7V。用mos管就不会有这个问题
作者: haierzaifei11    时间: 2020-3-4 14:59
有没有蜂鸣器模块的原理图?看看三极管是怎么接的用的什么型号.
作者: 526637566@qq.co    时间: 2020-3-4 23:37
dragon19790000 发表于 2017-6-11 18:34
问题出在蜂鸣器上,你的蜂鸣器是有源的还是无源的

有源的,高电平使能,那个宝买的模块,确实和楼主现象一样




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1