電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 32|回復(fù): 0
收起左側(cè)

用3個IO口控制6個LED燈,怎么做到的?查理復(fù)用!

[復(fù)制鏈接]

660

主題

660

帖子

4567

積分

四級會員

Rank: 4

積分
4567
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-11-28 07:30:00 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

, G! h& ~8 y: [2 `▲ 本文要分析的電路
1 J: [' N' e# r  ~% g事情是這樣開始的。買了個電動牙刷,幾十塊錢那種:) s9 _. z6 ?) T# X
9 {3 Q! R6 Z' I2 J) B, P
收到的實物長這樣:3 Y  Y' u. ~) |# f) R& }8 a7 f2 V

6 A( x4 K* b1 T9 Z; Y牙刷手柄上有1個按鍵和6個LED燈:  v  s$ V$ I  d) d5 V( r% F
+ R. ~* K+ {9 |3 N8 u2 S& p- u
拆開看看電路板:8 ?$ Y4 K) ]! i: O( W

0 p! o! l. [+ X+ n1 a' c6 |- m可以看出,電路板上用的單片機,只有8個腳,卻要控制1個按鍵、6個LED燈、1個震動的馬達電機:
0 a. A4 ~" A1 P7 n4 v0 O 9 }/ T# d  f# z6 y) r
初看之下,GPIO應(yīng)該是不夠用的。單片機除去電源腳(正極)和GND腳(負(fù)極),只剩最多6個GPIO腳。那么是怎么做到夠用的?原來,經(jīng)過巧妙的電路設(shè)計,這款電動牙刷實現(xiàn)了用3個GPIO控制6個LED燈,節(jié)省了GPIO。
5 t( \  n6 l; ]  o3 K
6 }5 m5 g2 T: g& c4 ^  c- p4 N' `這個巧妙的電路如下:
2 V5 L6 M; e3 q% U9 M) _' z! F4 c* z6 J- R
6個LED燈為相同的型號,為方便查看,用紅綠兩種顏色區(qū)分兩種不同的方向。一、原理分析這個電路用到了單片機GPIO的三種狀態(tài):高電平低電平高阻態(tài)所謂“高阻態(tài)”,是指GPIO對外部電路表現(xiàn)出極大的阻抗。因阻抗很大,幾乎不會吸入電流,也不會對外輸出電流。各個LED燈單獨亮起,分為六種情況。1、當(dāng)只有LED1亮起時,單片機各GPIO的狀態(tài)如下:(帶箭頭的紅線為電流回路)
8 n1 U; _7 J) d0 r+ ]. ]% V. q 2 h  ]) j7 l1 R+ x; k8 z
2、當(dāng)只有LED2亮起時,單片機各GPIO的狀態(tài)如下:
9 Z# g0 ?' e* U
1 i- p) n  S. c2 T/ C6 s8 ]" k3、當(dāng)只有LED3亮起時,單片機各GPIO的狀態(tài)如下:1 l  M# {$ o- \1 Y$ h
; R: L% L; J# ]. }2 s: ?- Z/ X9 j
4、當(dāng)只有LED4亮起時,單片機各GPIO的狀態(tài)如下:0 x* P1 c2 G) j$ ~9 Z; g
. Y' v' ~# L6 d7 l6 Z+ i! Z. t
5、當(dāng)只有LED5亮起時,單片機各GPIO的狀態(tài)如下:
) D' ~- G) H* \7 F/ f 7 l) q! r" j/ [% y4 {, a
6、當(dāng)只有LED6亮起時,單片機各GPIO的狀態(tài)如下:
5 E. B- R+ @: u5 |4 G, I0 L : X3 p& ~8 j. J' k( o
整理如下:
+ b8 q& g$ k7 \  H; V! ?4 ], ^
; R3 l7 R. N1 u: i/ K, @, q就是這么簡單!二、總結(jié)提升以上其實是用了一種叫“查理復(fù)用”(Charlieplex)的方法。為什么叫查理復(fù)用?
3 l, q9 N$ y* Q* W$ ~ , I! m- o1 k' n* @9 [8 M
很簡單,因為這個方法來源于美信半導(dǎo)體公司的工程師Charlie Allen。查理復(fù)用是一種能夠在驅(qū)動LED,特別是驅(qū)動大量LED時有效地節(jié)約GPIO的方法。使用該方法,n個GPIO可以驅(qū)動 n*(n-1) 個LED,所以:使用2個GPIO可以驅(qū)動2個LED。使用3個GPIO可以驅(qū)動6個LED。使用4個GPIO可以驅(qū)動12個LED。以此類推。這種方式能夠?qū)崿F(xiàn)的基礎(chǔ)是:單片機GPIO的三個狀態(tài):高電平、低電平、高阻態(tài)。LED具有單向?qū)щ娦浴?/u>查理復(fù)用設(shè)計的方法:任意兩個GPIO引腳之間串入兩個LED,這兩個LED為并聯(lián),且LED方向相反。當(dāng)你想要點亮某個特定的LED時,就將其兩端所連接到的GPIO引腳分別設(shè)定為高電平和低電平,其它剩余的GPIO引腳設(shè)定為高阻態(tài)。前面電動牙刷中6個LED燈的電路,就是這么設(shè)計的。下面從最簡單的開始,一步一步體會查理復(fù)用的電路設(shè)計。1、使用2個GPIO時最簡單:
0 H1 d  q! `1 }& P( D$ X3 F
# q& A9 P# z& t. W- L: A, |: JLED1亮起時:
, o. S. q" U! \9 g% q % R* g. f  O1 Z  b0 s
LED2亮起時:9 @' C" y6 j+ ?- e' i

# V$ ^+ `, g% U; u這里只用到高電平、低電平的狀態(tài),不需要用高阻態(tài)的狀態(tài)。2、使用3個GPIO時,前面已經(jīng)分析過:
) c) r2 ?4 P3 e  D& O2 r$ v$ c7 |  y5 v
可以等效為下圖:7 Q- i* n8 s0 @+ K. `3 W7 r" ]; X
$ R! b, `; U/ O* S0 ]
可以看出,確實是任意兩個GPIO之間均串入了兩個并聯(lián)的LED,且LED方向相反。3、同樣的原理,使用4個GPIO時:
$ }% \5 L$ W5 j" F2 \) o4 _3 j* h
. s$ m* k' |" q% {" r1 u- k5 I+ x4 @7 e點亮LED1時:% u$ X' \4 E3 U5 _

4 T  \9 v1 v; }1 C/ X8 @3 h9 D' x其他LED亮起的情況不再列舉。查理復(fù)用這樣的電路接法也會引發(fā)一些問題。首先,LED亮起時完全由單片機的GPIO輸出電流,所以對于GPIO的電流驅(qū)動能力有一定的要求。設(shè)計電路時要注意查詢自己使用的MCU的電流驅(qū)動能力,下圖是STM32單片機中對GPIO電流驅(qū)動能力的說明:. f  b. Z/ N4 s/ I& k2 R

: e+ L4 f" `; m其次,如果出現(xiàn)了某個LED開路或短路的情況,電流的流向會被打亂,LED亮起來的邏輯會變得錯亂。最壞的情況下,電路會對GPIO索取大電流,導(dǎo)致單片機損壞。下圖是假設(shè)LED1短路,那么在點亮LED5時,LED3也會亮起:# T) L; M1 F( D3 e5 G" ~

& y+ S( {3 d$ g三、繼續(xù)進階如果要同時亮起兩個以上的LED,怎么辦?交替點亮他們就行,只要交替切換的速度夠快,由于人眼的視覺暫留效應(yīng),看起來就是同時亮起的。值得一提的是,如果要同時亮起的LED較多,比如大規(guī)模的LED點陣,那么還要注意一些新的問題,頗有門道。 聲明:
; v8 I) i9 M: ]3 \) N+ Z/ G5 j本文轉(zhuǎn)載自電路啊公眾號 ,如涉及作品內(nèi)容、版權(quán)和其它問題,請聯(lián)系工作人員微(13237418207),我們將在第一時間和您對接刪除處理!投稿/招聘/廣告/課程合作/資源置換 請加微信:13237418207
( U4 x/ |) V: k! Z! J( D7 K                                 * P3 d6 d5 ^3 ?1 ^1 g( h
& g( ~" [3 W! a! K5 b0 C, ?$ G

" h* t* \  V# t+ K+ C
% I- Y% `( X. G. L0 a' D6 g6 M# ?                                                       
  w: b" O) t5 e- t                                                                . e3 O6 r" `6 F
                                                                        6 [. B+ n2 [% w
                                                                               
2 {% ~) a" g$ ~. y5 V$ k0 T8 j$ U' I$ @- P6 p) v- @
                                                                                : S0 t5 b  o; Z6 k! \7 j9 I$ C
                                                                                        反激式電源為什么上電最容易燒MOS管?6 v4 G6 \" I. b# @. n8 K' O
                                                                               
" V0 p: m3 Z6 t$ _8 ^                                                                        - z" m& I" f; G
                                                               
2 K$ V" G, u6 i- V/ U+ e# t: g7 g                                                        : h- p' q, o& L3 R. E6 x$ r( \
                                                2 C/ Y5 u! I$ }# c! g
  J3 [9 f/ R5 z" M6 w
                                                        ! U: \- t$ S- E4 V" q. `
                                                                0 _# U3 _6 g8 Z6 N
                                                                        6 ^6 f8 _3 U) W0 V! r) _% t
                                                                               
& i3 e2 J9 N/ D, z1 H+ v  v3 y5 K' r" f5 W0 v2 F
                                                                                . g( i  V% e- m! A; I8 c# H& ~% h
                                                                                        電子電路中“地”的本質(zhì)特性是什么?# Y' H/ [! T" [' d: k/ e5 h  k; I
                                                                                7 _8 a  [- Z% B
                                                                        ! X8 v8 Z+ `! i3 @. @; r
                                                                4 j8 L0 U+ _3 C0 A/ x: D
                                                       
/ g' y  q3 v+ ~. p  ~                                               
0 ^4 Y9 \5 B6 C) {  L1 c( T
% x) Z; H& U( K' W5 [' _( X
3 g3 I- P$ ?: H: k( x/ A, h/ X2 g掃碼添加客服微信,備注“入群”拉您進凡億教育官方專屬技術(shù)微信群,與眾位電子技術(shù)大神一起交流技術(shù)問題及心得~  U; g9 w  W3 d& e# r  ~
分享?? 點贊?? 在看?? “三連”支持!
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表