大家看一下,3个IO口控制5个灯
大家看一下,3个IO口控制5个灯顺序点亮D1到D5,怎样设置IO口点亮LED 理论上3个IO可以点6个灯,n个IO可以点n(n-1)个灯。 1 LED3 高,LED2 低,LED1 高;2 LED3 低,LED2 高,LED1 空;
3 LED3 低,LED2 低,LED1 高;
4 LED3 空,LED2 高,LED1 低;
5 不知道。。。。 bushiniu 发表于 2013-3-21 15:12 static/image/common/back.gif
1 LED3 高,LED2 低,LED1 高;
2 LED3 低,LED2 高,LED1 空;
3 LED3 低,LED2 低,LED1 高;
呵呵,我也是只能点4个,5个就不知怎样点了 1 LED3 高,LED2 低,LED1 空;
2 LED3 低,LED2 高,LED1 空;
3 LED3 低,LED2 空,LED1 高;
4 LED3 高,LED2 空,LED1 低;
5 LED3 空,LED2 高,LED1 低;
6 LED3 空,LED2 低,LED1 高;(LED6 跟LED5 反相)
这样对不??
其实可以这样,需要点亮哪个LED,就将与该LED正极相连的引脚置高,与LED负极相连的引脚置低,无关的引脚置为高阻态
所以是这样的:
1:LED3=1,LED2=0,LED1=高阻
2:LED2=1,LED3=0,LED1=高阻
3:LED1=1,LED3=0,LED2=高阻
4:LED3=1,LED1=0,LED2=高阻
5:LED2=1,LED1=0,LED3=高阻 http://en.wikipedia.org/wiki/Charlieplexing 无机酸大师推荐的方法 这个很简单呀!理论是12灯呀!把VCC和GND也用上! 高电平,低电平,高阻态。 {:lol:}要不用个IO口扩展芯片吧,那样控制8个灯都行 最后一个灯LED5是IO2为高,IO1为低,IO3为高阻态。
但是IO2和IO1之间的电压足够一个LED导通,但是不足以点亮两个LED。
这种接法灯的亮度会大打折扣,I/O的电流输出输入能力有限,而且如果需要闪烁的话,灯的亮度会更暗。实际应用时还要多多考虑啊。 来个编码芯片 驱动能力强 控制灯的数量也多 同一个IO上一个LED和两个LED亮时,亮度会不一样。
页:
[1]