数字量输入输出与抗干扰设计技术 -

更新时间:2023-04-09 02:23:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

--

可控硅型光耦

还有一种光耦是可控硅型光耦。例如:MOC3063、IL420;它们的主要指标是负载能力;例如:MOC3063的负载能力是100mA;IL420是300mA;

MOC3020、MOC3021、MOC3023、MOC3030可控硅驱动输出。

MOC3040、MOC3041、MOC3061、MOC3081过零触发可控硅输出双向可控硅过零电压触发驱动电路(MOC3040应用电路)

双向可控硅过零电压触发驱动电路(MOC3040应用电路)

这种器件是一种单片机输出与双向可控硅之间较理想的接口器件。它由输入和输出两部分组成,输入部分是一砷化镓发光二极管。该二极管在5~15mA正向电流作用下发出足够强度的红外线,触发输出部分。输出部分是一硅光敏双向可控硅,在紫外线的作用下可双向导通。该器件为六引脚双列直插式封装,其引脚配置和内部结构见下图:

有的型号的光耦合双向开关可控硅驱动器还带有过零检测器。以保证电压为零(接近于零)时才可触发可控硅导通。如MOC3030/31/32(用于115V交流),MOC3040/41(用于220V交流)。

下图是过零电压触发双向可控硅驱动器MOC3040系列的典型应用电路。

--

--

【例2】用过零触发可控硅控制交流灯泡【CAP11-双向可控硅-交流】

开关按下时,过零时灯亮;松开时,过零时熄灭。

【例3】用过零触发可控硅控制直流灯泡【通过CAP11-双向可控硅-直流】

【可以看出,开关按下时,灯亮;松开时,灯仍然亮,因为是直流电源,没有过零。】

TLP521-1 单光耦、TLP521-2 双光耦、TLP521-4 四光耦、TLP621 四光耦

--

--

TIL113 达林顿输出

TIL117 TTL逻辑输出

PC814 单光耦

PC817 单光耦

H11A2 晶体管输出

H11D1 高压晶体管输出

H11G2 电阻达林顿输

*过零触发含义是在零电压和零电流状态下导通可控硅,可以承受大的电流,同时触发完后免除了电流和电压的冲击,对可控硅的使用寿命有很好的保护作用

2.2 线性光耦的选取原则

在设计光耦反馈式开关电源时,必须正确选择光耦的型号及参数,选取原则如下:

(1)光耦的电流传输比(CTR)的允许的范围是50%~200%,这是因为当CTR<50%时,光耦中的LED就需要较大的工作电流(IF>5.0mA),才能正常控制单片机开关电源IC的占空比,这会增大光耦的功耗。若CTR>200%,在启动电路或者当负载发生变化时,有可能将单片开关电源误触发,影响正常输出。

(1)在控制系统与智能仪器中,被测物理量多为模拟量,而计算机只能接收数字量。

(2)在检测/控制系统中,必须先把传感器输出的模拟量转换成数字量,才能送到单片机进行数据处理,实现控制或显示。

(3)能够把模拟量转换为数字量的器件称为模/数转换器(简称A/D转换器)。(4)经单片机处理后的以数字量输出。

(5)大多数执行机构只能接收模拟量(如电动执行机构、气动执行机构及直流

--

--

电机等)。所以必须把数字量变成模拟量,即完成数.模转换(简称D/A转换)。可见:A/D、D/A转换是单片机接收、处理、控制模拟量参数过程中必不可少的环节。

它们的使用方法是一致的,唯一的区别就是2803可以驱动8位管脚,2003只有7个管脚,COM脚的作用是当使用ULN2803(2003)来驱动继电器时,可以将COM脚接到继电器的VCC端,利用ULN2803(2003)内部的反向二极管作保护继电器,消除继电器闭合时产生的感应电压。

COM端主要有两种用途:

(可悬空) 1 试验用----接地:假如它的输出端都接发光二极管,那么,只要将COM端接地,则所有的发光二极管都将亮起,否则,可能是二极管坏或其它什么地方坏了。这对检修是很有利的。

2 保护用----接电源正:假如这个器件是接继电器或针式打印头,因为电感的作用,会在开关过程中产生低于地电位和高于电源电位的反电动势,这样,很容易击穿器件。A-为了防止这种现象的发生,可将COM端接到电源正,来削减冲击电压低到二极管压降加电源电压的幅度----可以使得内部的三极管受到最小的正电压冲击。B-至于达林顿关断时产生的负电压我们不必管,因为器件内部就有二极管并接到地的(见图2)----专门用来削减冲击电压至电源地减去一个二极管正向压降----可以使得内部的三极管受到最小的反偏电压冲击。

3 阅读提示:A-类似这样的保护方法,在许多器件(如AD7710)的输入端或输出端都是有的,请留意。B-以上两种用法并不是矛盾的,通过适当的电路控制,可以一并利用它的功能。它的内部结构也是达林顿的,专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线圈反电动势的二极管。

ULN2003的输出端允许通过IC 电流200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。

ULN2803的驱动负载电流为500mA,驱动电压50V。

3. 达林顿驱动电路【在Proteus中,选“Analog ICs”,有ULN2003、ULN2803】

ULN2003和ULN2803都是集电极开路输出。ULN2000和ULN2800系列是高压大电流达林顿晶体管阵列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于伺服电机、步进电机、各种电磁阀、泵等驱动电压高且功率较大的系统。

--

--

--

PMOS 、

CMOS

14~25V PMOS 输入

ULN2002 ULN2012 ULN2022 ULN2802 ULN2812 ULN2822 5V TTL 、CMOS

ULN2003 ULN2013 ULN2023 ULN2803 ULN2813 ULN2823 5~15V

PMOS 、 CMOS 输入

ULN2004 ULN2014 ULN2024 ULN2804 ULN2814 ULN2824 高输出TTL 接口

ULN2005 ULN2015 ULN2025 ULN2805 ULN2815 ULN2825 ULN2000系列能够同时驱动7组高压大电流负载,ULN2800系列则能够同时驱动8组高压大电流负载。

其中:1B~7B 为输入,1C ~7C 为输出;1B ~8B 为输入、1C ~8C 为输出。对ULN2000系列的引脚9接电源;对ULN2800系列的引脚10接电源;

【注意:输出和输入为反向】

--

【例题】用74LS07、74LS245、ULN2003、ULN2823来驱动LED显示

#include 【CAP11-4bit_ULN2003已通过】

unsigned char code ledmod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,

0x7d,0x07,0x7f,0x6f}; //共阴方式段码

void Delay(unsigned int count)

{ unsigned char i;

while(count--)

for(i=0;i<120;i++);

}

void disp4_cathod(unsigned int x4) //共阴方式,公共端接低电平时显示{ unsigned char pos=0x01; // 因为ULN2003为反相输出;~(0x01)=0xFE P2 =pos;

P0 =ledmod[x4%10]; // ledmod[9]; //个位

Delay(4);

pos=(pos<<1); //左移,最低位补0

P2 =pos;

P0 =ledmod[(x4/10)%10]; // ledmod[8]; //十位

Delay(4);

pos=(pos<<1);

P2 =pos;

P0 =ledmod[(x4/100)%10]; // ledmod[4]; //百位

Delay(4);

pos=(pos<<1);

P2 = pos;

P0 = ledmod[x4/1000]; //ledmod[5]; //千位

--

--

Delay(4);

}

void disp4_annode(x4) //共阳方式,公共端接高电平时显示

{ unsigned char pos2=0xfe; //~(oxFE)=0x01;

P3 =pos2;

P1 = ~ledmod[x4%10]; //个位

Delay(4);

pos2=(pos2<<1) |0x01; //左移,最低位补0,再或1,保持只有一位为0 P3 =pos2; // 经过ULN2803后,只有一位为1

P1 = ~ledmod[x4/10%10]; //十位

Delay(4);

pos2=(pos2<<1) |0x01;

P3 =pos2;

P1 = ~ledmod[x4/100%10]; //百位

Delay(4);

pos2=(pos2<<1) |0x01;

P3 = pos2;

P1 = ~ledmod[x4/1000]; //千位

Delay(4);

}

void main()

{ unsigned int x;

x=3659;

while(1)

{ disp4_cathod(x);

disp4_annode(x);

}

}

【教材P192的智能仪器】

--

--

74LS04(非门),输出高电平时的电流为400uA,输出低电平时的电流为8mA。

【教材上用74LS04来驱动六位LED是不合适的,可以换ULN2303】

--

--

电机模型在“Electromechanical”中,选择“MOTOR-STEPPER”

#include

#include

sbit p10=P1^0;

sbit p11=P1^1;

sbit p12=P1^2;

#define UP 20

#define DOWN 30

#define STOP 40

void delay() //延时程序

--

--

{

unsigned i,j,k;

for(i=0;i<0x02;i++)

for(j=0;j<0x02;j++)

for(k=0;k<0xff;k++);

}

main() //主函数

{

unsigned char temp;

while(1)

{

if(p10==0)

{ temp=UP; //控制正转

P2=0X00; //停止

delay();

}

if(p11==0)

{

temp=DOWN; //控制反转

P2=0X00; //停止

delay();

}

if(p12==0)

{

temp=STOP; //控制停止

P2=0x00;

}

switch(temp)

{

case DOWN : P2=0X01; //控制反转 //0011

delay();

delay();

P2=0X02; //0110

delay();

delay();

P2=0X04; //1100

delay();

delay();

P2=0X08 ;//1001

delay();

delay();

break;

case UP : P2=0X08; //控制正转

--

--

delay();

delay();

P2=0X04;

delay();

delay();

P2=0X02;

delay();

delay();

P2=0X01;

delay();

delay();

break;

case STOP : P2=0X00; //控制停止

delay();

delay();

break;

}

}

}

【教材P179例题】

(1)稳压管在“Diode”中,稳压管“BZX284C3V0”,稳压范围2.94~3.06V;

(2)变压器在“Inductors”中选择;

(3)灯泡用“LAMP”选择;

(4)可控硅在“Switching Device”中;

(5)交流220V在“Alternator”中。具体的设置如下:

Amplitude为幅度,Frequency为频率。

Proteus变压器参数的设置

选“P”进入元件选择界面,在“Inductors”(电感)中,选“Transformors”,右边出现变压器器件列表,选择“TRAN-2P2S”后,点“OK”,这个是理想变压器的模型。

--

--

在“Inductor”(电感)下的“Transformers”下,目前最高版本7.8下共有以下7个变压器:

TRAN-1P2S

TRAN-2P2S

TRAN-2P3S

TRAN-2P5S

TRSAT2P2S

TRSAT2P2S2B

TRSAT2P3S

分别为单输出、有公共端的双输出和无公共端的双输出几种,你只要输入“TRAN-”就可以看到它们了。

【注意:变压器的左边为源边,右边为副边】

连线完成后,在电路中,双击信号源,出现设置对话框,可以设置幅度和频率值及相位等属性。

【理想变压器的两线圈的电感之比,是等于其匝数平方之比】

--

--

-- 再双击变压器,出现元件属性设置对话框,有原边和副边的电感电阻、耦合系数等值,根据理想变压器原副边匝数比公式

1/2

N L L ,设置原副边电感值,这里设置为5:1。

--

--

本文来源:https://www.bwwdw.com/article/lswl.html

Top