单片机常用电路3-按键检测、LED驱动电路
在单片机入门学习中,最简单、最常见的两种入门元器件大概就是按键和LED了,围绕按键和LED可以基本上把单片机的功能学很多,例如按键可以用来学习单片机的端口输入功能、端口外部中断功能、定时/计数器的计数功能等等;而LED可以用来学习单片机的端口输出功能,定时/计数器的定时功能、PWM功能,位操作功能,电压比较器功能,以及单片机多种操作控制、流程指示等功能。
现在我们就来简单了解一下按键检测和LED驱动电路。
1、按键检测电路
图1是按键检测电路。该电路图包含两种电路:
图1 按键检测电路
一种是连接按键的单片机端口在按键未按下时,处于低电平状态,当按键按下后,单片机端口变为高电平,也就是说,当单片机端口检测到端口电平由低电平变为高电平后,可以判断为按键按下。
另一种是连接按键的单片机端口在按键未按下时,处于高电平状态,当按键按下后,单片机端口变为低电平,也就是说,当单片机端口检测到端口电平由高电平变为低电平后,可以判断为按键按下。
这种按键检测电路的缺点是没有防抖动功能,所以要实现消抖功能,必须通过单片机软件编程实现。
另外,电路中的电阻的作用是为了保护端口,避免电源直接连到单片机端口导致的烧毁端口情况发生。
2、带消抖功能的按键检测电路
图2是带消抖功能的按键检测电路,同样的,带消抖功能的按键检测电路也分为按键平时处于高电平还是低电平两种。我们以按键未按下时处于高电平,按下后处于低电平为例来了解一下电路原理。
图2 硬件消抖电路
当按键断开时,电源电压通过电阻对电容充电,电容上的电压与电源电压相等,当按键按下时,由于按键内阻很小,电容通过按键迅速放电,按键两端电压迅速降到接近0V,单片机输入端为低电平,在按键按下时,由于抖动导致按键会短时断开,电源电压经电阻对电容充电,由于电阻的阻值较大,短时间内电容充电量很少,所以电容两端电压基本不变,单片机输入端的电平也基本保持不变,从而保证了按键抖动时仍可以使单片机输入端保持稳定的低电平信号。
这种硬件消抖电路需要根据实际情况选择R和C的值,具体请参考我在头条里的文章《基于proteus的51单片机开发实例(7)--按键的检测》。
3、简单的LED驱动电路
图3是一种简单的LED驱动电路。这两个电路一个是LED发光时,电流经过LED流到单片机端口,俗称“灌电流”驱动LED,另一种是LED发光时,电流经过单片机端口流到地,俗称“拉电流”驱动LED。
图3 LED驱动电路
这种电路的缺点是:单片机的驱动能力有限,一般单片机端口驱动电流能力在10mA以下,并且单片机总的驱动电流一般不超过100mA。所以当单片机电路中电路模块较多时,可能会导致驱动能力不足,因此这种方式只适合在学习和实验时,不适合用在单片机产品中。
4、通用LED驱动电路
图4,图5是常用的LED驱动电路。在这两个电路中,单片机端口实际上相当于开关的功能,当单片机输出高(或者低)电平时,LED点亮(或者熄灭);当单片机输出低(或者高)电平时,LED熄灭(或者点亮),驱动LED发光所需的电流由三极管提供,单片机端口只负责控制三极管的导通或者截止就可以了。
图4 LED驱动电路1
图5 LED驱动电路2
5、LED驱动芯片
现在有很多专用的LED驱动芯片,可以直接驱动多路LED,至于LED驱动芯片的电路,每种芯片有各自特点,这里就不多说了。
单片机驱动继电器
之前说过,单片机的拉电流和灌电流有限,即输出驱动能力有限,要驱动继电器这类大功率的器件该怎么办呢,答案很简单:用三极管。器件参数该如何确定呢?
手上有一个HFD23的5V继电器,下面看一下其参数。
可以看出:
线圈的电阻为125Ω;
线圈的功率为200mW;
继电器的额定电压为5V;
由此可以计算出继电器的吸合电流,两种计算方式:
I=0.2mW/5V=40mA;
I=5V/125Ω=40mA;
下面看三极管的参数:
参数解释如下:PCM是集电极最大允许耗散功率;
ICM是集电极最大允许电流;
BV(CEO)是三极管基极开路时,集电极-发射极反向击穿电压;
fT是特征频率;
hFE是放大倍数;
为了保证电路的稳定性,要求:
三极管的PCM功率至少是继电器额定功率的两倍,PCM≥0.4W;
三极管的ICM电流至少是继电器吸合电流的两倍,ICM≥80mA;
三极管的BV耐压至少是继电器额定电压的两倍,BV≥10V;
由此可以看出这四款三极管都能满足需求,为了稳定性考虑,我们选用NPN的S8050。控制电路图如下所示:
思考:在实际应用中,上图会不会存在问题?
由于继电器的线圈是感性器件,变化的电流通过线圈时线圈会产生自感电动势,根据法拉第定律,自感电动势的大小与通过线圈的电流变化率(线圈内磁通变化率)成正比。所以当断开电源瞬间电流变化率很大,线圈将产生高于电源电压数倍的自感电动势,并与电源电压叠加,该电压可能造成三极管极被击穿,从而造成电路崩溃。
解决方案
为了消除这个感生电动势的有害影响,在继电器线圈两端反向并联抑制二极管,以吸收该电动势。自感电压与电源电压之和对二极管来说却是正向偏压,使二极管导通形成环流。感应的高电压就会通过回路释放掉,保证了三极管的安全。这个二极管也叫作续流二极管。正确电路图如下所示:
获取更多电子设计知识,请关注微信公众号:micropoint8 ;QQ群: 143586739
相关问答
如何提高 单片机 的 驱动能力 ?如果用NPN的管子的话建议在单片机IO上加上拉电阻,或者干脆改成PNP的管子,比如9012或者8550,如果电机电流很大,就要用大功率的管子.上拉电阻就是一头接电源一...
单片机驱动能力 如何提高?最好是电路图。89c52芯片的?单片机是弱电控制中心单片机只是一个控制中心,IO的驱动能力是很弱的,只能用于信号处理或者信号控制,最多是驱动一个LED作为指示灯。驱动负载需要加入三极管、...
51 单片机驱动 电机原理?工作原理:1.开环步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。2.工作状态非超载时,电机转速、转过的角度取决于脉冲信号的频率和脉冲数...
51 单片机 可以 驱动 16路舵机么?可以。1.51单片机可以驱动多路舵机,包括16路,通过编写程序和使用PWM技术,可以控制舵机的角度和速度,使其按照预定程序运动。2.驱动16路舵机需要一定的计算...
单片机驱动 交流接触器的方法[回答]在各种自动控制设备中,都存在一个低压的自动控制电路与高压电气电路的互相连接问题,一方面要使低压的电子电路的控制信号能够控制高压电气电路的执...
51 单片机 怎么 驱动 摄像头?51单片机内部RAM比较小,IO口传输速度比较低,因此要驱动外设摄像头的话,必须用大容量缓存,即用带FIFO的摄像头模块,FIFO可以高速缓存一帧图像,然后在单片机...
51 单片机 按钮 驱动 试验程序中,void main(){P1|=0xE0;...} 他...单片机复位后P0=0xff;P1|=0xE0;等价于P1=P1|0xE0表示P0的低5位保持原来不变,其余都置高电平单片机上电时,P1口一般是0xffswitch(temp){temp=P...
51 单片机 电机 驱动 用哪个脚?不知道你想驱动什么类型的电机?需要注意的是,单片机引脚不具备直接驱动各种类型电机的电流能力,都需要外接继电器或者是开关管,至于使用哪个引脚无关紧要,只...
linux驱动开发和 单片机驱动 的区别?.lonux驱动开发和单片机驱动开发的区别塞以下几点?ARM-Linux应用开发和单片机lonux:这里先要做一个说明,对于ARM的应用开发主要有两种方式:一种是直接在ARM...
单片机驱动 12v直流电机2.5W用什么型号的三极管好?2.5W的电机,12V,电机工作电流是2.5/12=0.208A,那么,按照电路设计安全法则,你的三极管要至少应该要用额定电流400mA以上的,所以,你们只要用300mA以上额定...2...