在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

采用單個ADC端口來讀取多個按鈕狀態的方法

硬件攻城獅 ? 來源:TsinghuaJoking ? 作者:TsinghuaJoking ? 2023-10-07 15:19 ? 次閱讀

利用單片機ADC端口,可以讀取多個按鈕的狀態。在設計過程中,需要綜合考慮到按扭的個數與讀取的可靠性,特別是對選擇電阻的阻值進行優化,使得不同分壓數值之間相差最大。如果按鍵面板需要通過長的引線與單片機電路相連,還需要對接口電路進行保護以提高電路的EMC特性。

01 讀取按鍵

按鍵是單片機系統中人機交互常用到的方法,通常情況下,通過普通的IO端口可以獲得按鍵開關狀態。在某些電子系統設計中,如果碰到按鈕比較多,但單片機的IO口不夠使用的時候,則需要通過端口擴展的方式來增加讀取按鈕的數量。比如通過并串轉換芯片,8-3編碼芯片等等。

今天看到 公眾號電路啊中的一篇推文:電視機的按鍵功能是用什么電路實現的?經典ADC按鍵電路[1] 介紹了在一款電視機中,采用單個ADC端口來讀取多個按鈕狀態的方法。

一、電路原理

1、電路原理圖

按鍵面板中的三個引線中,其中一個是電路地線,另外兩個是信號線,分別接入主板中MCU的兩路ADC端口。這兩條線在主板上都通過3.3kΩ的電阻接到電源(3.3V)。在面板上,有多個按鈕與電阻的串聯之后連接在信號線與地線之間。

1da6168a-64d8-11ee-939d-92fbcf53809c.png

▲ 圖1.1.1 工作原理說明圖

并聯在 一起的按鈕所串聯的電阻不同,所以每個按鈕按下之后,信號線的電壓就是上拉電阻與按鍵串聯電阻對電源的分壓。由于每個按鍵串聯電阻不同,所以對應信號線電壓也就不同了。經過單片機ADC讀取電壓值之后,在與事先確定下的每個按鍵分壓范圍進行對比,從而可以確定是哪一個按鈕被按下。

【表1-1-1 不同按鍵對應的電壓】

75 ohm 1000 ohm 3300 ohm 6800 ohm
0.07 V 0.77 V 1.65 V 2.22 V
SW1 SW2 SW3 SW4

2、按鍵個數

根據上述原理,一條ADC端口可以讀取按鈕的個數是非常多的,它的上限受到以下因素影響:

單片機ADC分辨率;

分壓信號的穩定性和噪聲范圍;

機械按鍵接觸電阻;

分壓電阻偏差與穩定性等。

為了可靠的通過ADC讀取的模擬分壓電壓來確定按鍵,需要合理選擇分壓電阻,使得每個按鍵所對應的電壓之間的間隔越大越好。在上述實際設計的電路中,每個ADC端口只讀取了四個按鈕的狀態,總共采用了兩個ADC端口讀取了7個(< 8個)按鍵狀態。

二、電路改進

1、增加接口可靠性

由于按鍵板與電路主板之間通過三根線連接,為了提高電路工作的可靠性,在按鍵電路接口中增加了R、C、TVS來消除靜電、電磁干擾對主控板的影響。

1de39924-64d8-11ee-939d-92fbcf53809c.png

▲ 圖1.2.1 增加有提高EMC接口電路

對于電路中的RC濾波器參數選擇,需要綜合考慮濾除噪聲的頻率范圍以及電路穩定時間。不能夠為了降低噪聲一味增加RC時間常數,還需要考慮按鍵動作時,對應的分壓信號達到穩定的過渡時間的大小。

02 更多按鍵

在前面案例中,每個ADC只讀取四個按鍵,下面給出一些可以讀取更多按鍵的方案。

一、八個按鍵

1、電路原理圖

下面是在推文經典ADC按鍵電路[2]中給出的已經批量應用的八按鍵ADC讀取電路配置方案。

1df9cfe6-64d8-11ee-939d-92fbcf53809c.png

▲ 圖2.1.1 被批量使用的八個按鍵方案

2、按鍵對應的電壓值

按照電路中的電阻參數,可以計算出每個按鍵對應的信號分壓電壓值:

【表2-1-1 八個按鍵對應的信號電壓】

0 ohm 510 ohm 680 ohm 1000 ohm 1200 ohm 2200 ohm 4700 ohm 15000 ohm
0.00 V 0.32 V 0.67 V 1.05 V 1.38 V 1.79 V 2.27 V 2.78 V
SW1 SW2 SW3 SW4 SW5 SW6 SW7 SW8

1e1408ac-64d8-11ee-939d-92fbcf53809c.png

▲ 圖2.1.2 八個按鍵對應的信號電壓

3、方案特點

在這個電路中,后面按鍵對應的電阻值是由前面所有串聯電阻累加和。

這個電路的巧妙之處在于,按鍵具有優先級之分。假設按下了按鍵SW1,那么再按下SW2-SW8中的任何一個都是不起作用的,即SW1的優先級最高,SW2次之,以此類推。

二、組合按鍵

上面電路中不允許使用組合按鍵,即通過兩個或者兩個 以上的按摩同時按下代表更多的功能。

1、三個按鍵組合輸入

下面電路中,只使用3按鈕便可以獲得8個狀態的輸入。

1e1f6314-64d8-11ee-939d-92fbcf53809c.png

▲ 圖2.2.1 利用電阻組合完成多個多個按鈕輸入

需要通過適當選擇的阻值,使得八種不同的按鍵組合,所得到的八個電壓之間的間隔最大,這樣才能夠保證ADC通過分壓數值確定狀態時更加可靠。

利用程序對進行搜索,搜索范圍(100,10k),搜索步長:50歐姆??梢垣@得一組最優電阻取值:

最小的電壓間隔為:0.152V。

下面是八種按鍵組合所得到的電壓,從小到大的電壓值。

['1.19V', '1.37V', '1.53V', '1.68V', '1.83V', '2.05V', '2.43V', '3.30V']

※ 總??結 ※

利用單片機的ADC端口,可以讀取多個按鈕的狀態。在設計過程中,需要綜合考慮到按扭的個數與讀取的可靠性,特別是對選擇電阻的阻值進行優化,使得不同分壓數值之間相差最大。

如果按鍵面板需要通過長的引線與單片機電路相連,還需要對接口電路進行保護以提高電路的EMC特性。


審核編輯:劉清

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

    關注

    1

    文章

    191

    瀏覽量

    14794
  • 電阻
    +關注

    關注

    86

    文章

    5514

    瀏覽量

    172025
  • 單片機
    +關注

    關注

    6037

    文章

    44558

    瀏覽量

    635233
  • TVS
    TVS
    +關注

    關注

    8

    文章

    786

    瀏覽量

    60613
  • adc
    adc
    +關注

    關注

    98

    文章

    6498

    瀏覽量

    544630
  • 按鍵電路
    +關注

    關注

    1

    文章

    35

    瀏覽量

    21774
  • 分壓電阻
    +關注

    關注

    0

    文章

    18

    瀏覽量

    11594

原文標題:單個端口讀取多個按鈕(ADC按鍵電路)

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

收藏 人收藏

    評論

    相關推薦

    分享4個單個電源控制多個環路的案例

    用作參考(圖1,D2)。這有助于將放大器的輸出電壓鉗位到一個較低值,從而防止飽和并加快響應速度。需要添加的單獨參考以及軟性電路是采用多個外部放大器的方法又一缺點,因為這會增加系統的復雜性和成本。  第二個
    發表于 11-19 21:59

    請問有什么更好更簡便的方法來測量ADC的靜態參數?

    1000mV的DC量測試多個點,然后從中分析ADC的線性度參數。 網上說這種測試方法不能夠完整反映出ADc的性能參數。而且,后期可能會改版為AC耦合,就更不能
    發表于 08-24 11:28

    怎么通過ADC建議如何讀取多個溫度值?

    大家好,現在我可以通過ADC讀取兩個溫度值(即60和90度),我通過計算NTC熱敏電阻表中的值讀取這個溫度。但現在我看不到超過2個溫度,我已經定義了至少5個溫度,但能讀懂2,就可以通
    發表于 09-20 15:45

    請問有什么更快的方法讀取ADC通道嗎?

    我的ADC運行在12MHz,采樣5個通道,實際采樣速率為100kHz。我只是注意到,使用ADCJGETRESULT16.()命令讀取單個信道,以48 MHz的CPU速度獲得一個叫聲1US。閱讀5個
    發表于 10-30 10:06

    怎樣才能跨多個集線器從LPC5411x枚舉多個串行端口?

    由于 ES_LPC5411x 中的勘誤表 USB.1,需要 TN00031 中的解決方法才能跨多個 USB 集線器實現無晶體 USB。我正在研究從單個設備支持多個串行
    發表于 05-06 07:03

    如何使用S32K146定期對單個ADC通道進行采樣?

    ;PDB定時器在讀取ADC轉換后重新啟動,但使用這種方法,采樣周期略長于PDB延遲時間。最好的方法是什么?我在參考手冊中讀到 PDB 具有“背靠背”模式,但我相信這是為了按順序
    發表于 05-30 12:30

    單個PRM驅動多個VTMs

    單個PRM驅動多個VTMs 的有用PDF。
    發表于 01-06 17:58 ?0次下載

    如何采用一根微控制器的端口引線驅動多個LED

    微控制器的端口引線通常可被激勵為高電平或低電平,要么被置于一種“輸入”或高阻抗狀態。本電路采用這三種狀態實現用一根
    發表于 10-04 16:30 ?980次閱讀
    如何<b class='flag-5'>采用</b>一根微控制器的<b class='flag-5'>端口</b>引線<b class='flag-5'>來</b>驅動<b class='flag-5'>多個</b>LED

    如何使用Arduino UNO創建簡單的Modbus設備

    您可以按Modbustester中的“讀取按鈕。該命令將讀取我們新的從設備的存儲器的8個字節。在地址400008中,您可以找到按鈕狀態
    的頭像 發表于 11-15 10:05 ?1.6w次閱讀

    【GD32】GD32讀取ADC數據

    讀取ADC值4.將ADC值轉換成電壓值我這里采用PA5進行ADC的channel_5通道1.初始IO引腳/*初始化時鐘*/rcu_perip
    發表于 12-02 15:06 ?28次下載
    【GD32】GD32<b class='flag-5'>讀取</b><b class='flag-5'>ADC</b>數據

    僅使用兩根電線即可感應多個按鈕

    對于只需要不到鍵盤或數字鍵盤的應用,這個簡單的電路使用單個多通道1-Wire可尋址開關(DS2408)和幾個外部元件監視多個按鈕開關。
    的頭像 發表于 01-14 12:00 ?1502次閱讀
    僅使用兩根電線即可感應<b class='flag-5'>多個</b><b class='flag-5'>按鈕</b>

    多個ADC的基準電壓

    要求您將此路徑中的誤差降至最低。單個ADC基準電壓精度差會降低整個系統的性能,分布式負載也是如此,分布式負載由許多單獨的阻性和容性負載組成。有幾種方法可以為此類ADC陣列提供基準電壓:
    的頭像 發表于 02-25 10:51 ?2631次閱讀
    <b class='flag-5'>多個</b><b class='flag-5'>ADC</b>的基準電壓

    用GPIO讀取按鈕狀態

    樹莓派的GPIO可以控制發光二極管,這是GPIO的Output(輸出)能力,它也具有input(讀取)的能力,所以才能叫做I/O(輸入/輸出)端口。今天我們就來用GPIO的引腳讀取
    的頭像 發表于 07-02 15:06 ?1710次閱讀
    用GPIO<b class='flag-5'>讀取</b><b class='flag-5'>按鈕</b><b class='flag-5'>狀態</b>

    Windows IoT和Raspberry Pi:讀取按鈕

    電子發燒友網站提供《Windows IoT和Raspberry Pi:讀取按鈕.zip》資料免費下載
    發表于 07-10 11:13 ?0次下載
    Windows IoT和Raspberry Pi:<b class='flag-5'>讀取</b><b class='flag-5'>按鈕</b>

    通過SFC 51讀取CPU的指示燈狀態

    可以通過SFC 51讀取CPU的指示燈狀態,使用的SSL_ID參數為16#74(16#19)讀取全部指示燈狀態 或者16#174(16#119)讀取
    的頭像 發表于 07-24 16:34 ?1680次閱讀
    通過SFC 51<b class='flag-5'>讀取</b>CPU的指示燈<b class='flag-5'>狀態</b>
    主站蜘蛛池模板: 午夜剧场黄| 一个色亚洲| 婷婷激情四月| 国产在线永久视频| 色456| 性叉叉| 啪啪激情综合| 午夜骚片| 亚洲男人的天堂在线播放| 日韩欧美高清一区| 午夜视频福利在线| 高清国产一区二区三区| 九九热免费观看| 伊人电影综合网| 国产成在线人视频免费视频| 2021精品国产综合久久| 亚洲第一成人影院| www.四虎在线| 一区二区三区四区在线| 欧美乱论视频| 久久看精品| 午夜想想爱午夜剧场| avtt天堂网永久资源| 中文字幕精品一区二区三区视频 | 色老头网站久久网| 亚洲热热久久九九精品| 亚洲黄站| 狠狠色丁香久久综合五月| 亚洲乱强| 欧美午夜性刺激在线观看免费| 深夜视频在线播放视频在线观看免费观看| 乱小说录目伦200篇将曲勒| 狠狠色噜噜| 国产午夜视频在线观看网站| 日本www色视频成人免费网站| 欧美肉到失禁高h视频在线| 亚洲第一看片| 日本美女黄网站| 午夜想想爱午夜剧场| 天天操天天干天天射| 亚欧成人乱码一区二区|