光耦在单片机系统中的应用
光电耦合器亦称光电隔离器,简称光耦或光隔。其输入为发光器,多为红外LED,输出为受光器,为各种类型的光敏半导体及集成半导体元件。输入与输出之间以光为媒介来传输电信号,输入级与输出级只有光路联系没有电路连接,即输入与输出之间是高度绝缘的,有几干伏的隔离能力;又因光是单向传播的,使光耦也单向传输信号,干扰无法反向传导而产生影响。
当我们使用光耦作为输入信号接口时,主要是使用其高压隔离能力和电气回路隔断能力,可避免输入端引入的异常高压损坏单片机及其它核心器件,消除了环路干扰串入单片机系统;因输入级的红外LED,本质上是电流型器件,有相对较大的电流才会发光,有抵抗较小干扰的能力。对于较强的干扰电压,仍会和有用信号一起通过光路耦合到输出级,进而干扰单片机的工作,因此用光耦作为输入接口时,并非万事大吉,也要采取一些抗干扰措施。
当使用光耦作为输出接口时,这时才真正发挥了它的优势。其几千伏的隔离能力,使常见的高压电损伤不到核心器件,至多也就把光耦输出级干坏;光耦单向传输信号的特性,作为输出口使用就特别重要了,光耦输出级连接的外围电路,电路上无论产生何种性质与大小的干扰,都无法通过光耦串扰到单片机,这时的光耦才是真正的抗干扰器件。
光耦作为输入口接收开关量输入信号,作为输出口输出驱动信号,开关侧和驱动侧都要使用独立的电源或经隔离的电源,如和单片机系统使用统一的电源,光耦将失去隔开电气联系和抗干扰的作用,就只能称电平转换器了。
1.双向光耦的应用
单片机用于工业现场时,为切断与现场输入回路的电气联系,隔断可能引入的有害高压,以应对现场干扰,单片机开关量输入口要经光耦的有效隔离才能可靠地工作。现场的开关量既有干接点,也有无触点有源开关量,为了兼容NPN和PNP型有源开关量,且减少单片机系统对外引出端子,常采用如图一和图二所示的双向光耦(也称交流光耦),与普通光耦不同的是,它的输入级是两个反并联的红外LED,输入端不分正负极,这使外部开关的接线非常灵活方便,图一和图二为两种不同的连接方式,只要对调一下电源的极性,就可适应不同性质的有源开关量。
图一 双向光耦连接1
图二 双向光耦连接2
交流型光耦的输入级一般有几十皮法的结电容,在输入级并联合适电阻可以提高开关速度,改善输入波形;在光耦输出级,还配有滤波电路,可滤除通过电光电耦合过来的残余共模尖峰。
2.达林顿管光耦的应用
达林顿型光耦主要用于单片机控制器的数字量输出口,使被控对象与控制器之间无电气联系,不会通过电路引入干扰;光耦单向传递信号,阻隔了后向通道的反串干扰;光耦有几千伏的电压隔离能力,输出口出现的异常高压不会损坏控制器核心部件。达林顿光耦有50~150mA的驱动能力,集射极之间的耐压一般都大于30VDC,可以直接驱动常用的继电器。如图三所示,继电器线圈使用独立的DC24V电源,与控制器使用的DC5V、3.3V 电源无直接电气连接,经光耦和继电器的双重隔离,电机产生的电磁干扰就不会影响单片机正常工作。
图三 达林顿管光耦
3.光电晶闸管输出型光耦
当用单片机控制交流强电负载时,通常采用的方法是用单片机控制板载直流继电器,再用继电器触点控制交流负载,而交流负载往往是感性负载,当对其进行投切操作时,电感负载上电流的突然中断,电感储存的能量将消耗在触点火花放电中,这种放电会造成强烈的高频电磁干扰,而且直流继电器线圈突然断电也会产生浪涌干扰。因此,用板载继电器隔离强电负载并不是最优方案,比较好的方法是用晶闸管光耦进行隔离,再用光敏晶闸管触发双向可控硅,用双向可控硅对交流负载进行控制,如图四所示。
图四 光敏晶闸型光耦
在图四的双向晶闸管控制电路中,为了减小晶闸管导通时出现的高次谐波对电网的污染,防止干扰到其他用电设备,要求晶闸管在电源电压过零时触发双向晶闸管,为此,常选用带过零检测的光电双向晶闸管输出光耦,图四中的MOC3081就是带有过零探测电路的光耦,以保证在电网电压过零时触发双向可控硅BTB04A 。光耦的红外LED由单片机的P1.2口进行控制,P1.2为高电平时,在交流电零点附近触发TR导通,交流接触器KM1吸合,控制大功率设备工作;P1.2为低电平时,TR关断,KM1断开设备电源。图四中的R4是限流电阻,保证MOC3081输出电流不超出其1A的最大电流;R5是抗干扰电阻,R6和C1组成RC吸收回路,限制TR两端出现过高的电压上升率。过高的电压上升率,会使晶闸管误导通,并有可能损坏晶闸管。
4.光电三极管型通用光耦
步进电机是单片机系统常用的执行部件,利用电脉冲对旋转角度和转速进行控制,步进角度和转速受输入脉冲个数和脉冲频率控制。对中小功率步进电机,一般使用软件方式驱动,通过单片机编程输出脉冲电流来控制步进电机的步进。步进电机要求的脉冲电流比较大,通常使用达林顿管来驱动。达林顿管是复合晶体管,输入阻抗高,所需控制电流小,电流增益高,输出阻抗低,带载能力强。
步进电机各相驱动电流会进行频繁的通断切换,会造成电磁串扰,影响单片机稳定运行,要在输出控制口加入一级光电隔离,以切断步进电机驱动电路与单片机控制电路之间的电气联系,如图五所示。各绕组两端都要并联开关二极管,用于在达林顿管从导通转入截止的瞬间,吸收绕组中的反电动势能量,以免反电势击穿达林顿管及产生电磁干扰。
图五 光敏晶体管型通用光耦
5.集成电路型高速光耦
单片机与PC机之间的通信,以前都用梯形DB9插头,以RS232电平标准进行通信,而现在的笔记本电脑及很多台式机都取消了DB9插头,现在电脑普遍使用USB接口,用USB协议与外部设备交换数据。本例采用USB转串口芯片CH340G,实现单片机与PC通信。为实现高速、稳定的通信,使用高速光耦ELM611进行电气隔离,保证PC机与单片机系统之间没有直接的电气联系,消除环路干扰,减少彼此之间的相互干扰。本例使用的高速光耦具有10MBit/S的传输能力,在进行程序下载和数据交换时,可以使用1~5MHz的频率进行通信,比MAX232 芯片快了很多,图六为原理图,供参考。
图六 高速光耦
祝各位朋友虎年大吉,万事如意!
单片机控制电灯:电路原理图、程序代码
单片机控制电灯是极为简单的事情。
单片机其实就是一个微型“电脑”,它集成了CPU、RAM、ROM、I/O、定时器、中断等等功能。单片机工作需要直流电供电,一般是5V或者3.3V,而电灯需要交流220V。单片机需要通过驱动低压直流电控制交流电的器件去控制电灯的亮和灭。比如继电器或者可控硅。
单片机驱动继电器控制电灯
继电器通过触点的闭合和断开来控制电灯电源的开和关,给继电器的线圈施加直流电时,电磁铁产生磁力吸住衔铁,触点闭合,电灯通电点亮;继电器线圈断电后,电磁铁失去磁力,衔铁受弹簧力作用,触点断开,电灯熄灭。
单片机的输出口驱动能力是比较弱的,能够提供的电流最多20mA左右,也不能直接推动继电器工作,我们需要加入三极管来驱动继电器,当单片机的输出口DR设为高电平时,三极管Q1导通,继电器线圈通电,电灯点亮,当单片机的输出口DR设为低电平时,三极管Q1截止,继电器线圈断电,电灯熄灭。
有了单片机的协助,电灯的功能就很多了,除了可以定时开和定时关,还可以加入光线强弱检测,实现晚上自动开灯。
单片机驱动可控硅控制电灯
除了继电器可以控制电灯的亮和灭,还可以用双向可控硅控制电灯。继电器是机械式的开关控制,而双向可控硅是电子式的开关控制,还可以实现亮度调节。双向可控硅的导通由控制极(G)控制,我们只需要给控制极(G)提供一个脉冲的电流信号就可以触发它导通了。
我们可以通过光耦驱动双向可控硅控制电灯的亮和灭,当DR设为低电平时,光耦工作,电灯点亮,当DR设为高电平时,光耦停止工作,电灯熄灭。如果想调节电灯的亮度,还需要加入过零检测电路。
单片机控制的模拟开关灯
如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
2. 电路原理图
图4.2.1
3. 系统板上硬件连线
(1). 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块” 区域中的L1端口上;
(2). 把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上;
4. 程序设计内容
(1). 开关状态的检测过程
单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用JB BIT,REL或者是JNB BIT,REL指令来完成对开关状态的检测即可。
(2). 输出控制
如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。
5. 程序框图
图4.2.2
6. 汇编源程序 ORG 00HSTART: JB P3.0,LIGCLR P1.0SJMP STARTLIG: SETB P1.0SJMP STARTEND
7. C语言源程序#include <AT89X51.H>sbit K1=P3^0;sbit L1=P1^0;void main(void){while(1){if(K1==0){L1=0; //灯亮}else{L1=1; //灯灭}}}
相关问答
关于用 单片机控制 可控硅的导通角实现调节交流电压的问题?[回答]原理很简单,用可控硅的调光台灯电路到处都有,把上边电位器那一部分换成单片机的一个输出端,使用单片机输出PWM信号,即可得到不同的控制电压,以控制...
51 单片机 怎么 控制 可控硅?CON接51单片机IO口,低电平可控硅开通,高电平可控硅在交流电过零时自动关断。CON接51单片机IO口,低电平可控硅开通,高电平可控硅在交流电过零时自动关断。
单片机 可控硅调压?可控硅必须检测过零信号。只有零点以后触发,才会有效。而且在下一个零点到来的时候,可控硅会自动关闭。你这个程序里面只有一句P=1,没有P=0,那么这个端口一直...
空调 单片机控制 原理?空调的室内风机电机是反馈试调速电机,控制那3根线是连接单片机的,是转速信号,一般是霍尔原件,供电是连接电源,用可控硅调速。原理是这样的:电机启动后单...
防爆软启动器的小知识你了解多少?今天小编给大家讲讲关于防爆软启动器的一些相关知识,下面为大家详细介绍下它的特点、参数、优点及应用这几方面的内容。一、特点1.内部可装防爆按钮、防爆指示...
可控硅能 控制 交流电吗?可以的,用可控硅控制交流电通断是可以的,用单片机控制220v交流电通断的概念不是高电平接通低电平断开,而是产生与电源同步的脉发脉动触发可控硅,使之导通,而...
肿么用c语言 控制单片机 输出高低电平-ZOL问答这个应该不难吧,看你控制什么灯了,如果是LED就非常简单,如果是日常照明,还要加继电器等等。需要资料找我吧,我随时在线,等待回复。若单片机的晶振频率为12MHz...
单片机 如何驱动发热?利用单片机驱动发热的方法是首先,我们最好是利用继电器,其他也可以,比如MOS管,但是MOS管只能通直流电;用它可控硅也行,然后可以通交流电;电热丝两端通多少...
单片机 如何让一盏灯由亮逐渐变暗?此函数的返回值作为pwm的输入值。再做一个pwm的模拟程序,占空比(0-100)是三角波发生器的输出,pwm模拟程序控制某个端口输出1和0的占空比来控制灯的明暗。pw...
水温 控制系统 中动态误差静态误差还有怎么实现 单片机 与加热设...[最佳回答]静态误差:水温达到稳态时与设定值的误差.可以用PID控制(增量PID)——加温、制冷参数要分开调.单片机与加热器用光耦隔离驱动固态继电器或可控硅来控...