|
xfxm1fre3aj64053871900.png (30.77 KB, 下載次數(shù): 0)
下載附件
保存到相冊
xfxm1fre3aj64053871900.png
2024-12-2 22:05 上傳
2 u( d0 D) G' T- ]# W: k: s
▲ 本文要分析的電路
! ~, y* X9 J2 B2 K6 @事情是這樣開始的。買了個電動牙刷,幾十塊錢那種:7 _- y$ x& Q! O6 F
pia1iijhtk564053872000.jpg (233.85 KB, 下載次數(shù): 0)
下載附件
保存到相冊
pia1iijhtk564053872000.jpg
2024-12-2 22:05 上傳
6 d% K. m* E0 P5 W! l8 h! z0 V8 n5 R
收到的實物長這樣:
) \, W. j# t* j* z& e# j1 O
r2x2tnwlax264053872100.jpg (343.74 KB, 下載次數(shù): 0)
下載附件
保存到相冊
r2x2tnwlax264053872100.jpg
2024-12-2 22:05 上傳
' k8 c! Y: C9 |3 b. A牙刷手柄上有1個按鍵和6個LED燈:
* l' f+ N! }/ y1 _8 {( L) o
3rji3drtmi364053872200.jpg (392.68 KB, 下載次數(shù): 0)
下載附件
保存到相冊
3rji3drtmi364053872200.jpg
2024-12-2 22:05 上傳
) t9 X! s& K8 s4 ^' p% {拆開看看電路板:! V% W5 u/ w6 }/ j+ T* Q
waasgl4hnqx64053872300.jpg (96.54 KB, 下載次數(shù): 0)
下載附件
保存到相冊
waasgl4hnqx64053872300.jpg
2024-12-2 22:05 上傳
. Z+ q" @- e/ m
可以看出,電路板上用的單片機,只有8個腳,卻要控制1個按鍵、6個LED燈、1個震動的馬達電機:
+ K' X, D5 k3 P% J( E0 ~3 |
cv55b435vl564053872400.jpg (151.73 KB, 下載次數(shù): 0)
下載附件
保存到相冊
cv55b435vl564053872400.jpg
2024-12-2 22:05 上傳
6 r$ f& q9 q5 l
初看之下,GPIO應該是不夠用的。單片機除去電源腳(正極)和GND腳(負極),只剩最多6個GPIO腳。那么是怎么做到夠用的?原來,經(jīng)過巧妙的電路設(shè)計,這款電動牙刷實現(xiàn)了用3個GPIO控制6個LED燈,節(jié)省了GPIO。
5 \" ]' O* G7 T8 k; Y, A7 w" s- j
mqv45ci4mnf64053872500.jpg (11.26 KB, 下載次數(shù): 0)
下載附件
保存到相冊
mqv45ci4mnf64053872500.jpg
2024-12-2 22:05 上傳
9 Q S; ^2 X b
這個巧妙的電路如下:
/ ^0 o& ?/ P4 ?* o4 C3 l [1 L% S O
( D8 Q9 D( C# n1 h* s" q1 {6個LED燈為相同的型號,為方便查看,用紅綠兩種顏色區(qū)分兩種不同的方向。一、原理分析這個電路用到了單片機GPIO的三種狀態(tài):高電平低電平高阻態(tài)所謂“高阻態(tài)”,是指GPIO對外部電路表現(xiàn)出極大的阻抗。因阻抗很大,幾乎不會吸入電流,也不會對外輸出電流。各個LED燈單獨亮起,分為六種情況。1、當只有LED1亮起時,單片機各GPIO的狀態(tài)如下:(帶箭頭的紅線為電流回路)
' R% Z& a) `8 s7 X6 t8 \
2wkbum0lngm64053872600.png (42.91 KB, 下載次數(shù): 0)
下載附件
保存到相冊
2wkbum0lngm64053872600.png
2024-12-2 22:05 上傳
2 G0 X0 F1 g, a2、當只有LED2亮起時,單片機各GPIO的狀態(tài)如下:
. y6 y) V# b$ c8 R4 S
afyd3qbmlam64053872700.png (44.83 KB, 下載次數(shù): 0)
下載附件
保存到相冊
afyd3qbmlam64053872700.png
2024-12-2 22:05 上傳
3 A! }* q4 t1 F3、當只有LED3亮起時,單片機各GPIO的狀態(tài)如下:
$ C2 ?8 h- Q$ w" x
agkdgj3wb4d64053872800.png (44.37 KB, 下載次數(shù): 0)
下載附件
保存到相冊
agkdgj3wb4d64053872800.png
2024-12-2 22:05 上傳
' P# f1 y- d2 H4、當只有LED4亮起時,單片機各GPIO的狀態(tài)如下:' w5 H( r) F, p) @; s
ybr20xi3wf064053872900.png (44.83 KB, 下載次數(shù): 0)
下載附件
保存到相冊
ybr20xi3wf064053872900.png
2024-12-2 22:05 上傳
; @# u d+ k) R2 d, _5、當只有LED5亮起時,單片機各GPIO的狀態(tài)如下:, G1 p; i3 h- O' J
2cmlaud1xgy64053873000.png (45.42 KB, 下載次數(shù): 0)
下載附件
保存到相冊
2cmlaud1xgy64053873000.png
2024-12-2 22:05 上傳
& ~0 K( B7 f# U8 X) L9 }/ J
6、當只有LED6亮起時,單片機各GPIO的狀態(tài)如下:* ~, d1 X$ C6 N2 P0 t4 n+ ~6 ]
fk500fxwzqn64053873100.png (44.96 KB, 下載次數(shù): 0)
下載附件
保存到相冊
fk500fxwzqn64053873100.png
2024-12-2 22:05 上傳
! d+ T4 h j0 \
整理如下:
* v! M1 i) o6 g" @& ? |' B- g4 ~. N
n12k2fnc2db64053873200.png (3.44 KB, 下載次數(shù): 0)
下載附件
保存到相冊
n12k2fnc2db64053873200.png
2024-12-2 22:05 上傳
6 h7 c4 g, I3 r# J就是這么簡單!二、總結(jié)提升以上其實是用了一種叫“查理復用”(Charlieplex)的方法。為什么叫查理復用?1 \$ d& q& J9 I$ k& ?+ ?
1qdjavaerdj64053873300.jpg (62.95 KB, 下載次數(shù): 0)
下載附件
保存到相冊
1qdjavaerdj64053873300.jpg
2024-12-2 22:05 上傳
4 W0 @' d( {. z, w+ L/ s
很簡單,因為這個方法來源于美信半導體公司的工程師Charlie Allen。查理復用是一種能夠在驅(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>查理復用設(shè)計的方法:任意兩個GPIO引腳之間串入兩個LED,這兩個LED為并聯(lián),且LED方向相反。當你想要點亮某個特定的LED時,就將其兩端所連接到的GPIO引腳分別設(shè)定為高電平和低電平,其它剩余的GPIO引腳設(shè)定為高阻態(tài)。前面電動牙刷中6個LED燈的電路,就是這么設(shè)計的。下面從最簡單的開始,一步一步體會查理復用的電路設(shè)計。1、使用2個GPIO時最簡單:
# m4 z, [2 z, D! N! c/ M6 W' F5 R# E
djf4cdqy1al64053873400.png (18.73 KB, 下載次數(shù): 0)
下載附件
保存到相冊
djf4cdqy1al64053873400.png
2024-12-2 22:05 上傳
, ~* V& @' q) j B" U6 K* c7 O+ E* dLED1亮起時:
+ s5 e. z+ c3 c6 R3 a$ ] C9 G4 v# E
jncdp2o5bh164053873500.png (23.34 KB, 下載次數(shù): 0)
下載附件
保存到相冊
jncdp2o5bh164053873500.png
2024-12-2 22:05 上傳
3 A2 C. Y6 V6 h* j) b- D$ ^
LED2亮起時:
[* a( \9 r6 f) l3 T7 X
grme3jykqh364053873600.png (24.54 KB, 下載次數(shù): 0)
下載附件
保存到相冊
grme3jykqh364053873600.png
2024-12-2 22:05 上傳
" o3 k0 A( D; {# c1 |這里只用到高電平、低電平的狀態(tài),不需要用高阻態(tài)的狀態(tài)。2、使用3個GPIO時,前面已經(jīng)分析過:
, k6 s/ ?$ G5 T5 l
7 z/ E$ B7 d0 _( v: G可以等效為下圖:) I& ~) ~# H0 z6 Z1 Q$ W
jza5fglazbu64053873700.png (44.02 KB, 下載次數(shù): 0)
下載附件
保存到相冊
jza5fglazbu64053873700.png
2024-12-2 22:05 上傳
1 @, d* o4 E7 v, b# s, p可以看出,確實是任意兩個GPIO之間均串入了兩個并聯(lián)的LED,且LED方向相反。3、同樣的原理,使用4個GPIO時: Z" C" G$ `7 C- z' [ T) e
youu4312ney64053873800.png (98.09 KB, 下載次數(shù): 0)
下載附件
保存到相冊
youu4312ney64053873800.png
2024-12-2 22:05 上傳
: H/ |) H, ?$ {8 |1 @4 a6 Y
點亮LED1時:% O9 ^7 b# { C* D t$ [8 S! p
" y/ q% K; z1 p$ I9 P. c其他LED亮起的情況不再列舉。查理復用這樣的電路接法也會引發(fā)一些問題。首先,LED亮起時完全由單片機的GPIO輸出電流,所以對于GPIO的電流驅(qū)動能力有一定的要求。設(shè)計電路時要注意查詢自己使用的MCU的電流驅(qū)動能力,下圖是STM32單片機中對GPIO電流驅(qū)動能力的說明:6 A# u) a/ V5 T; n$ c% w
! ~; t( x* M/ i
其次,如果出現(xiàn)了某個LED開路或短路的情況,電流的流向會被打亂,LED亮起來的邏輯會變得錯亂。最壞的情況下,電路會對GPIO索取大電流,導致單片機損壞。下圖是假設(shè)LED1短路,那么在點亮LED5時,LED3也會亮起:' q* k( i: W) Z$ z
6 p Z5 |5 Y. `* N# d7 x9 m# @
三、繼續(xù)進階如果要同時亮起兩個以上的LED,怎么辦?交替點亮他們就行,只要交替切換的速度夠快,由于人眼的視覺暫留效應,看起來就是同時亮起的。值得一提的是,如果要同時亮起的LED較多,比如大規(guī)模的LED點陣,那么還要注意一些新的問題,頗有門道。 聲明:
' t' M5 A* U, P本文轉(zhuǎn)載自電路啊公眾號 ,如涉及作品內(nèi)容、版權(quán)和其它問題,請聯(lián)系工作人員微(13237418207),我們將在第一時間和您對接刪除處理!投稿/招聘/廣告/課程合作/資源置換 請加微信:13237418207
4 p6 [% g" I/ ^( S% ~
: L2 R4 l& x9 |7 [3 U" ]
, `8 G. C0 u5 }" i1 p8 v
1 P' A5 i9 Z" V: H7 U% d
2 l0 p0 r3 j1 ?3 X9 y. }$ D- k) ? ' _& d" [- g* h5 q! L
6 \4 C; Q% L1 E/ A' G
! \& y) O/ m# M. @8 J
% o' F5 ?5 |9 s- z! A* G! h* Y0 q( s' B
0 |" ~; K6 j( B' @% C% B
! j3 K/ H7 D$ m& x3 y 反激式電源為什么上電最容易燒MOS管?
1 M& W) X" T' W# f: y5 I , i, l& {4 m" i l. Q! y6 `4 U) f
+ U( f4 E: l& ?+ \3 ^
4 O6 k0 R" Z! K, ^( |" J; n4 ?" L
: U9 q( H; ]" x' U
: |8 ~; m) H2 J& q% ]- T7 P/ l- v/ ~$ V$ r3 d$ c9 n
/ o0 b# _$ a K' n
: U+ S/ X) e0 t! `5 t5 P
# ?' J* n# u: s: e/ K! j$ `
; f' s; w# S4 c) g0 d8 Y6 j; f) j0 n. w. |" \
. u6 r' X! Z( L, y1 m- d3 z 電子電路中“地”的本質(zhì)特性是什么?! z5 }; r7 ]: P$ B
/ i& T+ i" l8 p4 D, j) k8 q
# ?: s( h$ F) `
8 F% E2 ~5 @. n, {, n: l2 z . l. ]" E) p" n: y9 |; E/ Y# v
, c& N! [# V$ f% u
% V# n. I9 ?( G/ }/ e8 E
! {# _% I$ B9 c' a, s# z掃碼添加客服微信,備注“入群”拉您進凡億教育官方專屬技術(shù)微信群,與眾位電子技術(shù)大神一起交流技術(shù)問題及心得~
% {$ Y7 ^ o/ h" v分享?? 點贊?? 在看?? “三連”支持! |
|