找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于STC8单片机PWM信号驱动无源蜂鸣器方法的问题

[复制链接]
跳转到指定楼层
楼主
想请教一下大家,在STC8单片机中使用PWM信号输出蜂鸣器时的方法。

【背景】如图所示,我用程序在P5.4这个IO口输出了PWM信号,然后用一个100Ω的限流电阻串联一个最大范围1kΩ的可变电阻来串联蜂鸣器。
这样是可以成功驱动蜂鸣器的,但是会有问题。

【现象】就是当单片机启动时瞬间会发热,我猜想可能是因为蜂鸣器是感性负载,启动的一瞬间反电动势导致电路中的电流过大。

【现象】于是我在启动的时候加了1秒的延时,然后单片机不那么发热了,但是会有一定几率单片机不能正常启动,现象是P5.4的电压维持在高电平5.04V而不输出PWM信号;但是也有一定几率P5.4的电压在2.6V附近形成PWM信号(我通过蜂鸣器响了和电压表示数波动判断的,没有示波器呜呜呜),此时蜂鸣器正常工作。

【问题】我这种驱动方法是不是不对?是不是应该使用三极管进行驱动呢?不知道应该使用PNP还是NPN好,如果可以的话能不能给画个简单的示意图指导一下如何正常的在P5.4输出PWM信号时驱动无源蜂鸣器。

【备注】该STC8单片机工作电压5V,单片机引脚最大电流限制是20mA,无源蜂鸣器的内阻是16Ω,正常工作电压是3V。

感谢大家的帮助

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

使用道具 举报

沙发
ID:213173 发表于 2020-5-13 06:32 | 只看该作者
能够使无源蜂鸣器正常工作的电流远大于20mA,不可以用IO口直接驱动,有烧坏单片机的风险。必须加三极管驱动。用PNP或NPN都可以。如用NPN可以把P5.4设置推挽模式。


回复

使用道具 举报

板凳
ID:696720 发表于 2020-5-24 06:48 来自手机 | 只看该作者
wulin 发表于 2020-5-13 06:32
能够使无源蜂鸣器正常工作的电流远大于20mA,不可以用IO口直接驱动,有烧坏单片机的风险。必须加三极管驱动 ...

感谢,话说调推挽模式是直接在stc-isp里面操作吗
回复

使用道具 举报

地板
ID:213173 发表于 2020-5-24 09:35 | 只看该作者
mmdjiji 发表于 2020-5-24 06:48
感谢,话说调推挽模式是直接在stc-isp里面操作吗

在main函数的开始初始化端口模式
void main()
{
        P5M0 = 0x10;//0001 0000 P5.4推挽模式
        P5M1 = 0x00;//0000 0000 P5.4推挽模式
        ......
        while(1)
        {
                ......


回复

使用道具 举报

5#
ID:696720 发表于 2020-6-11 23:51 来自手机 | 只看该作者
wulin 发表于 2020-5-24 09:35
在main函数的开始初始化端口模式
void main()
{

感谢。目前驱动电路改成了三极管驱动,然后io口也设置为了推挽输出,但是单片机现在在启动时会温度激增,随后逐渐冷却并稳定运行。能不能提示一下,该怎么去寻找问题所在呢,谢谢。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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