色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎么做到用3個IO口控制6個LED燈的?

GReq_mcu168 ? 來源:電路啊 ? 作者:電路啊 ? 2021-05-13 11:18 ? 次閱讀

7909e236-b328-11eb-bf61-12bb97331649.png

▲本文要分析的電路

事情是這樣開始的。 買了個電動牙刷,幾十塊錢那種:

收到的實物長這樣:

牙刷手柄上有1個按鍵和6個LED

拆開看看電路板:

可以看出,電路板上用的單片機,只有8個腳,卻要控制1個按鍵、6個LED燈、1個震動的馬達電機

初看之下,GPIO應該是不夠用的。 單片機除去電源腳(正極)和GND腳(負極),只剩最多6個GPIO腳。 那么是怎么做到夠用的? 原來,經過巧妙的電路設計,這款電動牙刷實現了用3個GPIO控制6個LED燈,節省了GPIO。

這個巧妙的電路如下:

7909e236-b328-11eb-bf61-12bb97331649.png

6個LED燈為相同的型號,為方便查看,用紅綠兩種顏色區分兩種不同的方向。 一、原理分析 這個電路用到了單片機GPIO的三種狀態:

高電平

低電平

高阻態

所謂“高阻態”,是指GPIO對外部電路表現出極大的阻抗。因阻抗很大,幾乎不會吸入電流,也不會對外輸出電流。 各個LED燈單獨亮起,分為六種情況。 1、當只有LED1亮起時,單片機各GPIO的狀態如下:(帶箭頭的紅線為電流回路)

7c0332da-b328-11eb-bf61-12bb97331649.png

2、當只有LED2亮起時,單片機各GPIO的狀態如下:

7c36faf2-b328-11eb-bf61-12bb97331649.png

3、當只有LED3亮起時,單片機各GPIO的狀態如下:

7c438ae2-b328-11eb-bf61-12bb97331649.png

4、當只有LED4亮起時,單片機各GPIO的狀態如下:

7c5179ea-b328-11eb-bf61-12bb97331649.png

5、當只有LED5亮起時,單片機各GPIO的狀態如下:

7c773efa-b328-11eb-bf61-12bb97331649.png

6、當只有LED6亮起時,單片機各GPIO的狀態如下:

7cb4fc36-b328-11eb-bf61-12bb97331649.png

整理如下:

7ce6930e-b328-11eb-bf61-12bb97331649.png

就是這么簡單! 二、總結提升 以上其實是用了一種叫“查理復用”(Charlieplex)的方法。 為什么叫查理復用?

很簡單,因為這個方法來源于美信半導體公司工程師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時最簡單:

7d1c3040-b328-11eb-bf61-12bb97331649.png

LED1亮起時:

7d4cc8b8-b328-11eb-bf61-12bb97331649.png

LED2亮起時:

7d69915a-b328-11eb-bf61-12bb97331649.png

這里只用到高電平、低電平的狀態,不需要用高阻態的狀態。 2、使用3個GPIO時,前面已經分析過:

7909e236-b328-11eb-bf61-12bb97331649.png

可以等效為下圖:

7d9b361a-b328-11eb-bf61-12bb97331649.png

可以看出,確實是任意兩個GPIO之間均串入了兩個并聯的LED,且LED方向相反。 3、同樣的原理,使用4個GPIO時:

7da60fc2-b328-11eb-bf61-12bb97331649.png

點亮LED1時:

7db59be0-b328-11eb-bf61-12bb97331649.png

其他LED亮起的情況不再列舉。 查理復用這樣的電路接法也會引發一些問題。 首先,LED亮起時完全由單片機的GPIO輸出電流,所以對于GPIO的電流驅動能力有一定的要求。設計電路時要注意查詢自己使用的MCU的電流驅動能力,下圖是STM32單片機中對GPIO電流驅動能力的說明:

7dc47520-b328-11eb-bf61-12bb97331649.png

其次,如果出現了某個LED開路或短路的情況,電流的流向會被打亂,LED亮起來的邏輯會變得錯亂。最壞的情況下,電路會對GPIO索取大電流,導致單片機損壞。下圖是假設LED1短路,那么在點亮LED5時,LED3也會亮起:

7df06996-b328-11eb-bf61-12bb97331649.png

三、繼續進階

如果要同時亮起兩個以上的LED,怎么辦?

交替點亮他們就行,只要交替切換的速度夠快,由于人眼的視覺暫留效應,看起來就是同時亮起的。

值得一提的是,如果要同時亮起的LED較多,比如大規模的LED點陣,那么還要注意一些新的問題,頗有門道。

本文不再展開,感興趣的讀者可以自行查詢修煉,繼續進階。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23253

    瀏覽量

    660598
  • 單片機
    +關注

    關注

    6035

    文章

    44554

    瀏覽量

    634693
  • 電流
    +關注

    關注

    40

    文章

    6850

    瀏覽量

    132115
  • GPIO
    +關注

    關注

    16

    文章

    1204

    瀏覽量

    52056

原文標題:用3個IO口控制6個LED燈,怎么做到的?

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    HTR3306 6LED驅動器和GPIO控制

    HTR3306是一款6路多功能LED驅動器和GPIO控制器,2.5V~5.5V電源供電。10IO端口中的任何一
    的頭像 發表于 11-20 15:57 ?155次閱讀
    HTR3306  <b class='flag-5'>6</b>路<b class='flag-5'>LED</b>驅動器和GPIO<b class='flag-5'>控制</b>器

    雙開關控制怎么接線

    雙開關控制的接線方法主要有以下幾種,每種方法都有其特定的應用場景和接線方式: 一、串聯接線法 接線步驟 : 將電源線的火線(L)與一開關的一
    的頭像 發表于 10-09 15:57 ?5203次閱讀

    io和串口的區別 單片機有多少io

    IO和串口的區別 IO,即輸入輸出端口(Input/Output Port),是單片機或其他微控制器與外部設備之間進行數據交換的接口。它
    的頭像 發表于 10-06 10:06 ?1332次閱讀

    MCU IO的作用和特點

    MCU(微控制器)的IO(Input/Output Port,輸入輸出端口)是單片機與外界進行信息交互的關鍵接口。這些IO在微
    的頭像 發表于 09-30 11:52 ?754次閱讀

    光纖收發器6指示含義是什么

    光纖收發器是一種將電信號轉換為光信號,或將光信號轉換為電信號的設備,廣泛應用于網絡通信、數據傳輸等領域。光纖收發器通常具有多個指示,用于顯示設備的工作狀態和故障信息。以下是對光纖收發器6指示
    的頭像 發表于 08-23 09:54 ?1484次閱讀

    問一下一單片機的io分別控制板該怎么設計電路?

    各位大佬,我想問一下一單片機的io分別控制板該怎么設計電路,每個
    發表于 07-15 19:03

    為什么用于接收的IO無法觸發中斷?

    我的代碼邏輯大概是“串口收到數據后控制IO發出高低電平,另外一
    發表于 06-25 08:14

    請問esp32的io怎么做的ns的延時控制

    之前stm32都是自己NOP();語句拼湊出來的ns級延時,esp32是freertos任務會切換,想做到ns延時要怎么做?請大佬指點一下,謝謝!
    發表于 06-21 07:43

    STM32的IO連接到一起,其中一IO被燒壞的原因?

    如題:兩STM32的IO連接到一起,一單片機IO設置為輸出模式(發送數據),另一設置為外
    發表于 04-24 07:53

    STM32配置IO的頻率時,為什么只給一IO配置?

    配置IO的頻率時,為什么只給一IO配置?
    發表于 04-07 08:43

    簡單的無線LED電路

    這篇文章解釋了一簡單的無線 LED 電路,可用于在夜間自動打開 LED 以照亮繪畫。室內
    的頭像 發表于 02-25 14:03 ?1269次閱讀
    一<b class='flag-5'>個</b>簡單的無線<b class='flag-5'>LED</b><b class='flag-5'>燈</b>電路

    led是什么意思有什么

    LED的原理 LED的原理是通過電流通過半導體材料時,電流與電子結合釋放出光能。這種光能是通過半導體材料內的能級差產生的。LED
    的頭像 發表于 02-01 17:27 ?2480次閱讀

    求購兩LED呼吸控制

    某寶某多買了幾個控制器發現LED的亮度變化在低占空比的時候,變化很明顯,而在高占空比的時候反而變化很小,導致呼吸表現呼吸不均勻的現象,我想要的是控制器能
    發表于 01-31 21:54

    雙控開關控制怎么接線

    雙控開關是指可以通過在兩不同位置的開關來控制的開關。在使用雙控開關控制的時候,我們需要
    的頭像 發表于 01-17 11:19 ?2638次閱讀

    能否使用普通IO模擬PWM波?該怎么做

    能否使用普通IO模擬PWM波?該怎么做? 使用普通IO模擬PWM波是一種常見的嵌入式系統應用技術,它通過
    的頭像 發表于 01-15 14:43 ?6105次閱讀
    主站蜘蛛池模板: 中字幕视频在线永久在线观看免费 | 人人在线碰碰视频免费| 国产曰韩无码亚洲视频| 把腿张开再深点好爽宝贝动态图 | 杨幂视频1分11未删减在线观看| 飘雪在线观看免费完整版| 久久综合中文字幕佐佐木希| 交换娇妻呻吟声不停中文字幕| 国产精品青青在线麻豆| 俄罗斯1819y0u| 草莓湿漉漉是好事还是恶性| 竹菊精品久久久久久久99蜜桃| 野花香HD免费高清版6高清版| 亚洲成人中文| 亚洲欧洲自拍偷拍| 亚洲在线无码免费观看| 一本色道久久88加勒比—综合| 亚洲欧美综合中文| 777米奇色狠狠俺去啦| 找老女人泻火对白自拍| 456亚洲人成在线播放网站| 最新国产麻豆精品| aaaaaaa一级毛片| 纲手胸被爆羞羞免费| 国产精品人妻午夜福利| 和美女啪啪啪动态图| 久久午夜夜伦鲁鲁片无码免费| 乱VODAFONEWIFI熟妇| 免费的好黄的漫画| 日韩 国产 中文 无码| 污污内射在线观看一区二区少妇| 性生生活大片又黄又| 伊人久久精品线影院| 99视频福利| 国产精品无需播放器| 久久 这里只精品 免费| 免费的好黄的漫画| 亚洲成A人片在线观看中文不卡| 伊在香蕉国产在线视频| J午夜精品久久久久久毛片| 国产人妻精品午夜福利免费不卡 |