[求助]关于51单片机蜂鸣器的驱动

发布网友 发布时间:2022-04-24 14:34

我来回答

5个回答

热心网友 时间:2023-08-02 03:38

你好,首先蜂鸣器分为两种,有源蜂鸣器和无源蜂鸣器,不知道你用的是哪种。有源蜂鸣器只要两端的电压达到它所需的工作电压即可鸣叫。我用的是5v有源蜂鸣器,但3.8v的时候一样能工作,一般来讲可以用三极管做模拟开关,选定一个I/O口来驱动三极管的导通与截止。
电路接法:三极管选定PNP型,基级b连接一个10k欧左右的电阻后接I/O口,发射极e连接5v左右(据蜂鸣器的工作电压而定)电压,集电极c连接蜂鸣器后接地。单片机在复位后的各I/O口是高电平,此时三极管是截止的,编写程序使选定的I/O为低电平,此时三极管导通,导通后蜂鸣器与电源正极连通,构成一个工作回路,便可鸣叫。

热心网友 时间:2023-08-02 03:39

需要注意的是一般单片机做控制类,比如蜂鸣器等,肯定要加一级驱动或者隔离之类的,还有单片机一上电后引脚全是高电平的(如果控制的是机器人那么启动后机器人肯定会剧烈抖动一下),所以一般用低电平作为控制有效信号,另外单片机和控制器件之间要串一个2K多电阻隔离,其他的上面已经很清楚

热心网友 时间:2023-08-02 03:39

用PNP和NPN都可以的,但是最好用PNP,如你第一幅图把三极管上下换一下就行了。

热心网友 时间:2023-08-02 03:40

请用npn的三极管!

热心网友 时间:2023-08-02 03:41

1>
51系列单片机除p0外,输出高电平时都是通过内部高阻上拉电阻输出的,输出电流只是ua级别,p1.6输出高电平时按照你的电路,等效於r7通过一个百k级的电阻接到vcc,这就是你测量到p1.6端口电平下降的原因。
2>
首先,建议你先确定一下你的蜂鸣器接上5v电源时是否会“鸣叫”?再串入电流表测量它的工作电流是多少?
按照你提供的数据推算,p1.6的输出电流为:(0.771-0.615)/10k=15.6ua,三极管放大倍数按100估算,最大负载电流为1.56ma,也就是说三极管只能驱动工作电流小於1.56ma的蜂鸣器。
假如蜂鸣器的工作电流超过驱动上限,而你又想用这个驱动电路,我觉得最简单的方法是把驱动三极管换成小功率达林顿管(达林顿管的放大倍数>1000,也可以用2个三极管构成)或在p1.6口外加一个上拉电阻用以增强输出电流。
假设:
你的蜂鸣器工作电流为10ma,留富裕值按20ma估算;三极管放大倍数按100计。
三极管输入驱动电流为:20ma/100=0.2ma(端口输出低电平时,吸流高值10ma,外加0.2ma的电流不会影响功能和损害芯片)
忽略p1.6高电平输出电流,外加上拉电阻=(5v-0.65bev)/0.2ma=21.75k。
p1.6到vcc的上拉电阻取20k,r7取1k。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com