搜索
bottom↓
回复: 46

3个IO口驱动6个LED

[复制链接]
头像被屏蔽

出0入0汤圆

发表于 2009-3-25 18:23:40 | 显示全部楼层 |阅读模式
最普通的行列矩阵式驱动,可以用N+M个IO驱动N*M个LED。而这种被叫做Charlieplexing的方法可以用N个IO驱动N*(N-1)个LED。也就是说要驱动6个LED,用行列式需要5个口,而这种方法只要3个。LED也多,节省的IO越多。比方说驱动20个LED,行列式要用9个,而这种只要5个。

这么做有个前提,IO口要有三种状态:高电平输出、低电平输出、高阻输入,利用“行列分时复用”的思想,设计电路。


(原文件名:untitled3.jpg)


(原文件名:untitled4.jpg)



其实这也不是什么新的技术了,在网上,我找到了好多关于这方面的文章:
Charlieplexing - Reduced Pin-Count LED Display Multiplexing
http://www.maxim-ic.com/appnotes.cfm/appnote_number/1880
Tips ''''n Tricks 8-pin FLASH PIC Microcontrollers
http://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf

40040b.pdf:点击此处下载 ourdev_427559.pdf(文件大小:935K) (原文件名:40040b.pdf)

how to drive a lot of LEDs from a few microcontroller pins
http://www.instructables.com/id/E5COF05YF6EP287ITF/   
connect 6 leds using 3 microcontroller pins
http://www.scienceprog.com/connect-6-leds-using-3-microcontroller-pins/



以上中文资料摘自:http://www.getproject.com.cn/post/108.html

出0入0汤圆

发表于 2009-3-25 18:25:54 | 显示全部楼层
这个叫“逐点扫描”只适合点数较少的场合
它的改进型用途更广泛一点,但共同缺点是扫描占空比通常比较低

出0入0汤圆

发表于 2009-3-25 23:27:01 | 显示全部楼层

终于看到了
无机酸也弄了好多个版本了

出0入0汤圆

发表于 2009-4-3 15:45:45 | 显示全部楼层
学习

出0入0汤圆

发表于 2009-4-3 16:55:40 | 显示全部楼层
前两天有个客户哪流水灯样品来,看5个io口控制了60个led,而且看一组似乎是3个led,当时没相通怎么控制。看了这个帖子之后终于参透了。阿莫,又向你学到点东西了

出0入0汤圆

发表于 2009-4-3 19:22:11 | 显示全部楼层
GOOD!UP

出0入0汤圆

发表于 2009-4-3 23:09:20 | 显示全部楼层
好好的体会学习~~

出0入0汤圆

发表于 2009-4-4 01:44:35 | 显示全部楼层
有点像矩阵键盘!

出0入0汤圆

发表于 2009-4-6 08:42:35 | 显示全部楼层
这个LED灯能不能再增加一个半亮的状态啊?

出0入0汤圆

发表于 2009-4-9 15:33:34 | 显示全部楼层
标记下了

出0入0汤圆

发表于 2009-4-15 10:58:43 | 显示全部楼层
很好 学习一下

出0入0汤圆

发表于 2009-4-16 16:36:12 | 显示全部楼层
再次学习之

出0入0汤圆

发表于 2009-4-16 17:54:27 | 显示全部楼层
要分时扫描的。

出0入0汤圆

发表于 2009-4-16 18:00:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-7 13:54:11 | 显示全部楼层
学习。

出0入0汤圆

发表于 2011-3-30 17:24:44 | 显示全部楼层
引用图片【楼主位】armok  阿莫
-----------------------------------------------------------------------

(原文件名:untitled3.jpg)

出0入0汤圆

发表于 2011-3-30 17:42:58 | 显示全部楼层
不懂这个额,看看再说。。

出0入0汤圆

发表于 2011-6-20 17:08:09 | 显示全部楼层
这个不该置cool,armok 阿莫自己走后门了!!!!

出0入0汤圆

发表于 2011-6-21 12:33:38 | 显示全部楼层
学习,图片看不到

出0入0汤圆

发表于 2011-6-21 20:27:23 | 显示全部楼层
不错,为了方便大家,做了个简单的仿真

(原文件名:QQ截图未命名.jpg)

出0入0汤圆

发表于 2011-6-22 11:31:19 | 显示全部楼层
这个其实真的没那么深奥,就是2^3=8,去掉全0和全1的状态,就是6个状态

出0入0汤圆

发表于 2011-7-23 02:48:20 | 显示全部楼层
记下

出0入0汤圆

发表于 2011-7-23 08:12:01 | 显示全部楼层
make

出0入0汤圆

发表于 2011-8-3 16:51:00 | 显示全部楼层
vb

出0入0汤圆

发表于 2011-8-3 17:28:24 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-8-4 09:58:16 | 显示全部楼层
值得拥有

出0入0汤圆

发表于 2011-8-4 14:20:57 | 显示全部楼层
跟那个按键扫描有点向

出0入0汤圆

发表于 2011-8-4 20:03:16 | 显示全部楼层
3个IO口,任选两个连线,有3种选法,每种选线的LED正反排列,有两种排法。应用排列组合思想,可接A(3,2),即3 x 2 x 1 = 6个LED。若是5个,则可接A(5,2),即 5 x 4 x 3 x 2 x 1 = 60个LED。

出0入0汤圆

发表于 2011-8-4 22:17:26 | 显示全部楼层
回复【27楼】qiu452555846  白羽
3个io口,任选两个连线,有3种选法,每种选线的led正反排列,有两种排法。应用排列组合思想,可接a(3,2),即3 x 2 x 1 = 6个led。若是5个,则可接a(5,2),即 5 x 4 x 3 x 2 x 1 = 60个led。
-----------------------------------------------------------------------

怎么得出60个的,能不能画个图来看看

出0入0汤圆

发表于 2011-8-5 00:21:54 | 显示全部楼层
这个思路经典

出0入0汤圆

发表于 2011-8-5 01:08:54 | 显示全部楼层
我用台系OTP8脚单片机开发过小型流星灯,5个IO口驱动独立的20个灯,带PWM,原理大家都说的很清楚了,只是到现在还没有接到批量订单,郁闷死

出0入0汤圆

发表于 2011-8-5 21:03:41 | 显示全部楼层
前面说错了,不好意思。假设有5个IO口PA0、PA1、PA2、PA3、PA4。
(1)任选其中两个IO口(例如PA0&PA1、PA1&PA2、PA0&PA2……),则共有C(5,2) = 5 * 4 / (2 * 1)= 10种选法(数学上的组合)。
(2)对于其中的任意一组组合(如PA1&PA2),皆可连接两个LED灯(反向并联)
(3)按照以上方法联连,5个IO口总计可以连接 10* 2 = 20个LED。
(4)如果每个IO口皆是三态的,那么就可以独立控制这20个LED,使其中每一个LED都台单独点亮(其他19个不亮)——只需要给连接目标LED两个IO口正极性逻辑电平,而其他IO口为高组态。例如,设PA0、PA1、PA2为高组态,PA3=1且PA4=0,则正接于PA3(+)与PA4(-)的LED点亮,其他皆不亮;又若,设PA0、PA1、PA2为高组态,PA3=0且PA4=1,则正接于PA4(+)与PA3(-)的LED点亮,而其他19个皆不亮。其他各个灯独立点亮的方法类推。
可见,5个三态IO口,可以直接独立控制 N = A(5,2) = 5 * 4  = 20 个LED灯;
类推,6个三态IO口,可以直接独立控制 N = A(6,2) = 6 * 5  = 30 个LED灯.
注意,每个IO口皆应串一个限流电阻再连接LED。
应用排列组合思想,N个IO口可以连接N * (N - 1)个LED灯。如果把电源线和地线也加入,还可以增加LED数。

倘若按状态理解,每个IO口有两种电平状态,则N个IO口最多可实现2^n个状态,即控制N个LED灯,5个IO口,应有2^5 = 32个。
倘若按状态理解,每个三态IO口有三种逻辑状态,则N个IO口最多可实现3^n个状态,即控制N个LED灯,5个IO口,应有3^5 =729个,有点恐怖哦,实际是不可能的。

出0入0汤圆

发表于 2011-9-16 01:15:13 | 显示全部楼层
方法不错,学习。

出0入0汤圆

发表于 2011-9-16 09:00:39 | 显示全部楼层
有趣!

出0入0汤圆

发表于 2011-9-21 21:19:04 | 显示全部楼层
很好,学习了。

出0入0汤圆

发表于 2011-9-21 22:07:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-21 23:22:49 | 显示全部楼层
3个IO6LED MARK

出0入0汤圆

发表于 2011-9-22 10:59:31 | 显示全部楼层
学习了   需要学习的东西很多啊  加油!

出210入8汤圆

发表于 2011-10-11 17:09:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-7-21 23:28:47 | 显示全部楼层
挺实用的

出0入0汤圆

发表于 2012-7-22 15:05:54 | 显示全部楼层
没看很明白,现在没时间,标记一些回来再看

出0入0汤圆

发表于 2012-7-22 22:31:47 | 显示全部楼层
学习了

出0入0汤圆

发表于 2012-7-23 10:22:46 | 显示全部楼层
3个IO驱动6led 学习了

出0入0汤圆

发表于 2012-7-23 11:04:09 | 显示全部楼层
mark
不错。

出0入0汤圆

发表于 2012-7-23 11:49:38 | 显示全部楼层
赞一个,最近项目可能用得上
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 12:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表