找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3700|回复: 18
收起左侧

材料表上写的是有源蜂鸣器,但高电平或低电平都不叫

  [复制链接]
ID:839919 发表于 2020-12-3 10:34 来自手机 | 显示全部楼层 |阅读模式
只有给个方波它才叫而且声音特小,请问这是怎么回事啊?我就想让它声音放大点,求大神指点
IMG_20201203_103048.jpg
回复

使用道具 举报

ID:88256 发表于 2020-12-3 13:30 | 显示全部楼层
材料表写的不一定就对,需要自己检查,可以拿个5V电源按极性触碰一下蜂鸣器看是否会鸣叫(无源的只有触碰瞬间会有一声响);另外,有源的一般都是5V供电,你这个电压不足肯定不够响(甚至可能都会不响),蜂鸣器有问题也会造成响声不够大
回复

使用道具 举报

ID:278840 发表于 2020-12-3 13:36 | 显示全部楼层
你这个蜂鸣器应该是无源蜂鸣器
回复

使用道具 举报

ID:853728 发表于 2020-12-3 13:58 | 显示全部楼层
量下3.3V电是否正常
回复

使用道具 举报

ID:46065 发表于 2020-12-3 14:03 | 显示全部楼层
3.3V去掉9013的压降,可能电压不够了吧
回复

使用道具 举报

ID:692599 发表于 2020-12-3 14:05 | 显示全部楼层
明显的供电电压太低,做过试验的,低压太低声音小甚至完全不响
回复

使用道具 举报

ID:16255 发表于 2020-12-4 15:27 | 显示全部楼层
先确认一下,蜂鸣器的电压是不是3.3V供电的,一般看贴纸,红色的是3.3V,蓝色的是5V,黑色的是12V。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:16255 发表于 2020-12-4 15:31 | 显示全部楼层
我个人喜欢用pnp来驱动 51hei五笔截图未命名.jpg

回复

使用道具 举报

ID:326116 发表于 2020-12-4 16:10 | 显示全部楼层
可能需要加三极管放大信号吧。再给引脚方波
回复

使用道具 举报

ID:568565 发表于 2020-12-4 16:40 | 显示全部楼层
要换有源蜂鸣器,这样给高电平就能响了,而且用5V的话会非常响(把贴纸撕掉的情况下)
回复

使用道具 举报

ID:568565 发表于 2020-12-4 16:41 | 显示全部楼层
有源蜂鸣器底部是黑色封装而不是电路板,你看看是不是
回复

使用道具 举报

ID:491875 发表于 2020-12-5 10:30 | 显示全部楼层
mengsiu 发表于 2020-12-4 15:31
我个人喜欢用pnp来驱动

PNP驱动存在缺陷,当蜂鸣器供电大于驱动(单片机)供电时,可能不受控或者损坏单片机I/O 口。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:517466 发表于 2020-12-5 10:59 | 显示全部楼层
这种无源的蜂鸣器,必须施加合适的方波,模拟正弦波,才能发声。声音大小,和声波的频率、强度有关。也就是说,你需要调整方波的输出频率和占空比才行。看你的电路图, 估计电压是不能改了,但是还可以试试换放大倍数大一些的三极管。另外可以参考网上用方波模拟音乐发声的程序,应该有很多。以下是一个模拟发声的程序,使用STC89C52,+5V电源,声音还是比较明显的:
#include <reg52.h>   
#include <intrins.h>   
//频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;   
sbit Beep =  P0^4 ;

unsigned char n=0;  //n为节拍常数变量   
unsigned char code music_tab[] ={   
0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,   
0x20, 0x40, 0x1C , 0x10,   
0x18, 0x10, 0x20 , 0x10,   
0x1C, 0x10, 0x18 , 0x40,   
0x1C, 0x20, 0x20 , 0x20,   
0x1C, 0x20, 0x18 , 0x20,   
0x20, 0x80, 0xFF , 0x20,   
0x30, 0x1C, 0x10 , 0x18,   
0x20, 0x15, 0x20 , 0x1C,   
0x20, 0x20, 0x20 , 0x26,   
0x40, 0x20, 0x20 , 0x2B,   
0x20, 0x26, 0x20 , 0x20,   
0x20, 0x30, 0x80 , 0xFF,   
0x20, 0x20, 0x1C , 0x10,   
0x18, 0x10, 0x20 , 0x20,   
0x26, 0x20, 0x2B , 0x20,   
0x30, 0x20, 0x2B , 0x40,   
0x20, 0x20, 0x1C , 0x10,   
0x18, 0x10, 0x20 , 0x20,   
0x26, 0x20, 0x2B , 0x20,   
0x30, 0x20, 0x2B , 0x40,   
0x20, 0x30, 0x1C , 0x10,   
0x18, 0x20, 0x15 , 0x20,   
0x1C, 0x20, 0x20 , 0x20,   
0x26, 0x40, 0x20 , 0x20,   
0x2B, 0x20, 0x26 , 0x20,   
0x20, 0x20, 0x30 , 0x80,   
0x20, 0x30, 0x1C , 0x10,   
0x20, 0x10, 0x1C , 0x10,   
0x20, 0x20, 0x26 , 0x20,   
0x2B, 0x20, 0x30 , 0x20,   
0x2B, 0x40, 0x20 , 0x15,   
0x1F, 0x05, 0x20 , 0x10,   
0x1C, 0x10, 0x20 , 0x20,   
0x26, 0x20, 0x2B , 0x20,   
0x30, 0x20, 0x2B , 0x40,   
0x20, 0x30, 0x1C , 0x10,   
0x18, 0x20, 0x15 , 0x20,   
0x1C, 0x20, 0x20 , 0x20,   
0x26, 0x40, 0x20 , 0x20,   
0x2B, 0x20, 0x26 , 0x20,   
0x20, 0x20, 0x30 , 0x30,   
0x20, 0x30, 0x1C , 0x10,   
0x18, 0x40, 0x1C , 0x20,   
0x20, 0x20, 0x26 , 0x40,   
0x13, 0x60, 0x18 , 0x20,   
0x15, 0x40, 0x13 , 0x40,   
0x18, 0x80, 0x00   
};   

void delay (unsigned char m)   //控制频率延时   
{   
unsigned i=3*m;   
while(--i);   
}   
void delayms(unsigned char a)  //豪秒延时子程序   
{   
  while(--a);     
}   
void main()   
{
        unsigned char p,m;   //m为频率常数变量   
        unsigned char i=0;   
        TMOD&=0x0f;   
        TMOD|=0x01;   
        TH0=0xd8;TL0=0xef;   
        IE=0x82;   
play:
        while(1)   
    {   
        a:  p=music_tab[i];   
                if(p==0x00)      
                {
                        i=0, delayms(1000); goto play; //如果碰到结束符,延时1秒,回到开始再来一遍  
                }      
                else
                        if(p==0xff)  
                        {
                                i=i+1;delayms(100),TR0=0; goto a;  //若碰到休止符,延时100ms,继续取下一音符
                        }      
                        else
                        {
                                m=music_tab[i++], n=music_tab[i++];         //取频率常数 和 节拍常数
                        }      
                        TR0=1;                                             //开定时器0   
                while(n!=0)                    //等待节拍完成,输出音频  
                {
                        Beep=~Beep;
                        delay(m);   
                }
                TR0=0;                                             //关定时器0   
    }   
}
void int0() interrupt 1   //采用中断定时器0 控制节拍   
{  
        TH0=0xd8;   
        TL0=0xef;   
        n--;   
}

无源发声.jpg

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:783844 发表于 2020-12-5 21:01 | 显示全部楼层
你这个要换有源蜂鸣器,这样给高电平就能响了哦!
回复

使用道具 举报

ID:420836 发表于 2020-12-6 01:57 | 显示全部楼层
这个应该是无源蜂鸣器
回复

使用道具 举报

ID:491875 发表于 2020-12-6 08:42 | 显示全部楼层
注意!有源蜂鸣器有极性的!接错了也不会叫!
回复

使用道具 举报

ID:703227 发表于 2020-12-6 21:58 来自手机 | 显示全部楼层
蜂鸣器换了
回复

使用道具 举报

ID:373388 发表于 2020-12-7 11:20 | 显示全部楼层
1.有源蜂鸣器有正负极,正负极接错会不响;
2.如果没有正负极标注,可能就是无源分鸣器;

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:180919 发表于 2020-12-7 11:28 | 显示全部楼层
先看下蜂鸣器电压是多少V?三极管先3904比较好,3904 CE极小电流电压能达到0V

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表