电子产业一站式赋能平台

PCB联盟网

搜索
查看: 101|回复: 0
收起左侧

用3个IO口控制6个LED灯,怎么做到的?查理复用!

[复制链接]

840

主题

840

帖子

6491

积分

高级会员

Rank: 5Rank: 5

积分
6491
发表于 2024-11-28 07:30:00 | 显示全部楼层 |阅读模式

xfxm1fre3aj64053871900.png

xfxm1fre3aj64053871900.png

# F! N- h! [, L* o9 _% j: G▲ 本文要分析的电路
( t( v  y2 j9 L4 I事情是这样开始的。买了个电动牙刷,几十块钱那种:
% i9 |3 W7 k  \: l8 }

pia1iijhtk564053872000.jpg

pia1iijhtk564053872000.jpg
+ ^/ n3 Y! W& S& z
收到的实物长这样:
6 f1 e# h7 V9 i% i- @3 O0 Q/ L7 P

r2x2tnwlax264053872100.jpg

r2x2tnwlax264053872100.jpg

4 ~6 L* q* e+ l1 P* q牙刷手柄上有1个按键和6个LED灯:
, M  u$ Q& }8 _$ q9 h$ S7 C' W

3rji3drtmi364053872200.jpg

3rji3drtmi364053872200.jpg

' ~4 b! K' ^* @2 Y) I* P' ]- x" L拆开看看电路板:2 E' |7 [7 A6 L5 D) o

waasgl4hnqx64053872300.jpg

waasgl4hnqx64053872300.jpg

* b% c: S7 R$ t  K可以看出,电路板上用的单片机,只有8个脚,却要控制1个按键、6个LED灯、1个震动的马达电机:# J3 J% B+ f/ u: T# G/ |# r7 S

cv55b435vl564053872400.jpg

cv55b435vl564053872400.jpg

, T0 [: M- o6 `& r3 X# m2 B& Z初看之下,GPIO应该是不够用的。单片机除去电源脚(正极)和GND脚(负极),只剩最多6个GPIO脚。那么是怎么做到够用的?原来,经过巧妙的电路设计,这款电动牙刷实现了用3个GPIO控制6个LED灯,节省了GPIO。2 c* M: W8 F* O

mqv45ci4mnf64053872500.jpg

mqv45ci4mnf64053872500.jpg

( j: c+ u( \5 \8 J这个巧妙的电路如下:' v( C$ h/ G8 f2 V( h% `! c

) J+ G* f& L5 D/ o: r5 ?5 k6个LED灯为相同的型号,为方便查看,用红绿两种颜色区分两种不同的方向。一、原理分析这个电路用到了单片机GPIO的三种状态:高电平低电平高阻态所谓“高阻态”,是指GPIO对外部电路表现出极大的阻抗。因阻抗很大,几乎不会吸入电流,也不会对外输出电流。各个LED灯单独亮起,分为六种情况。1、当只有LED1亮起时,单片机各GPIO的状态如下:(带箭头的红线为电流回路)5 g: _" q$ x' L& Q' g3 z- T: K6 l

2wkbum0lngm64053872600.png

2wkbum0lngm64053872600.png

- W( u, r; q/ O( P" K9 K) w2、当只有LED2亮起时,单片机各GPIO的状态如下:
7 r, x4 s+ [) M% A' ]- t. u/ l

afyd3qbmlam64053872700.png

afyd3qbmlam64053872700.png

% H+ k+ e) T4 q* v3、当只有LED3亮起时,单片机各GPIO的状态如下:
' J0 d7 y1 P% f/ y: A' k. G& i7 a

agkdgj3wb4d64053872800.png

agkdgj3wb4d64053872800.png
" F  s9 l7 R* N6 _
4、当只有LED4亮起时,单片机各GPIO的状态如下:
; d0 D' l3 `- n1 d+ E& t

ybr20xi3wf064053872900.png

ybr20xi3wf064053872900.png

' g0 o/ n8 g8 `# w: h5、当只有LED5亮起时,单片机各GPIO的状态如下:
5 G! _  x6 t7 B- t$ d" ~

2cmlaud1xgy64053873000.png

2cmlaud1xgy64053873000.png
5 o2 X  a0 O6 U
6、当只有LED6亮起时,单片机各GPIO的状态如下:2 H, e7 t' Z4 N5 v

fk500fxwzqn64053873100.png

fk500fxwzqn64053873100.png

0 G1 G9 B: u0 Y( ]0 n整理如下:
( p5 c3 V  F" B  W: O3 H8 j4 e

n12k2fnc2db64053873200.png

n12k2fnc2db64053873200.png
( Y, `& O' p. b) m
就是这么简单!二、总结提升以上其实是用了一种叫“查理复用”(Charlieplex)的方法。为什么叫查理复用?
- Z& _- w; b, E! ?0 Y

1qdjavaerdj64053873300.jpg

1qdjavaerdj64053873300.jpg
6 ]8 ?0 X: M; _7 c8 p
很简单,因为这个方法来源于美信半导体公司的工程师Charlie Allen。查理复用是一种能够在驱动LED,特别是驱动大量LED时有效地节约GPIO的方法。使用该方法,n个GPIO可以驱动 n*(n-1) 个LED,所以:使用2个GPIO可以驱动2个LED。使用3个GPIO可以驱动6个LED。使用4个GPIO可以驱动12个LED。以此类推。这种方式能够实现的基础是:单片机GPIO的三个状态:高电平、低电平、高阻态。LED具有单向导电性。查理复用设计的方法:任意两个GPIO引脚之间串入两个LED,这两个LED为并联,且LED方向相反。当你想要点亮某个特定的LED时,就将其两端所连接到的GPIO引脚分别设定为高电平和低电平,其它剩余的GPIO引脚设定为高阻态。前面电动牙刷中6个LED灯的电路,就是这么设计的。下面从最简单的开始,一步一步体会查理复用的电路设计。1、使用2个GPIO时最简单:
0 a; z& C/ h8 o2 j, T

djf4cdqy1al64053873400.png

djf4cdqy1al64053873400.png

6 K4 L+ d" f8 tLED1亮起时:
# }# W* e6 p8 r5 @6 u# T

jncdp2o5bh164053873500.png

jncdp2o5bh164053873500.png
: {; P3 b, A; c1 z. k
LED2亮起时:9 e/ ?& S/ d6 Y, _2 {5 O. V& ?3 C

grme3jykqh364053873600.png

grme3jykqh364053873600.png

6 z# o& L8 b! n: H- K3 @0 _+ D这里只用到高电平、低电平的状态,不需要用高阻态的状态。2、使用3个GPIO时,前面已经分析过:
% w$ u' k  `+ C5 H( p( w2 z  k' K0 Z2 H
可以等效为下图:+ p1 K# z; s$ u$ u- B9 ^, }

jza5fglazbu64053873700.png

jza5fglazbu64053873700.png

$ Y% \" s- U8 x可以看出,确实是任意两个GPIO之间均串入了两个并联的LED,且LED方向相反。3、同样的原理,使用4个GPIO时:
9 J% J- X) Z' p$ f! W& u( ]

youu4312ney64053873800.png

youu4312ney64053873800.png
( s8 {) B4 b% Z- V, {0 j+ V& \/ k
点亮LED1时:
: w/ m; Z+ J9 _2 m+ T4 g1 ^5 A1 c
7 x3 }; H( ^/ u. d+ E# H. B其他LED亮起的情况不再列举。查理复用这样的电路接法也会引发一些问题。首先,LED亮起时完全由单片机的GPIO输出电流,所以对于GPIO的电流驱动能力有一定的要求。设计电路时要注意查询自己使用的MCU的电流驱动能力,下图是STM32单片机中对GPIO电流驱动能力的说明:
+ ]7 T5 r- @, k0 U* P: {: e6 g/ n* k! b$ j; s
其次,如果出现了某个LED开路或短路的情况,电流的流向会被打乱,LED亮起来的逻辑会变得错乱。最坏的情况下,电路会对GPIO索取大电流,导致单片机损坏。下图是假设LED1短路,那么在点亮LED5时,LED3也会亮起:* D' e1 u$ e) h2 N0 h% ?
1 k* e! |. ~1 H2 G
三、继续进阶如果要同时亮起两个以上的LED,怎么办?交替点亮他们就行,只要交替切换的速度够快,由于人眼的视觉暂留效应,看起来就是同时亮起的。值得一提的是,如果要同时亮起的LED较多,比如大规模的LED点阵,那么还要注意一些新的问题,颇有门道。 声明:8 \: ^  h0 {) T
本文转载自电路啊公众号 ,如涉及作品内容、版权和其它问题,请联系工作人员微(13237418207),我们将在第一时间和您对接删除处理!投稿/招聘/广告/课程合作/资源置换 请加微信:13237418207/ t- w. T+ B$ W8 f( P
                                 
3 s! A7 s6 o: @, }! {* g) f
. C9 g8 D* F  z' q& |' o# l) h2 N8 u% n
2 l( I& ]8 d$ ~, C1 }  L7 c; n/ C
                                                        6 L7 M8 E1 s. T9 c1 \' V
                                                               
! [  [& ?, J$ g, ?9 Y6 P4 e+ {                                                                       
: ^( L9 {. h# b. T% x                                                                                  n9 [3 O; z; Y

/ A4 V0 e) Y/ U7 S8 k7 e5 a5 j2 m                                                                                $ B4 |& C2 ?4 l6 M+ o8 o7 N) z
                                                                                        反激式电源为什么上电最容易烧MOS管?
: ?; ?/ J4 C' e" j! p                                                                               
' G' x, e# c( Y3 f                                                                       
7 j# h# w1 e% o; A                                                               
) }: V) q0 y# T# N( S9 e9 P! `                                                       
' o# y: l# V3 u, I! Z# Y# N4 d  Q                                               
; s5 @( L& a0 J, @0 Y( Q( ]+ l$ z  I
                                                        1 \; m6 j; U# V1 [1 Z7 D( x
                                                                & c0 p, Q9 e7 X; ^
                                                                        + t, p/ b; V- v
                                                                               
* z- T! P; P, ?2 I1 d. j
( [! @/ A+ L' R( J                                                                                4 d0 j. p+ [6 {- d1 p
                                                                                        电子电路中“地”的本质特性是什么?
1 \8 ~% w# C: a8 ^5 a; P6 N                                                                                * i) s. O. M9 X# E6 \- N/ t6 n
                                                                       
5 {* B: `8 I  u+ h$ [: z                                                               
0 }+ O! b9 K$ N: h+ i+ s- `                                                       
( b- o$ |% v8 U0 W0 x! ?                                                # N( T0 }4 J2 O$ c( S

  R8 L3 ^# @9 u8 I1 O1 G, ~6 m& y
扫码添加客服微信,备注“入群”拉您进凡亿教育官方专属技术微信群,与众位电子技术大神一起交流技术问题及心得~  W& `: u! b9 T( Z8 M+ X
分享?? 点赞?? 在看?? “三连”支持!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表