打印

请各位帮我看看数码管亮度不均匀的问题,老板在催,急死人了

[复制链接]
楼主: hjm1943
手机看帖
扫描二维码
随时随地手机跟帖
21
hjm1943|  楼主 | 2008-8-14 14:00 | 只看该作者 回帖奖励 |倒序浏览

19楼,请问怎样设计才算合理呢?

使用特权

评论回复
22
hjm1943|  楼主 | 2008-8-14 14:01 | 只看该作者

20楼,可否将你的原理图给我分享一下?

使用特权

评论回复
23
maaaaa| | 2008-8-14 14:59 | 只看该作者

改一下设计思路

1.不加限流电阻这样肯定要问题.(偶还真见过5V单片机控制LED不加电阻的产品,汗,也不知能工作多久)

LZ的数码管是27*7,如果用1/27那么肯定保证不了亮度,这有点难为数码管了.
另外一种思路就是改用1/7,段当位,位当段,会有一定效果.如果用单片机肯定可以只不过程序不是一般的麻烦.
具体思路:

需要亮的A一起亮,接着是B,C.......

不是常规的一位的ABCDEFG一起亮,接着下一位.

至于LZ说的有直接的LED驱动,不知到能不能这样改.

最后说一句限流电阻还是要加的.

使用特权

评论回复
24
zusen| | 2008-8-14 17:00 | 只看该作者

我都服了,你们把问题复杂化了

本身是楼主的电路硬件设计有问题,,,你们还要带入软件来说

把问题说得无比的复杂

楼主在240和LED之间加限流电阻就解决问题了

我经常用4094驱动数码管,难道240比4094驱动更弱???

使用特权

评论回复
25
hjm1943|  楼主 | 2008-8-14 17:22 | 只看该作者

谢谢23楼的

谢谢你的解答,不过ms我用的这个mcu好像不行
即使行的话程序也是超级复杂吧

使用特权

评论回复
26
hjm1943|  楼主 | 2008-8-14 17:24 | 只看该作者

请问24楼的

我现在没加限流电阻都很暗,再加限流电阻不是更暗?
当然这只是我的想当然,我没有试过,过两天试一下,谢谢

使用特权

评论回复
27
zusen| | 2008-8-14 19:56 | 只看该作者

回楼主

“我现在没加限流电阻都很暗,再加限流电阻不是更暗?”

5V直接供给LED电流太大了,240驱动不了
所以你的段数越多,就会越暗

一般LED在3V就正常工作了,5V已经超电压了,

如果8段都供5V,加起来电流已超出了240的驱动

加电阻,是让段工作在正常电压

使用特权

评论回复
28
NE5532| | 2008-8-14 20:32 | 只看该作者

请开除贵公司硬件设计师

电阻在哪里?

使用特权

评论回复
29
太阳之母| | 2008-8-14 20:45 | 只看该作者

嘿嘿

基本上是一个失败的设计。
原因分析:想当然。一看做的项目里面有LED,大量的LED,立即想当然的要用有所谓“LED驱动”的单片机。可实际上所谓的LED驱动,指的是可以以静态方式驱动个把两个发光二极管而已,说穿了就是端口能提供比较的大拉或灌电流,与LZ这里如此多的LED基本不搭界。
可能的结果:1、可以做到亮度均匀,显示1和显示8的亮度可以做到一样。比段加限流电阻就行了。
            2、1/27太委屈了。亮度肯定高不了,蒙一蒙老板的办法就是加大LED的工作电流(用三极管阵列驱动吧,比如ULN2803),当然了肯定要换高亮度的LED了,结果是亮度可以上去一些,但LED的寿命,呵呵,估计就短了。
            3、适当加大电流,用高亮LED,室内光线条件差点,肯定还是能用的,LZ也不用害怕。
            4、如果允许改变设计,LZ还是换个MCU吧,简单的51就可以了,32个IO大致分配一下:27个数码管(其中一个是冒号冒充的)分成9组,每组3个数码管合计21个笔段,这21个笔段同时驱动,占空比可以做到1/9了。这样需要的IO数量是9+21=30个,还有两个用来调节时间吧(有点少,呵呵,不过还是能很友好的实现时间调节,看LZ软件发挥了)。当然了IO到LED的驱动肯定要换三极管或者三极管阵列了。


使用特权

评论回复
30
hjm1943|  楼主 | 2008-8-15 09:07 | 只看该作者

29楼的,硬件原理图也是我画的

55555555555555
电阻是有的,只是考虑到不够亮,所以就直接没有接。

使用特权

评论回复
31
hjm1943|  楼主 | 2008-8-15 09:13 | 只看该作者

谢谢30楼非常详细耐心的解答

其实我们一直都是在用这个mcu,便宜嘛,还有就是功耗很小(uA级别
,因为不接外部电源的时候需要电池供电,功耗很重要)
要临时换mcu可能比较困难,即使可以换,51的单片机是学过但是还没做过产品
不太熟悉,可能需要的时间会很长,还有就是现在用的这个mcu测温湿度很方便,虽然精度不高。看来只能换三极管阵列驱动了。

使用特权

评论回复
32
程序匠八| | 2008-8-15 09:57 | 只看该作者

这么多LED功耗会低?

使用特权

评论回复
33
seeokok| | 2008-8-15 13:01 | 只看该作者

解决的办法

    主要问题是占空比,第二位的问题是驱动能力和限流电阻。
    不知LZ是否理解了占空比?因为你要扫描,一个数码管的正常亮度分给了27个数码管,所以亮度只有只有正常亮度的1/27。提高电流也没用,电流达到了一定的程度,亮度是不会增加的。
    解决的办法,我想到了2个。
    一个是增加锁存器,简单点每位数码管加一个8位锁存器,用位选控制锁存,占空比1/1,绝对够亮,程序不用改。复杂一点,几位数码管共用一个8位锁存器,比如4位,占空比就是1/4,增加一个锁存控制,位控制稍复杂一点。
    另一个办法就是23楼的办法,这是个好办法,占空比为1/8,但必须增强驱动能力,算每段10mA, 驱动能力要达到270mA,每个位的每个段上必须加限流电阻,软件应该不难,不必换cpu。说一下我想到的软件实现方法:建立一个27字节的数组,将27位数码管的译码对应放在数组里。用一个8次的循环,扫描数组每个字节的每个位,相同位为1的输出对应的位选和码段。例如第一遍循环输出码段A,扫描每个字节的d0, 为1的输出位选。

使用特权

评论回复
34
icecut| | 2008-8-15 14:17 | 只看该作者

富晶MCU???

注意驱动led和lcd的区别啊.哈哈.静态驱动可以转换成led控制.因为不用刷数.否则带占空比那很不爽的.当然不接电阻寿命短.

使用特权

评论回复
35
农民讲习所| | 2008-8-15 14:20 | 只看该作者

换74F系列,驱动能力强很多

使用特权

评论回复
36
McuPlayer| | 2008-8-15 14:50 | 只看该作者

还是徐公子说到点上了

楼主这个方案占空比有1/27啊,在软件是基本是没有法子的
1、三极管或MOSFET扩流
2、用现成的驱动模块
3、用锁存器改成静态驱动

使用特权

评论回复
37
jeams| | 2008-8-15 14:57 | 只看该作者

支持23楼,34楼的说法

支持23楼,34楼的说法
用COM来扫描,SEG给DATA,然后在SEG上加限流电阻,COM上不要,这样会比较均匀,87P08的LED功能跟其他的基本一样,只做OUTPUT用

使用特权

评论回复
38
hjm1943|  楼主 | 2008-8-15 15:31 | 只看该作者

单片机用的是十速的tm87p08,不是富晶

谢谢大家热情的解答
1 用锁存器改成静态驱动ms成本太高
2 38楼说COM来扫描,SEG给DATA。好是好不过com口跟seg是固定的不能改
3 34楼提到的第二种方法是好,但是这个单片机我好像没办法控制每一个com和 seg是输出高电平还是低电平(看波形图是这样,不知道是不是我的理解错误)

使用特权

评论回复
39
NE5532| | 2008-8-15 20:09 | 只看该作者

不够亮是因为你的公共端没有用驱动。

使用特权

评论回复
40
chengwh| | 2008-8-16 09:17 | 只看该作者

23楼的段、位颠倒法我觉得应当是可行的

不知楼主为何不用单片机直接驱动数码管,而用这么多74HC20,难道单片机的io口驱动能力不够用?
把你的单片机的datasheet放上来,帮你参谋参谋。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则