【模拟电路】ULN2003驱动共阴或共阳数码管的思考

下图截取自ULN2003规格书

1.从规格书里面给出的典型应用电路图来看,驱动led是灌电流进来。那么可不可以输出高电平给led提供电压以此来驱动led呢?参见下图,如果按照下面的方式连接电路,是否都可以成功?网上对于这个问题也是众说纷纭,我觉得ULN2003无法驱动共阴极数码管,即右边的电路图是错误的,因为ULN2003输出低电平有效。

在此要提出一个概念,集电极开路(OC)或漏极开路(OD)输出的结构
而ULN2003就是集电极开路的结构,用下图来解释集电极开路

1、对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合),得到输出为“1”。
当左端的输入为“1”时,前面的三极管导通,而后面的三极管被拉低,处于截止(相当于开关断开),此时输出悬空,为“高阻态”。

2、 我们将图1简化成图2的样子,当输入为“0”,开关接通,输出被拉低;当输入为“1”,开关断开,输出悬空,为高阻态。此时电平状态未知,如果后面接一个下拉电阻到地,即输出为“0”;若后面接一个上拉电阻到VCC,则输出为“1”。所以可以看出高阻态的状态是未知。

3、图三中的1K就是上拉电阻,如果开关闭合,则输出电平为0;若开关断开,输出电平为5V。此时输出的内阻是1K,若要接一个电阻R作为负载,则最后负载上的电压为5*R/(R+1K),所以如果想要得到的电压越大,可以通过两种方法,一种是提高R的值,或者减小上拉电阻1K的值,可以提高驱动能力。但是上拉电阻1K的值又不能太小,因为开关闭合会产生电流,不能让这个电流过大。因此关于这个上拉电阻的选择需要综合考虑。

对于漏极开路(OD)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,OC就变成了OD,原理分析是一样的。

另一种输出结构是推挽输出。推挽输出的结构就是把上面的上拉电阻也换成一个开关,当要输出高电平时,上面的开关通,下面的开关断;而要输出低电平时,则刚好相反。比起OC或者OD来说,这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话,就会产生很大的电流,有可能将输出口烧坏。而上面说的OC或OD输出则不会有这样的情况,因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时,则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态,AVR单片机的一些IO口就是这种结构。

本文通过分析ULN2003驱动数码管的知识,同时也是自己做一个梳理,对于上拉电阻,下拉电阻,集电极开路输出,漏极开路以及推挽输出也都简单的做一个记录,当作自己的学习笔记。

猜你喜欢

转载自blog.csdn.net/wsq_666/article/details/114003634