|
xfxm1fre3aj64053871900.png (30.77 KB, 下載次數(shù): 0)
下載附件
保存到相冊
xfxm1fre3aj64053871900.png
2024-12-2 22:05 上傳
, G! h& ~8 y: [2 `▲ 本文要分析的電路
1 J: [' N' e# r ~% g事情是這樣開始的。買了個電動牙刷,幾十塊錢那種:) s9 _. z6 ?) T# X
pia1iijhtk564053872000.jpg (233.85 KB, 下載次數(shù): 0)
下載附件
保存到相冊
pia1iijhtk564053872000.jpg
2024-12-2 22:05 上傳
9 {3 Q! R6 Z' I2 J) B, P
收到的實物長這樣:3 Y Y' u. ~) |# f) R& }8 a7 f2 V
r2x2tnwlax264053872100.jpg (343.74 KB, 下載次數(shù): 0)
下載附件
保存到相冊
r2x2tnwlax264053872100.jpg
2024-12-2 22:05 上傳
6 A( x4 K* b1 T9 Z; Y牙刷手柄上有1個按鍵和6個LED燈: v s$ V$ I d) d5 V( r% F
3rji3drtmi364053872200.jpg (392.68 KB, 下載次數(shù): 0)
下載附件
保存到相冊
3rji3drtmi364053872200.jpg
2024-12-2 22:05 上傳
+ R. ~* K+ {9 |3 N8 u2 S& p- u
拆開看看電路板:8 ?$ Y4 K) ]! i: O( W
waasgl4hnqx64053872300.jpg (96.54 KB, 下載次數(shù): 0)
下載附件
保存到相冊
waasgl4hnqx64053872300.jpg
2024-12-2 22:05 上傳
0 p! o! l. [+ X+ n1 a' c6 |- m可以看出,電路板上用的單片機,只有8個腳,卻要控制1個按鍵、6個LED燈、1個震動的馬達電機:
0 a. A4 ~" A1 P7 n4 v0 O
cv55b435vl564053872400.jpg (151.73 KB, 下載次數(shù): 0)
下載附件
保存到相冊
cv55b435vl564053872400.jpg
2024-12-2 22:05 上傳
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
mqv45ci4mnf64053872500.jpg (11.26 KB, 下載次數(shù): 0)
下載附件
保存到相冊
mqv45ci4mnf64053872500.jpg
2024-12-2 22:05 上傳
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
2wkbum0lngm64053872600.png (42.91 KB, 下載次數(shù): 0)
下載附件
保存到相冊
2wkbum0lngm64053872600.png
2024-12-2 22:05 上傳
2 h ]) j7 l1 R+ x; k8 z
2、當(dāng)只有LED2亮起時,單片機各GPIO的狀態(tài)如下:
9 Z# g0 ?' e* U
afyd3qbmlam64053872700.png (44.83 KB, 下載次數(shù): 0)
下載附件
保存到相冊
afyd3qbmlam64053872700.png
2024-12-2 22:05 上傳
1 i- p) n S. c2 T/ C6 s8 ]" k3、當(dāng)只有LED3亮起時,單片機各GPIO的狀態(tài)如下:1 l M# {$ o- \1 Y$ h
agkdgj3wb4d64053872800.png (44.37 KB, 下載次數(shù): 0)
下載附件
保存到相冊
agkdgj3wb4d64053872800.png
2024-12-2 22:05 上傳
; 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
ybr20xi3wf064053872900.png (44.83 KB, 下載次數(shù): 0)
下載附件
保存到相冊
ybr20xi3wf064053872900.png
2024-12-2 22:05 上傳
. Y' v' ~# L6 d7 l6 Z+ i! Z. t
5、當(dāng)只有LED5亮起時,單片機各GPIO的狀態(tài)如下:
) D' ~- G) H* \7 F/ f
2cmlaud1xgy64053873000.png (45.42 KB, 下載次數(shù): 0)
下載附件
保存到相冊
2cmlaud1xgy64053873000.png
2024-12-2 22:05 上傳
7 l) q! r" j/ [% y4 {, a
6、當(dāng)只有LED6亮起時,單片機各GPIO的狀態(tài)如下:
5 E. B- R+ @: u5 |4 G, I0 L
fk500fxwzqn64053873100.png (44.96 KB, 下載次數(shù): 0)
下載附件
保存到相冊
fk500fxwzqn64053873100.png
2024-12-2 22:05 上傳
: X3 p& ~8 j. J' k( o
整理如下:
+ b8 q& g$ k7 \ H; V! ?4 ], ^
n12k2fnc2db64053873200.png (3.44 KB, 下載次數(shù): 0)
下載附件
保存到相冊
n12k2fnc2db64053873200.png
2024-12-2 22:05 上傳
; R3 l7 R. N1 u: i/ K, @, q就是這么簡單!二、總結(jié)提升以上其實是用了一種叫“查理復(fù)用”(Charlieplex)的方法。為什么叫查理復(fù)用?
3 l, q9 N$ y* Q* W$ ~
1qdjavaerdj64053873300.jpg (62.95 KB, 下載次數(shù): 0)
下載附件
保存到相冊
1qdjavaerdj64053873300.jpg
2024-12-2 22:05 上傳
, 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
djf4cdqy1al64053873400.png (18.73 KB, 下載次數(shù): 0)
下載附件
保存到相冊
djf4cdqy1al64053873400.png
2024-12-2 22:05 上傳
# q& A9 P# z& t. W- L: A, |: JLED1亮起時:
, o. S. q" U! \9 g% q
jncdp2o5bh164053873500.png (23.34 KB, 下載次數(shù): 0)
下載附件
保存到相冊
jncdp2o5bh164053873500.png
2024-12-2 22:05 上傳
% R* g. f O1 Z b0 s
LED2亮起時:9 @' C" y6 j+ ?- e' i
grme3jykqh364053873600.png (24.54 KB, 下載次數(shù): 0)
下載附件
保存到相冊
grme3jykqh364053873600.png
2024-12-2 22:05 上傳
# 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
jza5fglazbu64053873700.png (44.02 KB, 下載次數(shù): 0)
下載附件
保存到相冊
jza5fglazbu64053873700.png
2024-12-2 22:05 上傳
$ R! b, `; U/ O* S0 ]
可以看出,確實是任意兩個GPIO之間均串入了兩個并聯(lián)的LED,且LED方向相反。3、同樣的原理,使用4個GPIO時:
$ }% \5 L$ W5 j" F2 \) o4 _3 j* h
youu4312ney64053873800.png (98.09 KB, 下載次數(shù): 0)
下載附件
保存到相冊
youu4312ney64053873800.png
2024-12-2 22:05 上傳
. 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 ~
分享?? 點贊?? 在看?? “三連”支持! |
|