找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4837|回复: 21
打印 上一主题 下一主题
收起左侧

51单片机io口接二极管问题

  [复制链接]
跳转到指定楼层
楼主
我想问一下,io口串联 二极管 蜂鸣器为什么会变大声

while(1)
        {       
                        beep=1;
                delay(100); //延时大约100us   通过修改此延时时间达到不同的发声效果       
           beep=0;
                delay(100);
        }

1.jpg (1.65 MB, 下载次数: 72)

1.jpg

2.jpg (1.17 MB, 下载次数: 55)

2.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:824490 发表于 2021-2-19 23:03 | 只看该作者
因IO输出直接B极,会被B-E结拉低电平,所以,IO输出接3极管,都要串一个电阻,1K-2K区间,或更大阻值。你串一个4148类似作用,但建议还是改为电阻为好。
回复

使用道具 举报

板凳
ID:883031 发表于 2021-2-21 10:10 | 只看该作者
还是单片机io口高电平的驱动能力不够,如果你用的是stc单片机,可以将io口配置成推挽输出试试。
回复

使用道具 举报

地板
ID:492709 发表于 2021-2-21 10:56 | 只看该作者
如果用的是无源蜂鸣器,IO输出的是交流信号,交流信号的低电平会拉低三极管基极的电压,加入二极管后,二极管阻断了IO口低电平对三极管基极电压的影响,相应的提高了三极管的有效触发电平。
回复

使用道具 举报

5#
ID:332444 发表于 2021-2-21 11:10 | 只看该作者
串接4个二极管试看
回复

使用道具 举报

6#
ID:332444 发表于 2021-2-21 11:11 | 只看该作者
这样模块应该不用再加三极管才对
回复

使用道具 举报

7#
ID:492709 发表于 2021-2-21 11:42 | 只看该作者
xianfajushi 发表于 2021-2-21 11:10
串接4个二极管试看

还不如把那个IO脚剪掉痛快。
回复

使用道具 举报

8#
ID:885340 发表于 2021-2-21 14:59 | 只看该作者
IO口,加外部上拉,提高驱动能力
回复

使用道具 举报

9#
ID:883242 发表于 2021-2-21 17:58 | 只看该作者
有源无源蜂鸣器楼主都没有说清楚。
回复

使用道具 举报

10#
ID:420836 发表于 2021-2-22 06:23 | 只看该作者
IO P1.5输出具有100us高电平和100us低电平状态。 延迟可能太短,因此逻辑转换未完成,因此导致IO的平均电压高于晶体管的B-E压降。 因此晶体管始终处于导通状态。 蜂鸣器应为无源式蜂鸣器。 添加二极管会导致低态电压足够低,从而切断晶体管,因此会产生交流信号以驱动蜂鸣器。
回复

使用道具 举报

11#
ID:420836 发表于 2021-2-22 08:52 | 只看该作者
IO P1.5输出具有100us高电平和100us低电平状态。 延迟可能太短,因此逻辑转换未完成
回复

使用道具 举报

12#
ID:319836 发表于 2021-2-22 10:01 | 只看该作者
二极管会有0.7伏的压降,如果基极的电压比集电极高,三极管就截止了,所以蜂鸣器声音小,加了二极管后,基极的电压低了,就大声了
回复

使用道具 举报

13#
ID:884588 发表于 2021-2-22 10:52 | 只看该作者
你的单片机型号是什么?
回复

使用道具 举报

14#
ID:884588 发表于 2021-2-22 10:54 | 只看该作者
你的单片机型号是多少?
回复

使用道具 举报

15#
ID:56002 发表于 2021-2-22 11:39 | 只看该作者
串个10K
回复

使用道具 举报

16#
ID:880509 发表于 2021-2-22 13:11 | 只看该作者
增加驱动能力
回复

使用道具 举报

17#
ID:287575 发表于 2021-2-22 13:24 | 只看该作者
把三极管改成PNP型就可以了,如8550,或者把口线改到P0口也行,P1,P2,P3是准双向口,灌电流大,拉电流取决于内部上拉电阻,由于内部电阻较大,导致你的8050不能全饱和导通而处于放大状态
回复

使用道具 举报

18#
ID:451718 发表于 2021-2-22 16:13 | 只看该作者
一个简单问题,看到你两次发帖。  仔细体会1楼给你的解答。  或者你把输出口改为推挽输出方式。  还有一种解决办法。我猜你现在P1.5口的上拉电阻应该是用的10k吧, 把你P1.5口的上拉电阻改为4.7k或者3.3k,声音也会大一点点。 但是不建议你这样做。
回复

使用道具 举报

19#
ID:720168 发表于 2021-2-22 16:35 | 只看该作者
  5.1_phantom 发表于 2021-2-22 10:54
你的单片机型号是多少?

stc89c52
回复

使用道具 举报

20#
ID:744327 发表于 2021-2-22 18:09 | 只看该作者
上拉电阻可能起到作用不大,可以改MOS管试一下
回复

使用道具 举报

21#
ID:720168 发表于 2021-2-23 10:17 | 只看该作者
名字不是重点 发表于 2021-2-19 23:03
因IO输出直接B极,会被B-E结拉低电平,所以,IO输出接3极管,都要串一个电阻,1K-2K区间,或更大阻值。你串 ...

那还可以问一下为什么STM32不存在这个问题,stm32的板子直接照着连线写代码就能有很大声音
回复

使用道具 举报

22#
ID:332444 发表于 2021-2-24 17:29 | 只看该作者
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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