序
一般来说,我们在开发各种单片机外围电路时,总会遇到两个问题:
- 单片机供电电压一般为3.3V,虽然STM32管脚可容忍5V电压超过5V电压,单片机无能为力。
- 就以典型的STM32F10x为例,I/O引脚电路max为±25MA,以下为ST官方说明:
这个电流驱动一个LED都有点难,想驱动别的,比如数码管,或者继电器等等。
小电流驱动大电流的方法
小功率LED驱动
一般来说,单片机使用LED都会将LED阴极连接到单片机的引脚,然后阳极连接VCC。 但也有一个问题,VCC电流一般比较大,几百MA,小二极管的电流消耗不多,最多几十个MA,所以。。。 我们需要阳极和二极管VCC在大电流引起的二极管烧毁之间增加限流电阻。
限流电阻值
我们知道LED是一个非线性元件,但是在这个电路中,我们可以简化的看成一个接近2V的二极管。不同颜色的LED稳压值不同,但都在2V左右。通常我们按2V计算值;工作电流一般为0-25mA在此范围内,最大工作电流取决于其温度特性。如果工作环境恶劣,最大电流可能只有8mA左右。当最大电压时,这个电流是工作电流。我们通常在设计时取2mA到3mA左右即可。无论电流有多大,亮度变化都不明显。这样,我们就有了计算公式: 直流5工作V电阻结果为1k~1.5k左右,我们拿1k。
限流电阻功率和封装
通过上述计算的电阻值和电流值,我们可以计算最大功耗。由于电阻上的功耗是热量,交流可以根据有效值计算。 对于5V系统,电阻消耗:3V*3V/1k=9mW,考虑稳定性和容差取两倍功耗电阻,即>18mW;
大功率继电器驱动
首先,我不得不谈谈继电器的结构。简而言之,继电器的控制端是一个电磁线圈。通电后,线圈变成电磁铁,吸附触电铁片,导致受控端。
== 所以,我们把LED继电器的驱动电路可以使用驱动电路吗? ==
当然不是。首先,单片机IO驱动能力有限。对于单片机来说,继电器和电磁阀的负载已经属于非常大功率的负载,已经超过了大多数单片机IO驱动能力。第二,继电器的控制端是一个电磁线圈,可以简化为电感,关闭时会产生自感电压,容易烧坏单片机。
因此,我们需要一种间接的方式来驱动他。
然而,关于间接驱动,我们只想做两个要求。首先,我们将IO放大口的电流,驱动电磁线圈。第二,屏蔽或过滤线圈产生的自感电压。
电流放大
了解要求,很容易找到解决方案,学过模电的学生都知道一条电路:
普通共射极放大电路 当然,直接共射极放大电路远远不能驱动继电器。我们必须让他改变,以满足我们的使用要求。 第一点,C1和C这两个电容器肯定不存在于电路中,因为电容器的特点是隔离交通。如果存在,我们很难说IO电平信号传输到三极管,三极管的控制信号难以传输到继电器。 第二,为了增加电路的放大倍数,然后去除发射极电阻R1,但是,IO电平不能让它处于浮空不确定状态,因此需要保留R2,使基极电平处于接地状态。 第三,为了限制基极的电流,我们需要在基极上添加限流电阻(如果没有此电阻,输入电压超过0.6~0.7V,二极管处于导通状态,基极将会有很大的电流通过) 第四,为了降低功耗,我们必须把它放在一边Re去掉电阻。 这种电路是一种很好的大电流驱动器。 当Input三极管基极在没有输入电平信号或低电平信号的情况下,无电流通过,此时处于截止状态,VCC电流达到集电极截止日期,整个电路断路。 当Input输入高电平时(大于最低导通电压,根据三极管型号确定),三极管基极有电流,三极管导通,VCC电流从集电极流入后,从发射极流出接地,整个电路通路。
当然,在这样做之后,我们驱动一般负载,如蜂鸣器和大功率LED什么可以,如果要驱动继电器,还是差不多。
屏蔽自感电压
一般来说,屏蔽自感电压只需要一个小的二极管就可以反向续流,抑制浪涌。
这是最终原理图。 R限流电阻一般为2-5K,R2下拉电阻值为10K,二极管可选1N三极管一般选用4148VCBO≈VCEO≥24V,放大倍数β一般选择在120~240之间,推荐8050,继电器淘宝搜索5V继电器继电器。