0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用ADC掃描實(shí)現(xiàn)一個(gè)IO上掛多個(gè)按鍵

Dp1040 ? 來源:嵌入式技術(shù)開發(fā) ? 2023-08-11 09:16 ? 次閱讀

有時(shí)候做設(shè)計(jì)時(shí),我們會(huì)遇到外部按鍵比較多,IO口不夠用的情況。這時(shí)大部分人會(huì)考慮通過其它芯片擴(kuò)展IO,或者直接換一個(gè)IO口足夠的MCU。其實(shí),還有個(gè)方法可以實(shí)現(xiàn)一個(gè)IO上掛多個(gè)按鍵———即采用ADC掃描。

一、硬件及原理

電路圖如下:

da1cd172-37de-11ee-9e74-dac502259ad0.png

當(dāng)沒有按鍵按下時(shí),ADC的電壓為3.3V,由于不同按鍵對(duì)應(yīng)的分壓電阻不同,所以不同按鍵按下時(shí),得到的ADC電壓也不同。通過采樣ADC的電壓即可判斷是哪個(gè)按鍵被按下。這種方式也支持組合按鍵。

設(shè)計(jì)時(shí)需要計(jì)算好每個(gè)按鍵的分壓電阻阻值,使每個(gè)按鍵的分壓值(包括組合按鍵)有較明顯區(qū)別,便于ADC區(qū)分。

上面這種方式為并聯(lián)式接法,還有一種串聯(lián)式接法:

da4d41ae-37de-11ee-9e74-dac502259ad0.png

這種方式與上面的原理一樣,但不同的是,這種方式不支持組合按鍵,且有按鍵優(yōu)先級(jí)之分,當(dāng)S8按下時(shí)下面的按鍵無效。即S8優(yōu)先級(jí)最高,S9次之,以此類推。

理論上,上述兩種方式都可以一個(gè)IO掛很多按鍵,但掛的越多,每個(gè)按鍵的分壓后的電壓就越接近,越不容易區(qū)分,導(dǎo)致誤判。所以如果按鍵太多,還是要分多個(gè)ADC端口來采樣。

另外,分壓電阻的選擇也要考慮ADC的輸入阻抗。有些MCU內(nèi)置ADC輸入阻抗較低,電阻選擇不合適可能導(dǎo)致采樣誤差較大。

二、消抖

上圖中并聯(lián)的10nF電容有利于消除一些高頻噪聲和抖動(dòng),但最好在軟件上也做消抖處理。方式與普通按鍵類似,即多次采樣判斷。每次采樣間隔10ms左右即可。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電路圖
    +關(guān)注

    關(guān)注

    10287

    文章

    10707

    瀏覽量

    523835
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16665

    瀏覽量

    347751
  • adc
    adc
    +關(guān)注

    關(guān)注

    97

    文章

    6296

    瀏覽量

    542413
  • 按鍵
    +關(guān)注

    關(guān)注

    4

    文章

    222

    瀏覽量

    57491
  • IO口
    +關(guān)注

    關(guān)注

    3

    文章

    168

    瀏覽量

    23888
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于GPIO的按鍵板實(shí)現(xiàn)方案

    介紹簡(jiǎn)單的ADC實(shí)現(xiàn),需要IC提供個(gè)額外的ADC。但出于IC成本的考慮,無法提供這個(gè)的ADC時(shí)
    的頭像 發(fā)表于 10-18 11:43 ?3345次閱讀
    基于GPIO的<b class='flag-5'>按鍵板實(shí)現(xiàn)</b>方案

    ADC實(shí)現(xiàn)個(gè)IO多個(gè)按鍵

    有時(shí)候做設(shè)計(jì)時(shí),我們會(huì)遇到外部按鍵比較多,IO口不夠用的情況。這時(shí)大部分人會(huì)考慮通過其它芯片擴(kuò)展IO,或者直接換一個(gè)IO口足夠的MCU。其實(shí)
    發(fā)表于 09-01 13:25 ?2697次閱讀

    單片機(jī)用個(gè)I/O采集多個(gè)按鍵信號(hào)

    使用模數(shù)轉(zhuǎn)換(ADC)的特點(diǎn)就可以實(shí)現(xiàn)單片機(jī)用個(gè)I/O采集多個(gè)按鍵信號(hào)。
    發(fā)表于 10-28 09:54 ?1797次閱讀

    IO實(shí)現(xiàn)個(gè)按鍵功能

    功能,也不是不行,可以用電容充放電的方法實(shí)現(xiàn)ADC,從而用普通IO間接進(jìn)行測(cè)量。(參見我之前關(guān)于鍵盤掃描的文章)這樣用
    發(fā)表于 08-29 10:41

    絕對(duì)經(jīng)典2個(gè)IO實(shí)現(xiàn)5個(gè)按鍵掃描

    通過兩個(gè)單片機(jī)IO口,即可實(shí)現(xiàn)5個(gè)IO口的掃描,不太用任何外圍器件的哦。。。。。。。。。。。。。
    發(fā)表于 12-05 14:07

    5個(gè)IO掃描25個(gè)按鍵的解決方法

    在這次“51深度研究,邁向高階之路” 的活動(dòng)中,我自認(rèn)為看到這篇文章很有必要和大家分享下‘給你5個(gè)IO,你能掃描多少個(gè)
    發(fā)表于 03-08 10:22

    【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】個(gè)ADC實(shí)現(xiàn)多個(gè)按鍵檢測(cè)

    的行列掃描原理詳解這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。在MCU管腳有限的情況下,矩陣按鍵大大的節(jié)省了I/O資源。3. ADC分壓鍵盤利用電阻串聯(lián)分壓的原理實(shí)現(xiàn)
    發(fā)表于 11-14 13:34

    單片機(jī)如何用個(gè)IO口采集多個(gè)按鍵信號(hào)?

    按鍵信號(hào)的采集方法,可以用個(gè)IO口采集多個(gè)按鍵信號(hào),不僅電路簡(jiǎn)單,而且編程比較容易
    發(fā)表于 11-26 16:51

    如何使用ADC實(shí)現(xiàn)按鍵功能

    節(jié)省IO口;本次介紹使用ADC實(shí)現(xiàn)按鍵功能,通過采集ADC不同的值,然后判斷是按鍵幾按下?因此
    發(fā)表于 01-07 06:32

    矩陣鍵盤上哪一個(gè)按鍵被按下可以采用掃描和行掃描

    矩陣鍵盤共有4行和4列共16個(gè)按鍵組成,確定矩陣鍵盤上哪一個(gè)按鍵被按下可以
    發(fā)表于 01-13 08:27

    8個(gè)IO口產(chǎn)生49個(gè)按鍵

    本內(nèi)容提供了8個(gè)IO口產(chǎn)生49個(gè)按鍵 ,詳細(xì)展示了如何實(shí)現(xiàn)49個(gè)
    發(fā)表于 08-08 11:17 ?178次下載
    8<b class='flag-5'>個(gè)</b><b class='flag-5'>IO</b>口產(chǎn)生49<b class='flag-5'>個(gè)</b><b class='flag-5'>按鍵</b>

    5個(gè)IO口最多能掃描多少個(gè)按鍵

    在做項(xiàng)目(工程)的時(shí)候,我們經(jīng)常要用到比較多的按鍵,而且IO資源緊張,于是我們就想方設(shè)法地在別的模塊中節(jié)省IO口,好不容易擠出一兩個(gè)IO口,
    的頭像 發(fā)表于 02-10 11:02 ?4160次閱讀
    5<b class='flag-5'>個(gè)</b><b class='flag-5'>IO</b>口最多能<b class='flag-5'>掃描</b>多少<b class='flag-5'>個(gè)</b><b class='flag-5'>按鍵</b>

    如何實(shí)現(xiàn)單片機(jī)用個(gè)I/O采集多個(gè)按鍵信號(hào)?

    如何實(shí)現(xiàn)單片機(jī)用個(gè)I/O采集多個(gè)按鍵信號(hào) 使用模數(shù)轉(zhuǎn)換(ADC)的特點(diǎn)就可以
    發(fā)表于 02-11 14:23 ?11次下載
    如何<b class='flag-5'>實(shí)現(xiàn)</b>單片機(jī)用<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>I/O采集<b class='flag-5'>多個(gè)</b><b class='flag-5'>按鍵</b>信號(hào)?

    矩陣按鍵掃描實(shí)現(xiàn)原理

    之前做過很多仿真儀表盒,經(jīng)常遇到盒子既有大量LED指示燈,又有很多按鍵的情況,主芯片使用的SiliconLabs的款單片機(jī),管腳資源有限,如何應(yīng)對(duì)如此多的指示燈和按鍵呢?當(dāng)時(shí)選用了
    的頭像 發(fā)表于 03-27 14:05 ?5506次閱讀
    矩陣<b class='flag-5'>按鍵</b><b class='flag-5'>掃描</b>的<b class='flag-5'>實(shí)現(xiàn)</b>原理

    硬件設(shè)計(jì)如何實(shí)現(xiàn)個(gè)IO多個(gè)按鍵

    有時(shí)候做設(shè)計(jì)時(shí),我們會(huì)遇到外部按鍵比較多,IO口不夠用的情況。這時(shí)大部分人會(huì)考慮通過其它芯片擴(kuò)展IO,或者直接換一個(gè)IO口足夠的MCU。其實(shí)
    發(fā)表于 08-11 09:16 ?962次閱讀
    硬件設(shè)計(jì)如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>IO</b><b class='flag-5'>上</b><b class='flag-5'>掛</b><b class='flag-5'>多個(gè)</b><b class='flag-5'>按鍵</b>?