用3個(gè)IO口控制6個(gè)LED燈的原理分析 電動(dòng)牙刷中6個(gè)LED燈的電路設(shè)計(jì)_第1頁(yè)
用3個(gè)IO口控制6個(gè)LED燈的原理分析 電動(dòng)牙刷中6個(gè)LED燈的電路設(shè)計(jì)_第2頁(yè)
用3個(gè)IO口控制6個(gè)LED燈的原理分析 電動(dòng)牙刷中6個(gè)LED燈的電路設(shè)計(jì)_第3頁(yè)
用3個(gè)IO口控制6個(gè)LED燈的原理分析 電動(dòng)牙刷中6個(gè)LED燈的電路設(shè)計(jì)_第4頁(yè)
用3個(gè)IO口控制6個(gè)LED燈的原理分析 電動(dòng)牙刷中6個(gè)LED燈的電路設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第第頁(yè)用3個(gè)IO口控制6個(gè)LED燈的原理分析電動(dòng)牙刷中6個(gè)LED燈的電路設(shè)計(jì)

▲本文要分析的電路

事情是這樣開(kāi)始的。

買了個(gè)電動(dòng)牙刷,幾十塊錢那種:

收到的實(shí)物長(zhǎng)這樣:

牙刷手柄上有1個(gè)按鍵和6個(gè)(LED)燈:

拆開(kāi)看看電路板:

可以看出,電路板上用的(單片機(jī)),只有8個(gè)腳,卻要控制1個(gè)按鍵、6個(gè)LED燈、1個(gè)震動(dòng)的馬達(dá)(電機(jī)):

初看之下,GPIO應(yīng)該是不夠用的。

單片機(jī)除去(電源)腳(正極)和GND腳(負(fù)極),只剩最多6個(gè)GPIO腳。

那么是怎么做到夠用的?

原來(lái),經(jīng)過(guò)巧妙的(電路設(shè)計(jì)),這款電動(dòng)牙刷實(shí)現(xiàn)了用3個(gè)GPIO控制6個(gè)LED燈,節(jié)省了GPIO。

這個(gè)巧妙的電路如下:

6個(gè)LED燈為相同的型號(hào),為方便查看,用紅綠兩種顏色區(qū)分兩種不同的方向。

一、原理分析

這個(gè)電路用到了單片機(jī)GPIO的三種狀態(tài):

高電平

低電平

高阻態(tài)

所謂“高阻態(tài)”,是指GPIO對(duì)外部電路表現(xiàn)出極大的阻抗。因阻抗很大,幾乎不會(huì)吸入(電流),也不會(huì)對(duì)外輸出電流。

各個(gè)LED燈單獨(dú)亮起,分為六種情況。

1、當(dāng)只有LED1亮起時(shí),單片機(jī)各GPIO的狀態(tài)如下:(帶箭頭的紅線為電流回路)

2、當(dāng)只有LED2亮起時(shí),單片機(jī)各GPIO的狀態(tài)如下:

3、當(dāng)只有LED3亮起時(shí),單片機(jī)各GPIO的狀態(tài)如下:

4、當(dāng)只有LED4亮起時(shí),單片機(jī)各GPIO的狀態(tài)如下:

5、當(dāng)只有LED5亮起時(shí),單片機(jī)各GPIO的狀態(tài)如下:

6、當(dāng)只有LED6亮起時(shí),單片機(jī)各GPIO的狀態(tài)如下:

整理如下:

就是這么簡(jiǎn)單!

二、總結(jié)提升

以上其實(shí)是用了一種叫“查理復(fù)用”(Charlieplex)的方法。

為什么叫查理復(fù)用?

很簡(jiǎn)單,因?yàn)檫@個(gè)方法來(lái)源于(美信)(半導(dǎo)體)公司的(工程師)CharlieAllen。

查理復(fù)用是一種能夠在驅(qū)動(dòng)LED,特別是驅(qū)動(dòng)大量LED時(shí)有效地節(jié)約GPIO的方法。

使用該方法,n個(gè)GPIO可以驅(qū)動(dòng)n*(n-1)個(gè)LED,所以:

使用2個(gè)GPIO可以驅(qū)動(dòng)2個(gè)LED。

使用3個(gè)GPIO可以驅(qū)動(dòng)6個(gè)LED。

使用4個(gè)GPIO可以驅(qū)動(dòng)12個(gè)LED。

以此類推。

這種方式能夠?qū)崿F(xiàn)的基礎(chǔ)是:

單片機(jī)GPIO的三個(gè)狀態(tài):高電平、低電平、高阻態(tài)。

LED具有單向?qū)щ娦浴?/p>

查理復(fù)用設(shè)計(jì)的方法:

任意兩個(gè)GPIO引腳之間串入兩個(gè)LED,這兩個(gè)LED為并聯(lián),且LED方向相反。

當(dāng)你想要點(diǎn)亮某個(gè)特定的LED時(shí),就將其兩端所連接到的GPIO引腳分別設(shè)定為高電平和低電平,其它剩余的GPIO引腳設(shè)定為高阻態(tài)。

前面電動(dòng)牙刷中6個(gè)LED燈的電路,就是這么設(shè)計(jì)的。

下面從最簡(jiǎn)單的開(kāi)始,一步一步體會(huì)查理復(fù)用的電路設(shè)計(jì)。

1、使用2個(gè)GPIO時(shí)最簡(jiǎn)單:

LED1亮起時(shí):

LED2亮起時(shí):

這里只用到高電平、低電平的狀態(tài),不需要用高阻態(tài)的狀態(tài)。

2、使用3個(gè)GPIO時(shí),前面已經(jīng)分析過(guò):

可以等效為下圖:

可以看出,確實(shí)是任意兩個(gè)GPIO之間均串入了兩個(gè)并聯(lián)的LED,且LED方向相反。

3、同樣的原理,使用4個(gè)GPIO時(shí):

點(diǎn)亮LED1時(shí):

其他LED亮起的情況不再列舉。

查理復(fù)用這樣的電路接法也會(huì)引發(fā)一些問(wèn)題。

首先,LED亮起時(shí)完全由單片機(jī)的GPIO輸出電流,所以對(duì)于GPIO的電流驅(qū)動(dòng)能力有一定的要求。設(shè)計(jì)電路時(shí)要注意查詢自己使用的(MCU)的電流驅(qū)動(dòng)能力,下圖是(STM32)單片機(jī)中對(duì)GPIO電流驅(qū)動(dòng)能力的說(shuō)明:

其次,如果出現(xiàn)了某個(gè)LED開(kāi)路或短路的情況,電流的流向會(huì)被打亂,LED亮起來(lái)的邏輯會(huì)變得錯(cuò)亂。最壞的情況下,電路會(huì)對(duì)GPIO索取大電流,導(dǎo)致單片機(jī)損壞。下圖是假設(shè)LED1短路,那么在點(diǎn)亮LED5時(shí),LED3也會(huì)亮起:

三、繼續(xù)進(jìn)階

如果要同時(shí)亮起兩個(gè)以上的LED,怎么辦?

交替點(diǎn)亮他們就行,只要交替切換的速度夠快,由于人眼的視覺(jué)暫留效應(yīng),看起來(lái)就是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論