我们在常规的数字电路设计的中往往需要把数字信号经过开关扩流器件来驱动一些蜂鸣器、LED、继电器等需要较大电流的器件,用得最多的开关扩流器件要数三极管。然而在使用的过程中,如果电路设计不当,三极管无法工作在正常的开关状态,就达不到预期的目的,有时就是因为这些小小的错误而导致重新打板,导致浪费。本人在这个方面就吃过亏,所以把自己使用三极管的一些经验以及一些常见的误区给大家分享一下,在电路设计的过程中可以减少一些不必要的麻烦。下面来看几个三极管做开关的常用电路画法。几个例子都是蜂鸣器作为被驱动器件。

上面图一中a电路用的是NPN管,注意蜂鸣器接在三极管的集电极,驱动信号可以是常见的3.3V或者5VTTL,高电平开通,电阻按照经验法可以取4.7K。 例如a电路,开通时假设为高电平5V,基极电流Ib=(5V-0.7V)/4.7K=0.9mA,可以使三极管完全饱和。b 电路用的是PNP管,同样把 蜂鸣器接在三极管的集电极,不同的是驱动信号是5V的TTL电平。以上这两个都可以正常工作,只要PWM驱动信号工作在合适的频率,蜂鸣器(有源)都会发 出最大的声音。

这里我们用图二的这两个电路相比图一来说,最大的区别在于被驱动器件接在三极管的发射极。同样看c电路,开通时假设为高电平5V,基极电流Ib=(5V-0.7V- UL)/4.7K,其中UL为被驱动器件上的压降。可以看到,同样取基极电阻为4.7K,流过的基极电流会比图一a电路的要小,小多少要看UL是多少。如 果UL比较大,那么相应的Ib就小,很有可能导致三极管无法工作在饱和状态,使得被驱动器件无法动作。有人会说把基极电阻减小就可以了呀,可是被驱动器件的压降是很难获知的,有些被驱动器件的压降是变动的,这样一来基极电阻就较难选择合适的值,阻值选择太大就会驱动失败,选择太小,损耗又变大。所以,在非 不得已的情况下,不建议选用图二的这两种电路。

最后我们再来看上面图三这两个电路图,其中我们可以看到电路的驱动信号为3.3VTTL电平,而被驱动器件开通电压需要5V。在3.3V的MCU电路中,不小心的话很容易就设计出这两种电路,而这两种电路都是错误的。先分析e电路,这是典型的“发射极正偏,集电极反偏”的放大电路,或者叫射极输出器。当PWM信号为3.3V时,三极管发射极电压为3.3V-0.7V=2.6V,无法达到期望的5V。图三f电路也是一个很失败的电路,首先这个电路开通是没有问题的,当驱动信号为低电平时,被驱动器件可以正常动作。然而这个电路是无法关断的,当驱动信号PWM为3.3V高电平的时候,Ube=5V-3.3V=1.7V仍然可以使三极管开通,于是无法关断。在这里,有人会说用过这个电路,没有问题啊,而且MCU的电压也是3.3V。我说你用的肯定是OD(开漏)驱动方式,而且是真正的OD或者是5V容忍的OD,比如STM32的很多IO口都可以设置为5V容忍的OD驱动方式(但是有些是不行的)。当驱动信号为OD门驱动方式时,输出高电平,信号就变成了高阻态,流过基极的电流为零,三极管可以有效关断,这个时候f电路依然有效。

根据以上几种电路的情况分析,在基极与发射极之间多加了一个100K的电阻,这个电阻也是有一定作用的,可以让三极管有一个已知的默认状态。当输入信号去除的时候,三极管还处于关断状态。在安全和稳定的方面考虑,多加的这个电阻还是很有必要的,或者说可以让三极管工作在更好的开关状态。三极管作为开关器件,虽然驱动电路很简单,要使电路工作更加稳定可靠,还是不能掉以轻心。为了不容易出错,个人建议是优先采用上述的电路,尽量不采用图二的电路,避免使用图三的工作状况。

php三极管驱动蜂鸣器计算,基于蜂鸣器的开关三极管使用误区详解相关推荐

  1. 操作系统:基于页面置换算法的缓存原理详解(下)

    概述: 在上一篇<操作系统:基于页面置换算法的缓存原理详解(上)>中,我们主要阐述了FIFO.LRU和Clock页面置换算法.接着上一篇说到的,本文也有三个核心算法要讲解.分别是LFU(L ...

  2. 基于MIG控制器的DDR3读写控制详解

    基于MIG控制器的DDR3读写控制详解 目的:详细介绍FPGA中基于MIG IP核控制的DDR3详细控制及内部逻辑 平台:AX7350-Xilinx 软件:Vivado 2017.4 1.MIG IP ...

  3. CDH Hadoop 基于CM方式半在线安装步骤详解

    CDH Hadoop基于Cloudera Manager半在线方式安装详解 1 CM简介 Cloudera Manager是一个端到端的管理CDH集群的工具.它通过管理CDH集群(组件安装.服务管理. ...

  4. 单片机控制两个步进电机画圆_基于单片机的步进电机转速控制设计详解(附程序)...

    步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件.在非超载的情况下,电机的转速.停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角.这 ...

  5. 基于 UDP 的 组播、广播详解

    背景 有些时候我们在网络通信中也需要用到 组播(多播).广播.现在我们来介绍如何实现. 建议:在此之前,关闭防火墙. ubuntu: service ufw stop windows: 控制面板关闭 ...

  6. mysql 点赞数据库设计_基于redis实现的点赞功能设计思路详解

    点赞其实是一个很有意思的功能.基本的设计思路有大致两种, 一种自然是用mysql等 数据库直接落地存储, 另外一种就是利用点赞的业务特征来扔到redis(或memcache)中, 然后离线刷回mysq ...

  7. python 数据、曲线平滑处理——基于Numpy.convolve实现滑动平均滤波——详解

    文章目录 1 基于Numpy.convolve实现滑动平均滤波 1.1 滑动平均概念 1.2 滑动平均的数学原理 1.3 语法 1.4 滑动平均滤波示例 2 曲线平滑处理--Savitzky-Gola ...

  8. R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置、置信区间、坐标轴(刻度、标签、范围)、无效线去除、水平线、辅助线、box形状、色彩等

    R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置.置信区间.坐标轴(刻度.标签.范围).无效线去除.水平线.辅助线.box形状.色彩等 目录

  9. 基于Kubernetes构建Docker集群管理详解

    from: 基于Kubernetes构建Docker集群管理详解 Kubernetes是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动 ...

最新文章

  1. opencv配置(转)
  2. 方框(HPU暑期第四次积分赛)
  3. 《移动项目实践》实验报告——Android Studio环境搭建
  4. C语言实现Graph图的算法(附完整源码)
  5. gridview添加header
  6. 一天开8次会议,是什么体验
  7. 卷积神经网络中的权值共享
  8. 指针变量使用规则实例
  9. python实战项目分析2—物流
  10. 基于android个人记账本的软件设计,基于Android的个人记账软件的设计与实现-开题报告...
  11. 数据分析的常用工具有哪些
  12. case 书写的要求与思路
  13. awesome-python(python集合框架)
  14. [独立游戏][纳税]个人独立游戏缴税纳税相关问题
  15. java中eof错误是啥意思_EOFException异常详解
  16. 更新Win10版本后,wifi图标不见了,并且连接不到wifi和宽带,以及点击网络和Internet闪退的情况
  17. java实现每天定时执行任务,Spring Task定时任务每天零点执行一次的操作
  18. 【perl计算基因在基因组上的距离】
  19. 看大牌厂商PK——2010 ARM研讨会见闻
  20. 5月已更新PS2021m1直装版!Photoshop2021 Mac真正完美适配M1芯片!完美解决2019黑屏闪退卡启动界面等所有问题!

热门文章

  1. 高德地图之设置中心位置
  2. Windows下在GoldenDict中添加谷歌翻译
  3. poj3208 Apocalypse Someday (数位dp + 二分)
  4. EOS Max游戏玩法攻略——GoDapp
  5. 糯米团—重制“iPhone团购信息客户端”(四)
  6. 入侵雅虎的黑客竟然如此高调
  7. 2014年考研英语二真题
  8. vue 项目输入框中 用 oninput
  9. NoteExpress使用记录
  10. 谁有C语言的教学视频